Criei um programa baseado em um projeto LGPL e não tenho permissão para publicar o código-fonte


13

Eu pensei que LGPL era uma licença permissiva, assim como MIT, BSD ou Apache. Mas hoje eu li que apenas a vinculação à LGPL (bibliotecas etc.) é permitida a partir de código-fonte fechado - além disso, é copyleft -, então eu tenho que publicar código baseado em um programa LGPL.

Criei um programa para o meu empregador baseado em um programa LGPL, mas com modificações consideráveis. Obviamente, não tenho permissão para divulgar esse código-fonte modificado. Ao mesmo tempo, eu tenho que, se eu distribuí-lo (certo?).

Então, eu me pergunto se há uma solução alternativa para isso, para que eu possa manter esse código fechado (gostaria de poder publicar o código) - alguma sugestão?

Minha ideia: posso colocar a maioria das funções do aplicativo LGPL original em uma biblioteca externa, escrever o executável principal do zero, mas consultar a biblioteca para todas as funções que não modifiquei?

Atualmente, tudo está em um arquivo .jar (é Java / Swing). se você acha que minha ideia é legal / tecnicamente viável - quanto esforço seria para separar o que escrevi e qual é o original? Eu não sou o mais experiente em java.


Neste post , o cara diz "Além disso, a LGPL pode ser contornada, basta colocá-la em uma nova DLL e usar delegados ou interfaces para chamá-la a partir do código-fonte LGPL". - alguém pode elaborar um pouco mais como eu faço isso com o aplicativo Java original?

16
este não é um site jurídico , eu não aceitaria nenhum conselho de ninguém aqui, exceto o conselho para obter aconselhamento jurídico real, é claro.

5
A LGPL está preocupada principalmente com a distribuição e você não nos forneceu nenhuma informação sobre a maneira como planeja distribuir esse código. É improvável que a pergunta obtenha respostas precisas até você fazer isso. De qualquer forma, reiterarei que você não deve receber aconselhamento jurídico da Internet .
Rein Henrichs

Acredito que agora compreendo a LGPL razoavelmente bem em termos de legalidade. Então, eu estou realmente perguntando a vocês sobre como fazê-lo funcionar tecnicamente - embora você esteja certo, é claro - em caso de dúvida, consultarei um advogado.
Esuus

Você não diz qual software está usando, mas alguns fornecedores de software GPL / LGPL (e outros) fornecem licenças comerciais para pessoas em sua situação.
21412 Jaydee

Respostas:


13

Primeiro de tudo, buscar aconselhamento jurídico aqui (como em: os internets) não é uma boa ideia.

Em segundo lugar, e este sou apenas eu falando, não um advogado, você deveria ter pensado nisso antes de tomar um programa da LGPL e modificá-lo para o seu empregador.

Se a licença fosse algo que você poderia desconsiderar apenas porque não gostava, não haveria muito sentido em ter uma agora?

Se você e / ou seu empregador não estiverem dispostos a publicar o código-fonte com suas modificações, será necessário parar de usar esse código LGPL e se livrar dele.

Mais uma vez, sou apenas eu falando.

Obtenha conselhos de um advogado de verdade.


Em resposta à sua pergunta sobre contornar a licença adicionando o código a uma DLL, eu suporia que funcionaria da seguinte maneira.

O que você faria seria alterar o programa original o suficiente para poder chamar funções em bibliotecas externas. Você precisaria fazê-lo sem especificar esse trecho de código para suas necessidades, bibliotecas, nomes de funções etc.

Essas alterações serão publicadas, conforme os requisitos de licença.

Em seguida, você cria sua própria biblioteca externa com seu próprio código proprietário e solicita que o programa carregue e execute, usando as modificações feitas nele.

Não conhecendo toda a extensão da licença LGPL, não sei dizer se isso é suficiente para evitar a publicação de sua biblioteca, embora eu suspeite.

No entanto, novamente ...

Obtenha aconselhamento de um advogado


4
Observe que a FSF, que escreveu a família de licenças GPL, considera o vínculo dinâmico para criar um trabalho derivado, para que possa não funcionar. (Outras pessoas pensam que a FSF está errada.) Eu não acho que haja uma determinação legal, embora eu possa estar errado.
David Thornley 17/05

Verdade? Estou convencido de que você sabe mais sobre isso do que eu, David, mas a wikipedia diz que você pode até vincular dinamicamente a bibliotecas licenciadas pela GPL sem precisar publicar na GPL: "Por exemplo, a exceção de vinculação da GPL permite programas que não se licenciam sob a GPL para vincular a bibliotecas licenciadas sob a GPL sem, assim, ficar sujeita aos requisitos da GPL ". Então isso me faz pensar agora qual é a diferença entre GPL e LGPL: pensei que apenas a LGPL permitia isso.
Esuus

2
@ Dave: A grande equipe jurídica do meu empregador discordaria. Eles são muito agressivos quanto à proteção de sua propriedade intelectual e somos expressamente proibidos de vincular o código GPL ao nosso, a menos que estejamos distribuindo o código sob a GPL. Onde você encontrou essa exceção? Não vejo isso na GPLv2 ou na v3. Parece que você está se referindo a uma exceção de vínculo que não faz parte da GPL de baunilha. Os proprietários de direitos autorais podem adicionar uma exceção de link ao código GPL, a seu critério, no entanto. Consultar a equipe jurídica é realmente a melhor coisa a fazer.
Anule

5
Eu não confiaria na Wikipedia nisso. Pelo que você sabe, a entrada foi escrita por um jovem de 14 anos que leu sobre o licenciamento no fim de semana anterior. Obtenha conselhos reais. Ou você pode apostar na fazenda e esperar que sua empresa não tenha problemas. O que quer que funcione.
Lasse V. Karlsen

A ligação do @Dave à GPL é um problema. Até onde eu sei, essa foi uma das principais razões para o FreeBSD abandonar o GCC em favor do Clang / LLVM .
Legolas19

4

A maioria das bibliotecas de código aberto publicadas sob LGPL ou licença equivalente, pelo menos aquelas boas o suficiente para uso em seus projetos, são criadas usando o princípio aberto / fechado: http://en.wikipedia.org/wiki/Open/closed_principle .

Você deve refatorar seu código para que seu aplicativo seja vinculado à biblioteca LGPL e todas as extensões estejam contidas no seu código de aplicativo fechado.


Bem, o código LGPL que usei é um aplicativo, não uma biblioteca. Portanto, a questão é se posso transformá-lo em uma biblioteca ou - como sugeriu Lasse - transformar meu código em uma biblioteca e manter o resto LGPL / aberto
Esuus

1
@Dave: LGPL costumava ser conhecida como Library GPL. Eu realmente não vi nenhum aplicativo usando esta licença. O que você estava usando, se não é um segredo?
Olaf

A FSF agora chama de GPL Menor. O único uso que posso pensar agora para aplicativos é poder vincular bibliotecas proprietárias e similares.
David Thornley

Curiosamente, o Mozilla e o OpenOffice.org estão licenciados sob LGPL.
Esuus

@ Dave: Então eu estou com @ David Thornley. O Mozilla fornece meios para criar plug-ins personalizados que podem ser código fechado. Não estou familiarizado com o OpenOffice, mas aposto que eles fazem isso. O aplicativo LGPL que você usa fornece algum tipo de funcionalidade de extensão, como adicionar plug-ins ou ter uma linguagem de script? Você pode usar esse mecanismo para o seu código?
Olaf

2

O mesmo aviso: IANAL.

Algo que ninguém mais mencionou até agora é que, mesmo que você separe o código, você ainda precisará distribuir o código-fonte nas partes da LGPL ou, pelo menos, fornecer informações sobre onde eles podem ser baixados.

A única maneira de contornar isso é não distribuí-los em primeiro lugar.


2

Não acho que você precise de um advogado para entender que tentar burlar uma licença não é uma coisa boa. O bom senso é suficiente.

Em vez disso, você pode entrar em contato com o autor original do programa LGPL e solicitar / comprar uma licença diferente e proprietária.

As únicas outras alternativas são liberar a fonte ou reescrevê-la completamente.


1

IANAL, TINLA, etc.

Eu pensei que LGPL era uma licença permissiva, assim como MIT, BSD ou Apache. Mas hoje eu li que apenas a vinculação à LGPL (bibliotecas etc.) é permitida a partir de código-fonte fechado - além disso, é copyleft -, então eu tenho que publicar código baseado em um programa LGPL.

Sim, a LGPL exige que você disponibilize o código-fonte para qualquer pessoa que receba uma cópia da obra ou distribua seu trabalho de uma forma em que os destinatários do software possam substituir sua versão da obra da LGPL por uma nova versão. Em qualquer um dos casos, todas as modificações na parte LGPL do trabalho devem estar disponíveis para todos os destinatários do trabalho.

Criei um programa para o meu empregador baseado em um programa LGPL, mas com modificações consideráveis. Obviamente, não tenho permissão para divulgar esse código-fonte modificado. Ao mesmo tempo, eu tenho que, se eu distribuí-lo (certo?).

Corrigir. A licença exige que todos os destinatários do software tenham acesso ao código-fonte.

Minha ideia: posso colocar a maioria das funções do aplicativo LGPL original em uma biblioteca externa, escrever o executável principal do zero, mas consultar a biblioteca para todas as funções que não modifiquei?

Isso pode constituir um trabalho derivado, e você ainda precisará distribuir todos os scripts de construção que reduzem o programa para uma biblioteca.

Atualmente, tudo está em um arquivo .jar (é Java / Swing). se você acha que minha ideia é legal / tecnicamente viável - quanto esforço seria para separar o que escrevi e qual é o original? Eu não sou o mais experiente em java.

O Java adiciona uma série de novos problemas à LGPL, pois não está claro o que constitui a vinculação "estática" e "dinâmica". Como as exceções da LGPL sobre a GPL se baseiam nesse conceito, a LGPL é realmente equivalente à GPL na maioria dos casos. Você precisará consultar a equipe jurídica da empresa para responder a quaisquer perguntas que possam surgir.

Meu conselho é que, se alguém de fora da sua empresa tiver acesso ao programa, descarte-o e comece novamente. Se você não puder atender aos requisitos da licença, não terá permissão para distribuí-la.

Se o programa estiver disponível apenas na empresa, você só precisará disponibilizar a fonte para os funcionários da empresa. Eu sugiro adicioná-lo ao seu controle de origem da empresa existente. Isso irá satisfazer os requisitos da LGPL, desde que ninguém fora da empresa tenha acesso.


1

você pode usar o padrão do adaptador e não tocar no código original. Além disso, o LGPL permite herdar classes e substituir a funcionalidade de suas classes em seu próprio projeto.


0

Este é o meu entendimento, IANAL.

Verifique o texto da versão LGPL que cobre o código que você está usando. Acredito que o requisito é que qualquer código LGPL precise ser passível de troca - geralmente usando um arquivo jar / biblioteca compartilhada. Se você puder separar o código usado pela LGPL em uma biblioteca, poderá liberá-lo sob a LGPL, enquanto libera seu aplicativo com a licença que desejar.


0

Você não pode burlar a licença. Mesmo se você encontrar uma brecha, ainda é antiético (embora essa seja uma pergunta diferente para algumas pessoas). O que você PODE fazer é entrar em contato com o autor do referido software, explicar a situação e solicitar uma licença separada. Se ele estiver disposto a fornecer uma licença especial por um preço, você poderá comparar isso com o custo de reescrever seu software sem usar o componente em questão. E simplesmente vá com o mais barato.

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.