O que exatamente eu preciso fazer se usar uma biblioteca licenciada LGPL?

48

Li estas perguntas e respostas , mas ainda não entendo o que exatamente preciso fazer se vincular dinamicamente a uma biblioteca que usa uma licença LGPL (a biblioteca SDL no meu caso).

Se entendi o texto LGPL corretamente, preciso fornecer a fonte da biblioteca de alguma forma. Isso é suficiente? Caso contrário, o que mais precisa ser feito?

BЈовић
fonte

Respostas:

47

O requisito básico da LGPL é separar a biblioteca licenciada pela LGPL e seu próprio produto suficientemente bem. Isso deve permitir que os usuários forneçam sua própria versão da biblioteca, em vez da que você enviou com o seu software (com os erros corrigidos, por exemplo). Para fazer isso, você tem duas opções:

  • use o código LGPL como uma biblioteca compartilhada (para que os usuários copiem apenas o binário da biblioteca sobre o que você envia) ou
  • forneça o código fonte de todo o projeto (para que os usuários possam copiar sua fonte da biblioteca e recompilar tudo).

Note, no entanto, que a mera separação não é suficiente, embora necessária. Você deve fornecer aos usuários uma maneira documentada de substituir uma biblioteca por sua versão (por exemplo, como fazer upload de firmware ou recompilar um wrapper Python para uma biblioteca LGPL C ++).

A segunda cláusula notável é o requisito de atribuição . Isso deve ajudar a promover o nome do desenvolvedor original da biblioteca e afirmar que o que é um software interessante pode ter sido desenvolvido por outra pessoa :). Na seção relevante da janela "Sobre" ou em um arquivo LEIA-ME (se sua licença for Apache, isso seria um NOTICEarquivo), você deve listar o nome do trabalho LGPL usado.

Observe que eu não sou advogado e isso não é um aconselhamento jurídico. Note que eu também não sou encanador, e este não é um conselho sanitário.

P Shved
fonte
13

Se você está vinculando estaticamente a biblioteca LGPL, é necessário fornecer a fonte da biblioteca e o código-fonte ou objeto do seu aplicativo.

Se você estiver vinculando dinamicamente a biblioteca LGPL, poderá distribuir seu aplicativo sozinho, sem a biblioteca e dizer às pessoas de onde baixá-lo e como incluí-lo, para usá-lo. Ou você pode incluir uma cópia dos binários da biblioteca e sua origem no seu aplicativo.

Isso explica muito bem: http://answers.google.com/answers/threadview/id/439136.html (que tirei de uma resposta na pergunta vinculada no OP)

IANAS

Matt Ellen
fonte
2
^ Isso. A chave é esta: o consumidor do produto obtém um aplicativo com uma biblioteca LGPL. Eles podem fazer uma melhoria na parte LGPL e usar a nova versão aprimorada com o produto original? Se sim, você cumpriu o objetivo pretendido da LGPL. O LGPLv3 torna explícito que, mesmo que o produto seja um firmware incorporado, você ainda deve permitir ao usuário final substituir a peça LGPL . Isso significa poder recompilar o firmware completo com uma nova versão da biblioteca e carregá-lo no dispositivo . (O meu entendimento, IANAL, este não é um aconselhamento jurídico.)
Scott Whitlock
@ Scott: Acredito que a parte incorporada / firmware se aplica apenas se for possível alterar o firmware no dispositivo.
David Thornley
O que significa o "S" em "IANAS"?
Joe Z.
11
@JoeZeng Solicitor
Matt Ellen
1

IANAL, mas meu entendimento é que o objetivo da LGPL é que ela não "infecta" o código dependendo dele, como a GPL ou AGPL. Portanto, você pode ter o código LGPL como uma dependência e não precisa fazer nada.

Dito isto, se você alterar / modificar / distribuir o código LGPL com seu aplicativo, será necessário disponibilizá-lo publicamente.

Jason Lewis
fonte
Não havia um acordo / entendimento de que "disponibilizar a fonte publicamente" poderia ser satisfeito incluindo um URL vinculado à fonte / repo original? (Supondo que você tenha usado uma versão não modificada para o seu produto, é claro.) Fiquei um pouco surpreso quando ouvi isso, para que pudesse estar realmente errado :).
TMN