Pacote de software contendo bibliotecas LGPL como Java Fat-Jar Archive

8

No trabalho, estamos implantando um pacote de software de um aplicativo Java (escrito por nós) que possui muitas dependências externas, a maioria delas sendo bibliotecas de terceiros licenciadas por LGPL e BSD, distribuídas como arquivos JAR.

Atualmente, estamos implantando um cliente de teste do software que é distribuído como um único arquivo java fat jar, criado pelo plug-in Maven assembly, que faz aproximadamente o seguinte:

  • extrair todas as dependências
  • reorganizá-los como um único arquivo jar

Todos os arquivos de classe são extraídos e agrupados novamente em um único arquivo JAR com nosso próprio aplicativo. Percebi que também alguns arquivos são substituídos, principalmente arquivos LICENSE.txt, devido ao mesmo nome.

Gostaria de saber se isso está correto e está em conformidade com a licença LGPL. Qual seria a melhor maneira de distribuir o software? Como esse pacote específico seria melhor organizado?

Não incorporamos nenhum código-fonte diretamente em nossos arquivos de origem, nem tocamos nos arquivos binários. O código fonte das bibliotecas acompanha todo o produto. (É um software usado internamente, não implantado nos clientes nem nada, mas acho que isso não importa.)

PS: Fiz a mesma pergunta no Stack Overflow, e me sugeriram fazer aqui.

scravy
fonte

Respostas:

2

Como você está usando o Maven, eu recomendo mudar para o plugin de sombra para criar seu JAR. Ele pode ser configurado para manipular automaticamente vários arquivos de licença "padrão" (consulte a seção sobre transformadores de recursos) e avisará se suas dependências têm classes sobrepostas.

kdgregory
fonte
1

Este é realmente um assunto difícil que deve ser discutido com um advogado. De qualquer forma, substituir os arquivos LICENSE.txt (que efetivamente elimina todos, exceto um deles) é definitivamente um impedimento. Renomeando-os para Foo-LICENSE.txt, Bar-License.txt é o primeiro passo que você deve executar imediatamente. Em relação à LGPL, oferecer instruções sobre como substituir a lib pelo fatjar pode ser suficiente para cumprir a seção 4e da LGPL (pergunte ao seu advogado). Se a solicitação do advogado não for viável, solicitar diretamente aos autores a permissão para fazê-lo dessa maneira pode ser uma alternativa.

user281377
fonte