Um programa GPLv2 pode confiar em bibliotecas licenciadas pela Apache?


12

Um programa de software licenciado GPL (versão 2) pode confiar em bibliotecas licenciadas sob APLv2 sem entrar em conflito com a GPL? A linguagem aqui me sugere talvez não.

No meu caso específico, estou vendo um daemon que usa algumas bibliotecas externas licenciadas pelo APLv2.

UPDATE (Em resposta a respostas / comentários.)

  1. Para os fins desta pergunta, não consigo relicenciar o programa principal (o daemon)
  2. O programa principal foi ampliado com funcionalidades que usam apr-utile talvez outros componentes do APLv2

Minha pergunta é: posso liberar o daemon estendido sob a GPLv2 ou isso é algo que preciso manter para mim mesmo (sem distribuição) e / ou reimplementar sem APLv2 se estiver comprometido em (a) liberar essa extensão e, (b) manter o daemon GPL'd?


2
O documento que você vinculou afirma claramente que não. No entanto, a maioria dos códigos GPL por aí tem a provisão "ou, a seu critério, qualquer versão posterior", o que significa que você pode tratá-lo como GPLv3 e isso é bom.
Jan Hudec

Respostas:


7

Vamos esclarecer algumas terminologias primeiro. Quando a FSF diz que uma licença é compatível com a GPL, elas não significam o que muitas pessoas interpretam isso. Muitos interpretam "compatível" para significar que os dois softwares podem coexistir no mesmo aplicativo.

É quase o que a FSF significa, mas a disposição de copyleft da GPL leva as coisas um pouco mais longe.

No FAQ da GPL , enfatize o meu.

Isso significa que a outra licença e a GNU GPL são compatíveis; você pode combinar o código liberado sob a outra licença com o código liberado sob a GNU GPL em um programa maior.
Todas as versões GNU GPL permitem tais combinações em particular; eles também permitem a distribuição de tais combinações, desde que a combinação seja lançada sob a mesma versão GNU GPL .

Portanto, uma licença é compatível com a GPL se seus termos puderem ser absorvidos sob a GPL.


Então, vamos olhar para o APLv2 e o GPLv3.

  • APLv2_Lib + GPLv3_Lib => A lib combinada, pois a GPLv3 está correta.
  • APLv2_Lib + GPLv3_Lib => A lib combinada como APLv2 não está bem.

E o Apache diz o mesmo aqui :

Evitamos o software GPLv3 porque apenas a vinculação a ele é considerada pelos autores da GPLv3 para criar um trabalho derivado. Queremos honrar a licença deles.


Mas você está trabalhando com um daemon que foi licenciado sob a GPLv2, não a v3.

A FSF é bastante clara que o que você deseja fazer não é aceitável para uma distribuição pública.

Observe que esta licença não é compatível com a GPL versão 2, pois possui alguns requisitos que não estão nessa versão GPL. Isso inclui certas disposições de rescisão de patente e indenização.

Então, para responder sua pergunta:

Não , você não pode distribuir o daemon combinado usando o material licenciado GPLv2 e APLv2 .
A FSF chama explicitamente essa combinação como não permitida para distribuição pública.

Alternativas:

  1. Você tem permissão para usá-lo em particular.

  2. Você também pode reescrever a funcionalidade do APLv2 e depois combinar seu novo trabalho com o trabalho da GPLv2.

  3. Você pode ver se o daemon pode ser alterado para GPLv3. Nesse caso, você estaria livre para mesclar o trabalho do APLv2 no daemon GPLv3 agora.


2

Minha opinião está de acordo com o OP com base no texto do link ASF do OP.

O ASF (Apache Software Foundation) não gosta da ideia do código ASFv2 fazer parte de um sistema que usa GPLv2, com base nas informações limitadas do seu caso e no meu entendimento das várias licenças FOSS: independentemente de o projeto guarda-chuva ter GPLv2 , ou o projeto abrangente é GPLv2, tentando incluir o ASFv2.

Além disso, parece que um projeto guarda-chuva ASFv2 com código GPLv3 não deve acontecer, mas um projeto guarda-chuva GPLv3 pode ter código ASFv2.

O caveot, talvez (de acordo com Gnu), é como eles interagem entre si. Se vinculados, compartilhando as mesmas cópias de dados durante a execução, eles são um no mesmo programa; no entanto, se eles estiverem trabalhando como processos separados (ou seja, bifurcados), passando dados entre diferentes processos distintos, o que você está fazendo pode ser permitido porque eles são, para eles, programas separados. Se ele usa espaço de dados compartilhado durante a execução e não opera com processos distintos, o que você está fazendo pode não ser permitido, porque, para eles, eles são iguais ou muito acoplados para serem distintos ou independentes.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.