código não GPL vinculação com biblioteca proprietária dependem que é criado pela primeira vez? [fechadas]

StackOverflow https://stackoverflow.com/questions/1854843

Pergunta

Microsoft cria suas janelas e biblioteca MFC DLL, etc. Uma fonte aberta desenvolvem escrever uma nova aplicação MFC e liberar o código-fonte como GPL. O aplicativo tem a ligação com o MS DLL / bibliotecas para rodar no Windows, mas eu não acho que alguém pode argumentar que agora temos o direito de forçar GPL da Microsoft sua DLL.

Isso significa que a licença GPL é realmente depende de qual é "criado" pela primeira vez? Se biblioteca proprietária é criado primeiro (como o Windows DLLs) que é publicado sem vinculação e qualquer código GPL e mais tarde um programa GPL está ligada com ele, então o programa GPL não pode converter a biblioteca proprietária em GPL embora o código proprietário é "ligado" com o código GPL.

Se este for o caso, lata empresa como NVidia ou RealNetworks fazer o seguinte? Vamos supor que eles gostam de manter a mídia HDDecoding proprietárias decodificação biblioteca motor privada, mas eles também querem "alavancagem" o código opensource GPL para mostrar seu hardware.

  1. Eles criam uma biblioteca proprietária para fazer media decodificação e liberar um código de exemplo.
  2. Alguém (desenvolvimento opensource) cria "plug-in" que está ligado a esta biblioteca proprietária para o código GPL como o XBMC, Mplayer ou VLC.
  3. Será que eles podem argumentar que, uma vez que criou a biblioteca proprietária primeiro (como MS criar todas as DLLs primeiros), programas GPL que apontam com o seu código proprietário não Covert-los em código GPL.

Uma lata em teoria argumentam que o desenvolvedor opensource que cria o arquivo vlc.exe GPL que apontam com os meios de comunicação de propriedade NVidia decodificador biblioteca está a violar a licença GPL.

Isso quer dizer que todos os programas GPL em execução no Windows, como VLC, git, cygwin, etc são todos violar a licença GPL, porque eles definitivamente necessidade de ligação com os proprietários da Microsoft do Windows Bibliotecas para executar.

Caso 2: errado do que com este:

NVidia pode criar uma nova biblioteca de Hardware abstração que esconde as últimas funções gráficas. Eles também criar um driver FreeBSD com esta biblioteca e liberar o código-fonte do driver BSD, mas não o código-fonte da biblioteca.

Alguém (desenvolvedor Linux) pode implementar o driver Linux que ligações com esta biblioteca para criar um driver de gráficos NVidia para Linux. Mas desde que NVidia não fazer isso, eles podem manter a fonte de biblioteca "escondido", enquanto permitir que o "suporte Linux".

Ele certamente viola o espírito da GPL.

Será que isso significa que a execução de qualquer exe criado com fonte GPL no Windows / Mac / iPhone / PSP3 também viola o espírito do GPL?

Foi útil?

Solução

A partir da GNU GPL FAQ:

Posso aplicar o GPL, ao escrever uma plug-in para um programa não-livre?

Se o programa usa fork e exec para invocação plug-ins, em seguida, os encaixes são programas separados, então a licença para o programa principal não faz exigências para eles. Então você pode usar a GPL para um plug-in, e não há especial requisitos.

Se as ligações programa dinamicamente plug-ins, e eles fazem chamadas de função uns com os outros e compartilhar dados estruturas, acreditamos que eles formam um programa único, que deve ser tratada como uma extensão de ambos o principal programa e os plug-ins. Isso significa que a combinação de GPL-coberto plug-in com o programa principal não-livre violaria a GPL. No entanto, você pode resolver esse problema legal adicionando uma exceção para o seu plug-in de licença, dando permissão para ligá-lo com o programa principal não-livre.

Veja também a questão Estou escrevendo software livre que usa um não-livre biblioteca .

E:

Que questões legais surgem se eu uso bibliotecas GPL-incompatíveis com GPL software?

Ambas as versões do GPL ter um exceção a sua copyleft, comumente chamado a exceção biblioteca do sistema. Se as bibliotecas GPL-incompatíveis você quer usar preenchem os critérios para a biblioteca do sistema, então você não tem que fazer nada especial para usá-los; a exigência de distribuição do código fonte para todo o programa não inclui essas bibliotecas, mesmo se você distribuir um executável ligado contendo-los.

Os critérios para o que conta como um "Biblioteca de sistema" variam entre versões diferentes do GPL. GPLv3 define explicitamente "Bibliotecas de Sistema" na seção 1, para excluí-lo da definição de "Fonte Correspondente." GPLv2 diz o seguinte, perto do fim da seção 3:

No entanto, como uma exceção especial, o código fonte não necessidade distribuída incluir qualquer coisa que é normalmente distribuído (em qualquer fonte ou forma binária) com os componentes principais (Compilador, kernel, e assim por diante) do sistema operacional no qual o executável funciona, a menos que o componente si acompanhe o executável.

...

Outras dicas

Você tem um mal-entendido fundamental da maneira em que as restrições GPL entra vigor. Seu primeiro exemplo é coberto pela "isenção biblioteca do sistema." - mas mesmo se não fosse, não teria o efeito que você postular

A GPL diz que se você distribuir o programa GPL, ou um seu derivado, você também tem que fornecer a fonte para o programa ou derivado sob GPL equivalente termos (para as pessoas que você distribuiu o programa / derivado a) .

Isto significa que se eu distribuir o seu programa de GPL ligada com alguns dos códigos da Microsoft, eu tenho que fornecer a fonte de toda a bola de cera, ou o risco de ser processado por você para quebrar seus direitos autorais. Note-se que enquanto a Microsoft é um terceiro, este não coloca quaisquer restrições à -los (é claro!). Se eu não tiver acesso ao código da Microsoft, que é provável, então eu não posso distribuir esse trabalho derivado sem ser em violação de sua licença.

IANAL, mas a ordem da criação, não importa. Se os que ligam dois binários seria uma violação da GPL, então não é permitido pelo GPL, independentemente de qual foi criado.

Caso 1 é dirigida pela excepção biblioteca do sistema, como Michael Burr citado. Note que não é dependente do tempo - se não fosse para a exceção biblioteca do sistema, seria tanto de uma violação GPL para executar código GPL escrito em 2003 sobre o Windows 98 (que foi escrito antes do código GPL) como seria para executá-lo no Vista (que foi escrito após o código GPL).

Eu concordo que caso 2 viola o espírito da GPL, mas, como o termo é usado pelo GPL, que NVidia driver não está "ligado" com o kernel do Linux porque ele é carregado como um módulo. Você não seria capaz de distribuir um kernel Linux com o binário não-Free NVidia estaticamente ligado para ele, mas quem distribui kernels estaticamente ligados nos dias de hoje, afinal?

Você cannnot mudar licenças outros programas ligando para eles, nunca mais. Se sua licença não permite links para programas de código não-abertos você deve mudar a sua licença ou parada ligando para esses programas. A situação seria diferente se os outros programas ligados ao seu. Nesse caso, eles devem cahnge sua licença ou deixar de ligar ao seu programa.

O que significa, simplesmente, é que você não pode aplicar a GPL em cima do código ou bibliotecas que não são compatível com a GPL e distribuir um trabalho combinado compilado, a menos que você aplicar um ligando exceção .

A exceção ligando fornece uma maneira para que você possa distribuir executáveis ??compilados contendo os bits não-livres, enquanto nenhuma permissão especial é necessária para distribuir o programa em formato fonte.

Esta exceção, é claro, depende das bibliotecas não-livres que lhe permite distribuir programas que estão ligadas contra ela (especialmente estaticamente).

Assim, para responder a sua primeira pergunta, não .. isso não é um 'frango ou ovo' cenário. O que eu recomendo é quando confrontado com a possibilidade de ter que escrever uma exceção, o seu provavelmente melhor apenas para escolher uma licença com menos restrições, como a licença BSD 3 cláusula Apache ou.

Em segundo lugar, não, você não pode simplesmente aplicar a GPL ao seu código para fins de alterar a licença para algo que acontecer de ligação contra. Novamente, voltamos para a exceção que liga, que é sua responsabilidade fornecer.

O spririt do GPL vive em um mundo onde não há tal coisa como um software proprietário. RMS declarou isso como o objetivo final em muitas ocasiões. O que resta são práticos que deve ser abordada por pessoas que querem distribuir software livre em plataformas não-livres.

Este é um dos maiores motivos que Linux (como no Kernel) permanece apenas GPL v2.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top