Compatibilidade entre licenças de código aberto e a GPL
O que a lista de licenças do projeto GNU diz sobre combinar código de cada licença com um programa GPL, com as frases originais e a data.
Segundo a lista do GNU, MIT, BSD, ISC, BSL, Unlicense e CC0 são compatíveis com a GPL; a Apache-2.0 só com a versão 3; MPL-2.0, LGPL-3.0, AGPL-3.0 e EPL-2.0 dependem de condições. O resto, fora da GPL, é não confirmado.
Informação, não aconselhamento jurídico. Os resumos são nossos e simplificam; o texto oficial da licença é o que vale. Para decisões com consequência legal ou financeira, consulte um advogado.
Como esta página foi feita. Compatibilidade é assunto jurídico. Aqui só entra o que está escrito na lista de licenças do projeto GNU (página atualizada em , aberta em ). As frases do GNU aparecem em inglês, sem alteração, porque a página do GNU permite cópia integral e não adaptação (licença CC BY-ND 4.0). O texto em português ao lado é nosso e não é tradução.
CompatívelDependeIncompatível
Posso combinar código sob esta licença com um programa GPL?
Um sentido só: o código da licença da linha entra em um programa sob a GPL da coluna. A frase original do GNU está sob cada linha.
| Licença | Num programa GPLv2 | Num programa GPLv3 | O que o GNU diz |
|---|---|---|---|
| MIT | Compatível | Compatível | O GNU trata esse texto sob o nome Expat License e o diz compatível com a GPL. A correspondência com a licença MIT da lista SPDX é nossa leitura: o texto da MIT não tem o parágrafo extra que o GNU aponta como diferença para a X11. “This is a lax, permissive non-copyleft free software license, compatible with the GNU GPL.”“Some people call this license "the MIT License," but that term is misleading, since MIT has used many licenses for software.”GNU, entrada Expat License (#Expat) |
| Apache-2.0 | Incompatível | Compatível | Compatível com a versão 3 da GPL e incompatível com a versão 2, por causa de exigências que a GPLv2 não tem (patentes e indenização, segundo o GNU). “This is a free software license, compatible with version 3 of the GNU GPL.”“this license is not compatible with GPL version 2”“These include certain patent termination and indemnification provisions.”GNU, entrada Apache License, Version 2.0 (#apache2) |
| GPL-3.0 | Depende | Compatível | Na GPLv3 é a própria licença. Com a GPLv2, o GNU diz que não são compatíveis por si sós; depende de o programa GPLv2 permitir "qualquer versão posterior". “GPLv3 is not compatible with GPLv2 by itself.”GNU, entrada GNU General Public License (GPL) version 3 (#GNUGPLv3) |
| GPL-2.0 | Compatível | Depende | Na GPLv2 é a própria licença. Com a GPLv3, depende de o código GPLv2 permitir também as versões posteriores da GPL. “GPLv2 is, by itself, not compatible with GPLv3.”“most software released under GPLv2 allows you to use the terms of later versions of the GPL as well”“When this is the case, you can use the code under GPLv3 to make the desired combination.”GNU, entrada GNU General Public License (GPL) version 2 (#GPLv2) |
| LGPL-3.0 | Depende | Compatível | O GNU diz que a LGPLv3 é compatível com a GPLv3. Com a GPLv2 vale a mesma ressalva da GPLv3: depende de o programa GPLv2 permitir versões posteriores. “It is compatible with GPLv3.”“LGPLv3 is not compatible with GPLv2 by itself.”“a free software license, but not a strong copyleft license, because it permits linking with nonfree modules.”GNU, entrada GNU Lesser General Public License (LGPL) version 3 (#LGPLv3) |
| AGPL-3.0 | Incompatível | Depende | Incompatível com a GPLv2. Com a GPLv3 o GNU diz que é tecnicamente incompatível em sentido estrito, mas que dá para combinar módulos ou arquivos separados em um mesmo projeto. “the GNU AGPL is not compatible with GPLv2.”“It is also technically not compatible with GPLv3 in a strict sense: you cannot take code released under the GNU AGPL and convey or modify it however you like under the terms of GPLv3, or vice versa.”“However, you are allowed to combine separate modules or source files released under both of those licenses in a single project, which will provide many programmers with all the permission they need to make the programs they want.”GNU, entrada GNU Affero General Public License (AGPL) version 3 (#AGPLv3.0) |
| MPL-2.0 | Depende | Depende | Compatibilidade indireta pela seção 3.3 da MPL, com uma condição: os arquivos que eram MPL continuam disponíveis também sob a MPL. O GNU lista a GPL 2.0 e todas as versões posteriores. “Section 3.3 provides indirect compatibility between this license and the GNU GPL version 2.0, the GNU LGPL version 2.1, the GNU AGPL version 3, and all later versions of those licenses.”“When you do, section 3.3 gives you permission to distribute the MPL-covered work under the terms of the same GNU licenses, with one condition: you must make sure that the files that were originally under the MPL are still available under the MPL's terms as well.”GNU, entrada Mozilla Public License (MPL) version 2.0 (#MPL-2.0) |
| BSD-2-Clause | Compatível | Compatível | O GNU a lista como FreeBSD license e a diz compatível com a GPL. “It is a lax, permissive non-copyleft free software license, compatible with the GNU GPL.”GNU, entrada FreeBSD license (#FreeBSD) |
| BSD-3-Clause | Compatível | Compatível | O GNU a lista como Modified BSD license e a diz compatível com a GPL. “It is a lax, permissive non-copyleft free software license, compatible with the GNU GPL.”GNU, entrada Modified BSD license (#ModifiedBSD) |
| ISC | Compatível | Compatível | Licença de software livre compatível com a GPL, segundo o GNU. “It is a free software license, and compatible with the GNU GPL.”GNU, entrada ISC License (#ISC) |
| Unlicense | Compatível | Compatível | Tanto a dedicação ao domínio público quanto a licença permissiva adicional são compatíveis com a GPL, segundo o GNU. “Both public domain works and the lax license provided by the Unlicense are compatible with the GNU GPL.”GNU, entrada The Unlicense (#Unlicense) |
| CC0-1.0 | Compatível | Compatível | Compatível com a GPL, segundo o GNU, que porém não recomenda a CC0 para software por causa da falta de concessão de patentes. “Both public domain works and the lax license provided by CC0 are compatible with the GNU GPL.”“For works of software it is not recommended, as CC0 has a term expressly stating it does not grant you any patent licenses.”GNU, entrada CC0 1.0 Universal (#CC0) |
| EPL-2.0 | Depende | Depende | Incompatível com a GPL, a menos que quem lançou o código designe a GPL versão 2 ou posterior como licença secundária daquele trecho. “If an initial contributor releases a specific piece of code and designates GNU GPL version 2 or later as a secondary license, that provides explicit compatibility with those GPL versions for that code.”“However, the EPL2 without this designation remains incompatible with the GPL.”GNU, entrada Eclipse Public License Version 2.0 (#EPL2) |
| BSL-1.0 | Compatível | Compatível | Licença permissiva compatível com a GPL, segundo o GNU. “This is a lax, permissive non-copyleft free software license, compatible with the GNU GPL.”GNU, entrada Boost Software License (#boost) |
Regra geral do GNU (introdução da página):
“Unless otherwise specified, compatible licenses are compatible with both GPLv2 and GPLv3.”Ou seja: quando a lista diz que uma licença é compatível com a GPL, vale para as versões 2 e 3, salvo exceção dita na própria entrada, como a da Apache-2.0.
Exemplo resolvido: três bibliotecas num programa GPL-3.0
- Você mantém um programa sob GPL-3.0 e quer usar três bibliotecas: uma MIT, uma Apache-2.0 e uma MPL-2.0.
- A MIT é compatível com a GPL na lista do GNU: pode entrar.
- A Apache-2.0 é compatível com a versão 3 da GPL: pode entrar num programa GPL-3.0. Não entraria num programa que só aceita a GPL-2.0.
- A MPL-2.0 depende: a seção 3.3 dela dá a compatibilidade indireta, com a condição de que os arquivos originalmente MPL continuem disponíveis também sob a MPL.
- No conjunto, o programa distribuído segue os termos da GPL, e cada biblioteca mantém os avisos da própria licença.
O que não está confirmado
A lista do GNU trata de compatibilidade com a GPL. Fora dela, não achamos fonte aberta que possamos citar.
Combinações como as abaixo ficam como não confirmado nesta página: não afirmamos que são compatíveis nem que são incompatíveis.
- MIT com Apache-2.0 não confirmado
- Apache-2.0 com MPL-2.0 não confirmado
- Apache-2.0 com EPL-2.0 não confirmado
- MIT com MPL-2.0 não confirmado
- LGPL-3.0 com Apache-2.0 não confirmado
- BSD-3-Clause com Apache-2.0 não confirmado
Para um par específico, leia as duas licenças, veja se o projeto que você usa publica uma política de licenças e, havendo dinheiro ou risco em jogo, consulte um advogado. Informação, não aconselhamento jurídico.
Continue por aqui
Cada página resolve uma parte da escolha.
Perguntas frequentes
A licença Apache-2.0 é compatível com a GPL?
Segundo a lista de licenças do projeto GNU, a Apache-2.0 é compatível com a versão 3 da GPL e não é compatível com a versão 2. A página traz as frases originais.
Posso misturar código MIT com código GPL?
Segundo a lista do GNU, a licença Expat (a MIT, na nossa leitura) é compatível com a GNU GPL, nas versões 2 e 3. O trabalho combinado passa a seguir os termos da GPL.
E a compatibilidade entre licenças que não são a GPL?
Não confirmado. A lista do GNU trata de compatibilidade com a GPL; para pares como MIT e Apache-2.0, ou MPL-2.0 e EPL-2.0, não achamos uma fonte aberta que possamos citar nesta página. Consulte a política de quem mantém cada projeto e um advogado.
Compatível quer dizer que posso juntar sem problema?
Compatível, na lista do GNU, quer dizer que o código sob aquela licença pode ser combinado com código GPL, e o conjunto segue os termos da GPL. Não substitui ler as licenças nem pedir orientação jurídica.