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.
Respostas:
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
fonte
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.
fonte
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.
fonte
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.
fonte
IANAL, TINLA, etc.
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.
Corrigir. A licença exige que todos os destinatários do software tenham acesso ao código-fonte.
Isso pode constituir um trabalho derivado, e você ainda precisará distribuir todos os scripts de construção que reduzem o programa para uma biblioteca.
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.
fonte
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.
fonte
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.
fonte
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.
fonte