Ok, antes que todo mundo grite sobre perguntas duplicadas, sim, eu já vi várias perguntas como essa aqui. Mas ninguém responde à pergunta.
Se eu vincular uma biblioteca GPL-ed sem modificar essa biblioteca, preciso liberar meu código-fonte?
De acordo com esta pergunta , a resposta é sim!
Mas esta resposta não é satisfatória para mim. A resposta basicamente diz que não posso usar o código GPL de forma alguma sem tornar meu código de código aberto.
Mas se o anterior for verdadeiro, isso indicaria que nenhuma pessoa ou organização jamais poderia lançar qualquer software proprietário no Linux. O que deve estar errado. Simplesmente porque, para que qualquer aplicativo faça algo útil, abra arquivos, grave no console, crie conexões TCP, o aplicativo deve estar vinculado ao libc
qual é editado pela GPL.
Portanto, minha pergunta é a seguinte: se a GPL declara, como todas as respostas anteriores do site dizem que um programa vinculado a outro programa da GPL deve ser a própria GPL, como é possível criar / liberar / vender qualquer aplicativo proprietário em tudo o que é executado no Linux? Como eu descrevi acima, esse aplicativo deve ser apreciado no código GPL apenas para ser executado no Linux.
Um exemplo mais prático diz que eu vinculo a uma biblioteca compartilhada que é GPL-ed em um aplicativo não-GPL, isso forçaria o aplicativo não-GPL a se tornar GPL-ed? Mais especificamente, se eu usar uma biblioteca GPL sem modificá-la e depois distribuí-la como um .so
ou .dll
, isso exigiria que meu aplicativo fosse de código aberto?
Respostas:
Se você vincular a uma biblioteca GPL, criou um trabalho derivado e seu código deverá ser GPL - isso é diferente do código L GPL, que permite especificamente a vinculação dinâmica de códigos licenciados de maneira diferente. As bibliotecas do sistema, incluindo libc, são todas LGPL.
Há também uma isenção especial para os cabeçalhos do kernel Linux e libgcc (a biblioteca chamada implicitamente pelo compilador).
fonte
No caso geral, você está certo ao não conseguir vincular a uma biblioteca GPL, distribuir seu código e depois não liberá-lo como GPL.
No entanto, existe a Exceção de Biblioteca do Sistema, que é como as pessoas se vinculam às bibliotecas do Linux e ainda lançam seu produto sob licenças não GPL.
Outra exceção é quando as duas licenças são compatíveis entre si. Confira a página de licença compatível com a FSF para ler mais.
Finalmente, os autores da biblioteca GPL'd podem criar exceções específicas, como para uso não comercial ou hobby.
Infelizmente, existem muitas potencialidades para se ter uma regra rígida e rápida. Sem mais detalhes em sua pergunta, sua resposta é "provavelmente não pode, mas talvez você possa".
fonte
A resposta curta é que ninguém realmente sabe. (Esta discussão é sobre GPL, não LGPL.)
A GPL possui uma linguagem vaga sobre "Obras Derivadas", que diferentes pessoas interpretam de maneiras diferentes. Parece haver consenso de que a vinculação estática viola, mas a chamada via interrupção do sistema (por exemplo, para o Linux Kernel) não. O último baseia-se principalmente no fato de empresas como a Oracle enviarem Linux e não terem sido processadas - isso não está claro na licença.
A vinculação dinâmica não é clara, provavelmente 70/30 diz que viola. Chamar um programa usando pipes ou chamadas de procedimento remoto, provavelmente 30/70 não viola, mesmo que isso seja essencialmente a mesma coisa. Chamar via COM, ou usando um Java Jar, não é totalmente claro.
Basicamente, se houver alguma dúvida e você não gostar de advogados, fique longe da GPL.
fonte