Se você já criou um repositório no GitHub, deve se lembrar que logo na página de criação do repo, a plataforma pede para que você escolha uma licença, e se você clicar no menu vai ver uma lista enorme!
Mas o que são licenças? Para que preciso de uma? Como escolher a melhor pro meu projeto? Essas perguntas sempre passavam pela minha cabeça, mas eu escolhia a MIT e criava meu projeto sem me preocupar muito com isso.
Mas desde que eu comecei a trabalhar no GitHub, essas perguntas ficaram mais importantes e enquanto explorava licenças e respondia às perguntas da minha mente curiosa, comecei a escrever esse artigo.
O que é e pra que serve uma licença open source?
Você já usou algum software que você pode editar e compartilhar, gratuitamente? Esse software provavelmente é open source, e é graças a licença open source que você pode editá-lo e compartilhar essa edição sem problemas.
A licença open source do projeto dita os termos e condições para o uso daquele software, funcionando como um acordo legal entre quem cria o projeto inicial e quem o usa.
Tipos principais de Licenças: Copyleft e Permissivas
Existem dois tipos principais de licenças open source: Copyleft e Permissivas.
As Permissivas tem poucas restrições do uso do código fonte, enquanto as Copyleft tem mais regras a serem seguidas.
Licença Copyleft
Isso mesmo que você leu, Copyleft e não Copyright. Enquanto uma licença copyright restringe o uso e distribuição de algo, a Copyleft permite o uso e distribuição, mas desde certas condições sejam seguidas.
Você pode usar e distribuir um projeto com licença Copyleft desde que seu trabalho mantenha a mesma licença do projeto inicial, fazendo com que suas modificações sejam distribuídas aberta e gratuitamente, como o projeto inicial.
As licenças Copyleft ainda são subdivididas em duas categorias, strong (forte) e weak (fraca):
- Licenças copyleft fortes
Se um código-fonte for protegido por uma forte licença copyleft, então o software derivado precisa estar disponível publicamente sob a mesma licença. Isso inclui todas as bibliotecas e componentes vinculados dentro do software. Por exemplo, se alguém modifica e distribui software sob uma licença GPL, também deve disponibilizar o código-fonte e licenciar suas modificações sob a mesma licença GPL.
- Licenças copyleft fracas
Os requisitos de uma licença copyleft fraca são semelhantes aos de uma forte, mas se aplicam a um conjunto limitado de códigos. Esta licença de código aberto requer apenas que o código-fonte da obra original ou modificada seja disponibilizado publicamente, enquanto o restante do código usado junto com a obra não precisa ser publicado sob a mesma licença.
Alguns exemplos de licenças Copyleft:
GNU General Public License (GPL) - strong
Mozilla Public License (MPL) - weak
Eclipse Public License (EPL) - weak
Licença Permissiva
Esse tipo de licença dá muita flexibilidade no uso e distribuição do projeto open source, porque elas têm poucas restrições de uso e distribuição. Com essa licença, pessoas usuárias são livres para usar seu software como quiserem, podendo até usá-lo para fins comerciais, sem terem a obrigação de utilizar a mesma licença.
Alguns exemplos de licenças Permissivas:
MIT
Apache 2.0
BSD
Como escolher a melhor licença para seu projeto
Mas e aí, como a gente faz pra escolher o melhor tipo de licença para nosso projeto?
Se você deseja tornar seu código reutilizável e compartilhável, mas garantindo que seu código e seus derivados vão estar sempre acessíveis gratuitamente, você deve escolher uma licença Copyleft. Dessa forma, outras pessoas podem fazer quase tudo o que quiserem com o código, menos distribuir versões de código fechado.
Se você deseja torná-lo fácil e permissivo, para permitir que as pessoas façam o que quiserem com seu código, incluindo a publicação do trabalho derivado como proprietário, você deve optar por uma licença Permissiva.
E se meu projeto não tem licença?
Se o seu projeto não tem nenhuma licença atualmente, ninguém pode usá-lo legalmente, mesmo que seja público e visível para todo o mundo.
Podem usar esse projeto sem uma licença? Sim. Mas não é legal, tecnicamente, portanto, a maioria das empresas e organizações sem fins lucrativos não poderá utilizar seu software até que você adicione uma licença.
Como adicionar a licença ao seu projeto
Agora que você já sabe o que é uma licença open source, para que ela serve e qual o tipo ideal para o seu projeto, vamos adicioná-la ao seu projeto.
Se você ainda não criou o repositório desse projeto, na página inicial de criação de repositório o GitHub vai te dar um menu com várias opções de Licenças para você escolher.
Se seu projeto já existe, você precisa criar no root do repositório um arquivo com o nome LICENSE.
Aqui você tem a opção de:
Clicar em Choose a license template, que vai te levar para uma página com várias opções de licenças para você escolher OU
Você pode ir no site da licença de sua escolha, copiar a licença e colar nesse arquivo LICENSE.
Não importa o método que você escolheu, se tudo estiver certinho, quando você voltar para a página principal do repositório, vai ver que sua licença está disponível na sessão About, na coluna direita do repo, com o ícone de balança:
Como pessoa usuária, se você tem a intenção de editar e distribuir um projeto open source, não esqueça de ler a licença antes para não correr o risco de ter problemas no futuro!
Conclusão
Licenças Open Source são super importantes para qualquer repositório de código aberto, e hoje aprendemos que existem dois tipos principais de licenças: Copyleft e Permissiva, sendo a Permissiva, como o próprio nome diz, a mais permissiva das opções enquanto a Copyleft tem algumas restrições para garantir que qualquer produto do seu projeto continue open source.
Hoje deixo para vocês o desafio de olhar nos seus repositórios principais do GitHub se eles tem licença, e caso sim, se o tipo de licença que eles tem atualmente é o melhor, ou se assim como eu, você apenas colocou MIT em tudo haha