Como as licenças compatíveis com GPL, como o MIT, podem ser usadas em programas GPL sem estar sujeitas à provisão de copyleft?

19

Atualmente, estou examinando as possibilidades e implicações de vincular uma biblioteca GPL a um aplicativo em um contexto comercial.

Pelo que entendi da GPL, desde que o aplicativo seja usado internamente, não há obrigação de liberar seu código (mesmo que uma cópia seja movida para uma subsidiária controlada).

O que não entendo é o seguinte ponto da FAQ:

Se uma biblioteca for lançada sob a GPL (e não a LGPL), isso significa que qualquer software que a use deve estar sob a GPL ou uma licença compatível com GPL ? Sim, porque o software como ele é realmente executado inclui a biblioteca.

Se eu der uma olhada nas licenças compatíveis com GPL , algumas delas (como a do impulso) parecem não impor o lançamento do código. Seu uso criaria uma situação em que você poderia estar em conformidade com a licença GPL sem ter que respeitar a obrigação de tornar seu código público (o que não parece muito credível).

(Nota: existem componentes no Adobe Photoshop licenciados sob impulso e não acho que o código esteja disponível sob demanda)

A explicação mais razoável seria que estou perdendo alguma coisa ... Você poderia me dizer onde eu cometi um erro?

Louis Morazzani
fonte
1
+1 para explicação só porque por que você nunca realmente usar essa palavra em uma frase
Jimmy Hoffa
@JimmyHoffa +1 pelo seu amor à linguagem.
Racheet
1
Onde você achou que o Boost era GPL? Tem sua própria licença. A regra padrão é que a GPLv2 não se misture com o software proprietário. Há uma pergunta por semana neste site sobre como contornar isso. Deveríamos banir todas as perguntas da GPL.
Andrew T Finnell
Vejo que ele disse que o Boost era compatível com a GPL. O resto do meu comentário permanece.
Andrew T Finnell

Respostas:

26

Como as licenças compatíveis com GPL, como o MIT, podem ser usadas em programas GPL sem estar sujeitas à provisão de copyleft?

Resposta curta: eles não são. Eles ficarão sujeitos ao copyleft.

Resposta longa:

O artigo da Wikipedia sobre compatibilidade de licenças possui uma boa seção sobre compatibilidade com GPL :

Muitas das licenças de software livre mais comuns, como a licença original do MIT / X, são "compatíveis com GPL". Ou seja, seu código pode ser combinado com um programa sob a GPL sem conflito ( a nova combinação teria a GPL aplicada ao todo ).

[enfase adicionada]

E mais explicitamente nas Perguntas frequentes da FSF sobre compatibilidade com GPL :

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.

E apenas para edificação, aqui estão os comentários da FSF sobre várias licenças

Comentário da FSF sobre a licença de reforço

Esta é uma licença de software livre não copyleft, laxista e permissiva, compatível com a GNU GPL.

O que significa que qualquer coisa licenciada sob o Boost é facilmente incluída na GPL.

Onde fica complicado

Digamos que tenhamos um projeto Foolicenciado sob o Boost e um projeto Barlicenciado sob a GPL e que deseja usar Foo.

Bar+Fooé permitido, pois as licenças são compatíveis e a liberação de Bar+Foodeve ser GPL, assim como a BarGPL. Foo, por si só e sem Bar ou Bar+Foo , ainda está disponível sob a licença Boost. Disse de outra maneira, Bar+Foonão tem impacto sobre a licença Foo.

A licença resultante da combinação do projeto é um evento de ação direta apenas para a combinação. É não um evento retroativo.

Portanto, se alguém quiser pegar Fooe fazer outra coisa com ele, ainda estará livre para fazê-lo sem a disposição de copyleft da GPL. No entanto, se eles aceitarem Bar+Foo, excluírem Bare usarem apenas +Foo, ainda estarão vinculados aos termos da GPL, pois Bar+Fooforam GPL'd.

Sua outra pergunta:

Pelo que entendi da GPL, desde que o aplicativo seja usado internamente, não há obrigação de liberar seu código (mesmo que uma cópia seja movida para uma subsidiária controlada).

Isso é respondido diretamente pelo FAQ da FSF GPL sobre distribuição de fontes

A GPL não exige que você libere sua versão modificada, ou qualquer parte dela. Você é livre para fazer modificações e usá-las em particular, sem nunca liberá-las. Isso se aplica também às organizações (incluindo empresas); uma organização pode criar uma versão modificada e usá-la internamente sem nunca liberá-la para fora da organização.

As subsidiárias integrais são consideradas parte da organização mãe, portanto você estaria legalmente claro. A FSF indicaria que você está violando o espírito do Software Livre.


fonte
3
Eu me pergunto: se um funcionário estiver usando a versão modificada não publicada na empresa, ele teria o direito de obter o código fonte da empresa?
unor 12/07/2013
@ GlenH7: obrigado pela sua explicação muito útil (especialmente o "Onde fica complicado" parte)
Louis Morazzani
2
@unor - Não, isso constituiria um uso privado pela empresa (o funcionário faz parte da empresa, não uma entidade separada).
Iheanyi 23/05
"No entanto, se eles usam Bar + Foo, excluem Bar e usam apenas + Foo, eles ainda estão vinculados aos termos da GPL desde que a Bar + Foo foi GPL." Você tem certeza? Foo ainda estava licenciado sob a licença Boost. Pelo que entendi, a licença do Boost não deve ser removida, mesmo quando combinada com o código GPL. ("A [...] concessão de licença acima, esta restrição e o aviso de isenção de responsabilidade a seguir devem ser incluídas em todas as cópias do Software, no todo ou em parte, e em todos os trabalhos derivados do Software")
lesderid 23/03
2
@ GlenH7 Claro, mas eles teriam permissão para relicenciar Foosob a GPL? Sublicenciar seria bom, mas eles também teriam que manter a licença Boost Bar+Foo, não é?
lesderid 23/03
8

Por "compatível com GPL", eles significam uma licença que não entra em conflito com a GPL. Uma licença menos restritiva, como a licença Boost, é "compatível" com a GPL porque não impede que os usuários do código façam o que a GPL permitiria. Ou seja, a licença Boost permite que as pessoas copiem livremente, o que a GPL exige que as pessoas tenham permissão.

Um exemplo de uma licença que não é "compatível" seria uma licença que exigisse uma taxa aos autores originais para que os usuários distribuíssem cópias. Como a GPL permite explicitamente distribuição gratuita e paga, essa licença mais restritiva não seria compatível.

Em outras palavras, a GPL diz "Você deve permitir $ A, $ B e $ C". Qualquer licença que permita $ A, $ B, $ C e também $ D e $ E é compatível. Uma licença que permitisse $ A e $ B, mas não $ C, não seria.

Gort the Robot
fonte
4
Portanto, o novo trabalho combinado é totalmente licenciado pela GPL, correto? Mas o código original licenciado no MIT ainda pode ser distribuído separadamente no MIT sem entrar em conflito com a GPL, correto?
Robert Harvey
1
IANAL, mas sim, é assim que funciona.
Fabio Fracassi
4
" porque ele não restringe os usuários do código a fazerem o que a GPL permitiria " - E também porque não impede que o usuário faça o que a GPL exigiria.
Ross Patterson
2
Nitpick menor, mas a GPL na verdade não proíbe taxas de cobrança por praticamente qualquer coisa; consulte gnu.org/licenses/gpl-faq.html#DoesTheGPLAllowMoney
Maximus Minimus
1
Tenho certeza de que a GPL permite a qualquer pessoa cobrar pela distribuição, mas não permite que as pessoas exijam que outras cobrem se elas se distribuírem. Em outras palavras, posso cobrar uma cópia, mas não posso exigir que você me envie um pagamento se você fornecer uma cópia a terceiros.
Gort the Robot
1

Você não cometeu um erro: a resposta da FAQ estava incompleta. Deveria ter dito que o programa combinado deve ser licenciado sob a GPL, não uma licença compatível com GPL. Desde então, foi corrigido (veja abaixo: enfatizei o importante):

Sim, porque o programa realmente está vinculado à biblioteca. Assim, os termos da GPL se aplicam a toda a combinação. Os módulos de software vinculados à biblioteca podem estar sob várias licenças compatíveis com GPL, mas o trabalho como um todo deve ser licenciado sob a GPL . Veja também: O que significa dizer que uma licença é "compatível com a GPL"?

Eu disse anteriormente que "se uma biblioteca é lançada sob a GPL, qualquer software que a utilize deve estar sob a própria GPL devido à sua natureza" viral ". Uma licença permissível compatível com a GPL, como o boost, não pode ser usada . " Por "software que o utiliza", eu quis dizer os módulos e a biblioteca combinados.

Bennett McElwee
fonte
Eu acredito que este é um mal-entendido comum. Não é necessário liberar sua parte do código sob a GPL, desde que tenha uma licença compatível. A licença da sua parte também pode ser mais permissiva, mas não menos, que a GPL. Somente o trabalho combinado permanece sob a GPL, portanto as restrições adicionais da GPL se aplicam apenas se alguém usar seu código junto à biblioteca GPL vinculada. Veja gnu.org/licenses/gpl-faq.html#GPLModuleLicense
ert
1
Sim está certo. Minha resposta original poderia ter sido mal interpretada. Felizmente, está tudo discutido agora, já que o Gnu atualizou suas perguntas frequentes para dizer a coisa certa.
Bennett McElwee