Usar o direito autoral para proteger a liberdade
Copyleft é um trocadilho com copyright. É um conceito criado nos anos 1980 por Richard Stallman e pela Free Software Foundation (FSF) para o projeto GNU: um mecanismo que usa a lei de direitos autorais para impedir que a liberdade do software desapareça. O titular permite a qualquer pessoa usar, modificar e distribuir, mas impõe uma condição: 'ao distribuir algo feito com base neste código, dê a quem recebe a mesma liberdade'.
Licenças permissivas (MIT, BSD, Apache) não têm essa condição. Por isso, alguém pode modificar código permissivo e vendê-lo como produto fechado. O copyleft bloqueia esse caminho e faz com que as versões melhoradas também continuem abertas. Por essa característica, as licenças copyleft também são chamadas de 'licenças recíprocas (reciprocal)'.
As obrigações surgem ao 'distribuir'
As condições do copyleft são acionadas quando o código é entregue a outras pessoas. A GPL-3.0 chama isso de 'convey'.
- Se você cria uma ferramenta com código GPL usada só dentro da empresa e não a distribui externamente, não surge obrigação de divulgar o código-fonte.
- Entregar um app aos clientes como instalador ou vendê-lo embutido em um aparelho é distribuição.
- Se o software roda só no servidor e os usuários acessam pela web, para a GPL isso não é distribuição. Quem preenche essa lacuna é a AGPL.
Três ramos conforme o alcance
Copyleft forte
GPL-2.0 e GPL-3.0 são as representantes. Todo o conjunto distribuído como um único programa em combinação com código GPL deve seguir as condições da GPL. A posição da FSF é que, se formam um único programa, há combinação, seja a vinculação estática ou dinâmica.
Copyleft fraco
Licenças que reduzem o alcance da obrigação.
- LGPL: por biblioteca. Basta divulgar as modificações da própria biblioteca; programas que a usam podem ficar fechados, cumprindo as condições (possibilidade de revincular etc.).
- MPL-2.0: por arquivo. Se você modifica um arquivo sob MPL, divulga só esse arquivo.
- EPL-2.0: por módulo. O código EPL e suas modificações são divulgados, mas módulos separados podem ter outra licença.
Copyleft de rede
A AGPL-3.0 impõe a obrigação de fornecer o código-fonte aos usuários pelo simples fato de oferecer o programa modificado pela rede. Foi criada para preencher a lacuna da GPL na era dos serviços web.
| Licença | Alcance da divulgação | Se só roda no servidor |
|---|---|---|
| GPL-2.0 / GPL-3.0 | Todo o programa combinado | Sem obrigação |
| LGPL-2.1 / LGPL-3.0 | A biblioteca e suas modificações | Sem obrigação |
| MPL-2.0 | Os arquivos MPL modificados | Sem obrigação |
| EPL-2.0 | Código EPL e modificações (módulo) | Sem obrigação |
| AGPL-3.0 | Todo o programa combinado | Fornecer o código se for versão modificada |
Equívocos comuns
- "O copyleft impede o uso comercial" — não impede. É possível vender software GPL, e muitas empresas lucram com suporte pago e hospedagem. O que ele impede é tirar a liberdade de quem recebe.
- "Se eu olhar uma única linha de código GPL, meu código vira GPL" — as licenças tratam da reprodução, modificação e distribuição de obras. Ter ideias ao ler código não é, por si só, objeto de direito autoral. Mas, se na prática for uma transcrição, pode ser considerado reprodução.
- "Se eu violar, meu código vira GPL automaticamente" — a consequência de violar uma licença costuma ser a perda dos direitos e a responsabilidade por violação de direito autoral. Seu código não é publicado à força; você terá de escolher entre cumprir as condições ou parar de distribuir.
- "Código copyleft nunca pode ser usado em projeto permissivo" — significa que, se forem distribuídos juntos, a obra combinada segue as condições do copyleft. É possível separar em programas distintos ou vincular uma biblioteca de copyleft fraco respeitando as condições. Veja as noções básicas de compatibilidade.
Perguntas para decidir se vale escolher copyleft
- Tudo bem se o resultado das modificações no meu código for parar em produtos fechados?
- O que importa mais: ser amplamente adotado como biblioteca ou receber as melhorias de volta?
- A forma principal de uso é software instalável ou serviço que roda em servidor?
Com base nas respostas a essas três perguntas, o assistente de escolha restringe as candidatas. Uma comparação mais detalhada está em Permissiva vs copyleft.
Este texto é informação geral e não constitui aconselhamento jurídico. Para decisões importantes, consulte um profissional.
Fontes
- GNU — What is Copyleft? — https://www.gnu.org/licenses/copyleft.html
- GNU Licenses FAQ — https://www.gnu.org/licenses/gpl-faq.html
- Texto da GNU GPL v3.0 — https://www.gnu.org/licenses/gpl-3.0.html