Reescrevendo o código GPL para alterar a licença

23

Eu encontrei uma biblioteca GPL (sem licença dupla), que faz exatamente o que eu preciso. Infelizmente, a licença GPL na biblioteca é incompatível com a licença de uma biblioteca diferente que eu uso. Decidi, portanto, reescrever a biblioteca GPL, para que a licença possa ser alterada.

Minha pergunta é: Quão extensas as alterações precisam ser na biblioteca para poder alterar a licença? Em outras palavras, qual é a maneira mais barata de fazer isso?

I_like_traffic_lights
fonte
3
Pode ser mais barato pagar ao autor da biblioteca GPL para liberá-lo sob uma licença diferente.
quant_dev 6/06/11
3
Em vez de perguntar qual é o caminho MAIS BARATO, por que não nos contar a história completa e perguntar "Qual é a coisa certa a fazer?"
John R. Strohm
4
Se a outra biblioteca não for compatível com a GPL, talvez seja a biblioteca que você precisa alterar.
Paul Butcher
1
Que licença a outra biblioteca possui?
18713 Andres F.

Respostas:

34

Não sou advogado, mas o AFAIK, se você tiver visto o código da biblioteca GPL, qualquer biblioteca de emulação que você escrever será contaminada e poderá ser declarada um trabalho derivado por um juiz, se for muito semelhante em sua apreciação.

Portanto, o processo seria escrever uma especificação funcional e ter alguém que não viu o código GPLed escrever a biblioteca.

Edit: Observe que, com a maneira como você formula sua pergunta "Quão extensas as alterações precisam ser na biblioteca para poder alterar a licença?" a resposta é clara: AFAIK: faça o que fizer, se você apenas modificar a biblioteca, deverá respeitar o termo da licença, o que possibilita sua modificação em primeiro lugar.

AProgrammer
fonte
3
A questão da contaminação provavelmente não é uma preocupação muito séria na prática. Nos casos em que você faz engenharia reversa do código de uma entidade comercial, o firewall entre o leitor e o implementador é necessário para a ação (essencialmente inevitável) por violação, para que você possa mostrar que não havia possibilidade de copiar código da outra versão . No caso da maioria dos códigos GPL, a menos que você esteja violando flagrantemente, ninguém vai processá-lo, pois não é do interesse deles.
Mark Bessey
1
Você pode gostar da roleta russa, a escolha é sua. Se, por algum motivo - a concorrência herdar o código de uma maneira ou de outra, ou apenas a concorrência decidir financiar o processo - você for processado e condenado, é algo que pode afogar a sua empresa. Mesmo se você não for processado, se for conhecido, a má reputação pode ser um problema.
APROGRAMM6 #
2
Eu acho que a questão "contaminada" se aplica principalmente às NDAs. Para questões de direitos autorais, dificilmente faz sentido. Considere que os direitos autorais também se aplicam a livros, jornais, filmes etc. George Lucas provavelmente viu a série Star Trek na TV antes de criar Star Wars, isso faz de Star Wars um trabalho derivado? Se um repórter de jornal ouve algo no rádio, isso o impede de escrever sobre o mesmo evento?
user281377
6
A abordagem de sala limpa é apenas uma maneira de provar que você não violou a lei de direitos autorais. Pelo que entendi - e novamente não sou advogado - coisas desenvolvidas sem o conhecimento do trabalho original podem não infringir direitos autorais (mas podem infringir patentes). Coisas desenvolvidas com esse conhecimento podem ou não violar os direitos autorais - é apenas mais difícil provar que as semelhanças são devidas a eventos aleatórios ou à natureza do problema que torna natural a abordagem.
APJRrammer
1
@ammoQ: Nos EUA, houve um processo de violação de cópia há muito tempo (um pacote de software estatístico?) em que uma empresa foi acusada de ter infringido, apesar de todas as linhas de código terem sido reescritas. Observe que Star Wars não é particularmente parecido com Star Trek e que um repórter de jornal não vai escrever uma história apenas pelo que ouviu no rádio.
precisa
21

A maneira usual de contornar esse problema é primeiro entrar em contato com o proprietário da biblioteca e perguntar se eles o liberarão sob uma licença diferente.

Se você estiver trabalhando em um projeto de código aberto em que a GPL não é compatível, há uma boa chance de fazer isso. Alguns projetos acabam com uma licença GPL apenas porque parecia a melhor escolha.

Obviamente, isso se aplica às duas bibliotecas. Obter a licença permissiva licenças duplas sob uma licença menos permissiva não deve ser um problema.

Se você estiver trabalhando com um produto comercial, muitos autores da biblioteca fornecerão uma liberação sob uma licença diferente, se você os compensar adequadamente.

gbjbaanb
fonte
8
Vale a pena tentar, mas isso não funciona se o proprietário da biblioteca aceitou ou fez uso de contribuições da GPL, o que é o caso de muitas bibliotecas.
19712 Brian
^ A menos que eles tivessem um acordo de "contribuidor" que transferisse os direitos autorais de volta aos autores originais: softwareengineering.stackexchange.com/a/225577/93511
Jonathan
17

Meu entendimento é que, se você começar com um trabalho e modificá-lo, não importa quão extensas sejam as modificações, o resultado final será um trabalho derivado do original. Você precisará escrever a biblioteca do zero. Se você escreve a biblioteca do zero, mas viu o código, se for muito semelhante, poderá ser processado novamente por violação de direitos autorais.

Essas regras não são específicas para o software, elas se aplicam a todos os tipos de direitos autorais.

Eu não sou advogado, e isso não é aconselhamento jurídico. Também não estou na sua jurisdição e você deve sempre duvidar dos conselhos legais oferecidos na Internet. Se você deseja obter aconselhamento jurídico confiável, precisará pagar um advogado.

btilly
fonte
4

IANAL, mas sei que nos EUA, nenhum grau de modificação criará um trabalho não derivado. Se ele tiver algum código copiado da biblioteca antiga ou tiver semelhança interna suficiente para causar problemas por plágio em uma classe da Universidade, você não estará perto de um novo trabalho. Alterar alguns nomes de funções ou variáveis ​​não fará nada, nem mover pedaços de código na fonte. Você teria que recriá-lo independentemente para ter uma chance. IOWs, você precisa examinar apenas as interfaces que ela fornece e decidir como fornecer essa funcionalidade e recriá-la dessa maneira para ter uma chance. Mesmo assim, você ainda pode não estar fora de perigo se alguém realmente se importa e fica bravo.

No final, sua melhor aposta é entrar em contato com o autor da biblioteca e esperar que você encontre um acordo para um licenciamento mais permissivo da biblioteca.

ddeflyer
fonte
1

Se tudo o mais sugerido aqui (solicitar licença dupla, reescrever) não for aceitável, lembre-se de que ainda não é um caso claro se a vinculação dinâmica com o programa / biblioteca proprietário é considerada um trabalho derivado. A FSF diz que sim, mas muitos advogados (incluindo Lawrence Rosen) questionaram isso.

Para que você possa vincular seu software à biblioteca GPL, verifique se o código fonte é distribuído com todas as cópias do seu software. Se alguém o processa, é necessário provar que a compreensão desse aspecto complicado e obscuro da GPL está correta. Como parece (por exemplo, Galoob vs Nintendo), você não pode ter certeza absoluta do que faz o derivado funcionar e do que não.

Jacek Prucia
fonte
ou pelo menos pergunte se a biblioteca também pode ser LGPL.
6119 Johan
2
A questão da vinculação dinâmica é difícil, mas não conte com um juiz que esteja no seu caminho. O juiz pode decidir que você aceita as definições de Gnu se usar a licença Gnu e provavelmente não deseja basear seu produto de software no resultado de um processo judicial que ainda não aconteceu.
precisa
1

A única maneira de não derivar o trabalho seria se você reescrevesse o código inteiro sem usar o código original. O que provavelmente é inviável.

Existem maneiras muito mais fáceis de contornar a GPL:

  • de maneira clara: entre em serviço, acesse-o através de um soquete. Socket é um limite para a licença GPL (a menos que seja famosa GPLv3 com a cláusula Affero );
  • na zona cinza: vincule-o dinamicamente. Há muita controvérsia se a vinculação dinâmica é ou não um limite para o trabalho derivado. Poucos pontos de vista aqui . Isso também pode depender da jurisdição em que você está.

Observe também que a GPL é uma licença de distribuição ; portanto, você só precisará licenciar seu trabalho se distribuir binários a terceiros. E você é obrigado apenas a liberar a fonte para eles, sem obrigação de liberá-lo para o público em geral, a menos que você libere binários para o público em geral. Se você estiver usando seu código, por exemplo, apenas em seus servidores, não terá obrigação de liberar nenhum código. É assim que, por exemplo, o Google faz isso com seus kernels Linux aprimorados.

vartec
fonte
Estou longe de ter certeza de que o soquete é uma barreira. Segundo nossos advogados, os engenheiros estão muito focados em medidas técnicas, enquanto o efeito global é o que é verificado pela lei. Publicar uma interface de soquete e dar um exemplo de uso no emacs lisp foi bom para eles. Mas dar a possibilidade de instalar automaticamente o emacs junto com o nosso programa não foi. Você está certo para a distribuição. Mas observe que você não pode impedir que aquele a quem você distribui distribua ainda mais.
AProgrammer
@ AProgrammer: até a FSF diz que, se for um processo separado, esses são programas separados, portanto não derivam trabalho. Perguntas freqüentes sobre os plug-ins, mas a lógica ainda se aplica: gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins
vartec
A questão é sobre plug-in e plug-in não são indispensáveis ​​por natureza. Eu não apostaria que minha empresa considerou legítimo estruturar um programa em dois processos, um GPL porque usava bibliotecas GPL e outro não porque queremos manter a fonte privada. Especialmente quando ambos são distribuídos juntos. Mas essa é a sua decisão.
AProgrammer
1
@A: a distribuição com outros programas é "agregação" e é explicitamente permitida pela GPL. E não, essa não é minha decisão. Pessoalmente, eu não tocaria na biblioteca GPL, mesmo com uma vara de três metros de comprimento.
vartec
1

IANAL e, de qualquer forma, isso pode não significar nada legalmente, mas acredito que, no livro "Hackers", de Steven Levy, ele descreve como, a certa altura, o RMS escreveu o código * nix para dinheiro durante o dia e à noite, escreveu o mesmo coisas em casa para que ele pudesse fazer parte do ... GNU? ... isso foi antes do Linux ... algum sistema livre do tipo Unix. Acredito que ele teve que tornar o código residencial diferente do código diário, mas ele estava basicamente fazendo exatamente o que você está sugerindo.

Provavelmente isso também não importa legalmente, mas ... Não tenho certeza se a Apple e / ou a Microsoft obtiveram permissão / licença ou algo assim, mas os laboratórios da Bell não inventaram a interface de área de trabalho / ícone / mouse, usada para Macs (ou Lisa?) que foi usada pela Microsoft.

Brian Marshall
fonte
Isso seria o Xerox PARC, não o Bell Labs.
Marnen Laibow-Koser
E Jobs fez um acordo com a Xerox que permitia à Apple ir ao laboratório em Palo Alto. Ninguém na Xerox se importava com essa tecnologia na época.
Aldalgrande 4/14/14
0

Não há resposta para isso, exceto por um julgamento perante um juiz em sua jurisdição específica. Mas você quer arriscar? Ou tente reescrever a biblioteca GPL, os testes etc. etc. Tem certeza de que a outra biblioteca é incompatível com a GPL? Na verdade, isso é bastante incomum, a menos que você queira distribuir as duas bibliotecas sob os termos das bibliotecas que não são da GPL.

Neil Butterworth
fonte
Você pode obter a lista de licenças Gnu em gnu.org/licenses/license-list.html e perceberá que ela está dividida em licenças gratuitas compatíveis com GPL, licenças gratuitas não compatíveis com GPL e licenças não gratuitas. A GPL tem alguns requisitos específicos aos quais outras licenças frequentemente não estão em conformidade, e um dos objetivos da GPLv3 era facilitar a compatibilidade.
David Thornley
0

Quão extensas as alterações precisam ser na biblioteca para poder alterar a licença?

Na maioria das partes do mundo, você precisa começar do zero e não cortar e passar nada. Você precisa de novos nomes para funções / classes / variáveis, etc, etc, e a estrutura deve ser diferente. Então você está seguro.

Por outro lado, se uma ferramenta diff não encontrar nenhuma semelhança, então ...

Johan
fonte
2
Se uma ferramenta diff não encontrar nenhuma semelhança, ainda assim poderá ser uma violação de direitos autorais. Olhe para ele de um ponto de vista que não é de programação: escrevo um livro, você o traduz para o sueco e, pelas leis de direitos autorais dos EUA (e provavelmente sueco), você fez um trabalho derivado.
David Thornley 06/06
@ David Thornley Sim, você está certo sobre o trabalho derivado.
6117 Johan