A LGPL exige que, se um programa usa a biblioteca LGPL-ed, os usuários devem poder vincular novamente o programa a uma versão diferente da biblioteca:
...
d) Siga um destes procedimentos:
0) Transmitir a Fonte Correspondente Mínima sob os termos desta Licença e o Código do Aplicativo Correspondente de forma adequada e sob os termos que permitem ao usuário recombinar ou vincular novamente o Aplicativo com uma versão modificada da Versão Vinculada para produzir um Trabalho Combinado modificado, da maneira especificada na seção 6 da GNU GPL para o transporte da Fonte Correspondente.
1) Use um mecanismo adequado de biblioteca compartilhada para vincular à Biblioteca. Um mecanismo adequado é aquele que (a) usa em tempo de execução uma cópia da Biblioteca já presente no sistema do computador do usuário e (b) funcionará corretamente com uma versão modificada da Biblioteca que seja compatível com a Versão Vinculada da interface.
...
No entanto, em alguns casos, isso pode representar dificuldades consideráveis. Em particular, os programas Haskell são quase sempre compilados estaticamente. Além disso, o compilador faz otimizações entre módulos, não sendo possível retirar uma parte do código e substituí-lo por outro. Portanto, é muito difícil satisfazer essa condição. (Veja este link no Haskell Wiki.)
A vinculação dinâmica seria uma solução, mas em muitos casos, isso não é possível. Por exemplo:
- Algumas plataformas podem não ter vínculo dinâmico.
- Alguns idiomas não têm a possibilidade de vinculação dinâmica. Ou, não é possível criar módulos multiplataforma.
- Em alguns casos, a vinculação dinâmica impediria otimizações importantes. Embora eu diga que isso raramente é um problema sério, em idiomas como Haskell a perda de desempenho pode ser considerável.
Portanto, estou procurando uma licença padrão do tipo LGPL que não exija a possibilidade de vincular novamente (e entendo que isso remove um pouco de liberdade dada aos usuários). Alguns projetos usam sua própria modificação da LGPL, por exemplo, wxWidgets . Mas eu prefiro usar alguma licença padrão que seja um pouco mais oficial, talvez verificada por alguns especialistas em direito e compatível com (L) GPL. Existe algo assim?
(Também estaria interessado em saber se existem algumas conseqüências imprevistas de uma modificação da LGPL.)
fonte
Respostas:
Estou surpreso que ninguém tenha mencionado a Licença Pública Mozilla. É semelhante ao LGPL, exceto que permite vinculação estática. MPL versão 2 é compatível com a GPL / LGPL.
Licença Pública Mozilla (MPL 2.0) vs Licença Pública Geral Menor GNU (LGPL 3.0)
fonte
wxwidgets é licenciado sob essencialmente = LGPL + static static
fonte
IANAL, mas fui levado a acreditar que uma solução é fornecer arquivos de objeto para peças que não sejam LGPL. Dessa forma, o usuário pode vincular novamente o programa e, portanto, é livre para alterar a parte LGPL, atendendo aos requisitos da LGPL.
Em outras palavras, você precisa ter um pacote de origem, com fontes LGPL e arquivos de objetos compilados com código não LGPL. Obviamente, você precisará fornecer arquivos de objeto para cada arquitetura diferente para a qual liberar os binários, mas não acho que isso seja um problema.
Do ponto de vista do desenvolvimento, o mais simples pode ser apenas fazer o sistema de compilação também compilar o pacote de origem ao mesmo tempo, ao criar o binário para distribuição.
fonte
Encontrei um com a licença do Google: OpenScales
Não é padrão, porém, e não sei se existe.
fonte
Como você continuaria a garantir a liberdade do usuário? Acredito que a resposta "correta" é vincular estaticamente um calço que carrega dinamicamente a biblioteca.
fonte