Restrições de licenciamento de código aberto GPL e LGPL [fechado]

107

Estou tendo problemas para entender as permissões de uso do código aberto. Eu li em algum lugar que a GPL ou LGPL impõe que o software que usa software GPL também deve ser lançado em código aberto. Quero criar um aplicativo que usa alguma biblioteca de reconhecimento de imagem de código aberto. Posso vender este aplicativo ou ele precisa ser de código aberto?

Obrigado!

rsinha
fonte

Respostas:

80

A LGPL permite que você use e distribua o software de código aberto com o seu aplicativo sem liberar o código-fonte do seu aplicativo.

A GPL exige que você libere o código-fonte do seu aplicativo se você escolher usar e distribuir o software de código-fonte aberto licenciado pela GPL com o seu aplicativo. Em outras palavras, seu aplicativo também deve ser licenciado sob a GPL.

Robert Harvey
fonte
14
Observe que a LGPL afirma que a biblioteca usada deve ser substituível. Portanto, a vinculação estática não é possível.
Dykam
1
Portanto, uma "DLL" (Dynamic Link Library) seria legal, correto?
Robert Harvey
Somente se você também fornecer o código-fonte para essa DLL, bem como os arquivos de cabeçalho ou documentação necessários para poder interagir com o resto do aplicativo, alguém deve querer modificar fortemente ou reescrever do zero, DLL.
thomasrutter
48
  • GPL

    Outros desenvolvedores podem pegar emprestado e modificar o código e redistribuí-lo como parte de seus próprios projetos, apenas se todo o projeto também estiver licenciado sob a GPL.

    Isso evita que o código seja usado em software proprietário.

  • LGPL

    Outros desenvolvedores podem pegar emprestado e modificar o código e redistribuí-lo como parte de seu próprio projeto, desde que a parte usada sob a LGPL seja licenciada novamente sob a LGPL. Outras partes do projeto são permitidas com outras licenças.

    Isso permite que o código seja usado em software proprietário.

A LGPL tem uma série de condições adicionais que precisam ser atendidas a fim de ser capaz de distribuí-la em um projeto com outra licença. Por exemplo, deve ser possível para qualquerusuário do software finalizado para modificar, recompilar ou substituir a parte do software que está licenciada sob a LGPL e usar este código modificado com o mesmo software. Se você estiver publicando software proprietário contendo algum código LGPL, uma maneira de satisfazer este requisito é colocar o código LGPL em uma biblioteca separada dinamicamente vinculada e distribuir com seu software os arquivos de cabeçalho e documentação necessários para recompilar o LGPL parte de tal forma que ainda possa ser vinculada e usada com o software conforme fornecido. Não é aceitável tomar medidas para evitar a modificação do código LGPL, como ofuscar o próprio código ou a API ou arquivos de cabeçalho.

Observe que a LGPL é compatível com a GPL: você pode optar por "atualizar" o código para GPL e incorporá-lo em um projeto totalmente licenciado pela GPL, conforme estabelecido em meu primeiro ponto, se desejar. No entanto, você não pode ir por outro caminho e licenciar novamente o código licenciado GPL como LGPL.

Thomasrutter
fonte
30

IANAL, mas os conceitos são bastante diretos.

Primeiro, você e seu advogado devem ler as licenças GPL e LGPL . Em segundo lugar, você deve ler o FAQ da GPL . Pelo que eu entendi, você pode pensar em usar bibliotecas GPL / LGPL desta forma:

  • Se você se vincular dinâmica ou estaticamente a uma biblioteca GPL ou LGPL, você criou um trabalho derivado.
  • Se você usa uma biblioteca GPL e se vincula a essa biblioteca, seu software deve ser lançado com uma licença compatível .
  • Se você usa uma biblioteca LGPL e se vincula dinamicamente a essa biblioteca, seu software não precisa ser lançado com uma licença compatível, mas você ainda deve cumprir a LGPL.
  • Se você usa uma biblioteca LGPL e se vincula estaticamente a essa biblioteca, o software deve ser lançado com uma licença compatível.
  • As licenças GPL / LGPL significam "livre" como em "liberdade de expressão", não "cerveja grátis" . Você pode criar uma obra derivada e vendê-la por grandes quantias em dinheiro, mas deve cumprir a GPL / LGPL.
Jared Oberhaus
fonte
29
"Primeiro, você e seu advogado devem ler as licenças GPL e LGPL." - mate-me agora
d512
10
"direto". Na verdade, é tão simples que você precisa contratar um advogado só para ver se consegue usar um pouco de código. É por isso que os desenvolvedores nunca devem usar licenças GPL.
Womble
9

Se você recortar e colar ou vincular ao código GPL em seu aplicativo, seu aplicativo deve ser licenciado sob GPL e você deve liberar o código.

No entanto, você ainda pode vender seu aplicativo e, afaik, a única obrigação é que você libere o código-fonte para seus clientes.

Se a biblioteca que você vincular for Lesser Gnu Public License, também conhecida como LGPL, você não precisará liberar o código do seu próprio aplicativo, mas ainda será necessário liberar todas as modificações caso tenha modificado o código lgpl.

rasjani
fonte
"libere o código-fonte para seus clientes" - realmente? apenas para eles? Achei que o src tem que disponibilizar publicamente?
relascope
Não sou falante nativo de inglês, nem advogado. gnu.org/licenses/gpl-faq.html#WhatDoesWrittenOfferValid afirma que a maioria fornece a fonte para qualquer pessoa que tenha acesso ao binário. Isso não diz que qualquer pessoa pode solicitar a fonte, mas qualquer pessoa que tenha recebido o binário, diretamente de você ou de seus clientes diretos.
rasjani
afirma diretamente, apenas para os clientes ... "Mas se você lançar a versão modificada ao público de alguma forma, a GPL exige que você disponibilize o código-fonte modificado para os usuários do programa, sob a GPL."
relascópio
7

A GPL não proíbe a venda de software. No entanto, você deve disponibilizar as fontes para o software.

A questão do uso é um pouco mais complicada. GNU / Linux é lançado sob a GPL. Nada o proíbe de escrever software que rode no Linux, independentemente da licença do seu software. No entanto, você não pode distribuir o Linux junto com seu software. Isso costuma ser um problema com bibliotecas que precisam fazer parte de um programa. É para isso que serve a licença LGPL. Você pode compilar um programa ac escrito com gcc (portanto, usando bibliotecas de rotina de tempo de execução licenciadas LGPL do gcc) e ainda liberar o software sem as restrições da GPL.

Acho que essa é a essência geral disso. No entanto, isso não é de forma alguma um conselho jurídico. Para obter aconselhamento jurídico, você deve contratar um advogado credenciado que possa fornecer aconselhamento jurídico adequado às suas circunstâncias específicas.

Espero que isto ajude.

txwikinger
fonte
3

A distinção GPL vs. LGPL determina se você precisa / não precisa liberar o código-fonte do seu aplicativo para qualquer pessoa que tenha uma cópia do binário. De qualquer forma, você ainda pode vender o aplicativo.

Trovador
fonte