A GPL pode estar implícita em um trabalho derivado?

13

Existem três projetos de software: A, B e C.

A é publicado para qualquer pessoa e está licenciado sob a GPL.

B estende A, também é publicado, mas não possui informações de licença ou é licenciado por engano sob LGPL. Basicamente, viola a licença de A por não ser GPL. O código fonte de B ainda está disponível.

C estende B. C pode ser publicado sob a GPL? A motivação seria "A é GPL, qualquer derivado também deve ser GPL, então B é GPL e C também pode ser".

Andrej
fonte
5
Qual parte de B está estendendo C? Se eles já estão todos em A, não vejo problema. Se C estende partes de B que não estão em A, as coisas estão ficando interessantes.
Eu
nomearia os
1
Além disso, acredito que você poderia publicar pelo menos C na GPL, já que a GPL é compatível com LGPL. Mas
IANAL
2
@Tichodroma, C estende-se partes de B, mas B não pode existir sem um :)
Andrej
O autor de C também escreveu (parte de) A? Caso contrário, não temos idéia de qual licença os autores de A deram a B, então não temos idéia se podemos construir sobre ela?
dcorking

Respostas:

23

Primeiro, B viola a GPL em A. Mas isso não é exatamente sua preocupação e é irrelevante para a pergunta aqui (quem sabe, talvez B tenha uma licença LGPL de A em seu código para que ela possa ser liberada sob LGPL? )

A pergunta é "Você pode criar um software GPL com base no código LGPL?" A resposta para isso é simplesmente "sim".

A LGPL é menos restritiva que a GPL (por isso, B viola a licença de A, a menos que outras disposições tenham sido tomadas), mas também permite que ela seja trazida de volta para um projeto GPL com bastante facilidade.

A partir da licença LGPL:

  1. Código de objeto que incorpora material dos arquivos de cabeçalho da biblioteca. O formulário de código de objeto de um Aplicativo pode incorporar material de um arquivo de cabeçalho que faz parte da Biblioteca. Você pode transmitir esse código de objeto nos termos de sua escolha, desde que, se o material incorporado não estiver limitado a parâmetros numéricos, layouts e acessadores de estrutura de dados ou macros pequenas, funções e modelos em linha (dez ou menos linhas de comprimento), faça o seguinte:

    a) Notifique com destaque a cada cópia do código do objeto que a Biblioteca é usada nela e que a Biblioteca e seu uso são cobertos por esta Licença.
    b) Acompanhe o código do objeto com uma cópia da GNU GPL e deste documento de licença.

É parte da licença. Você pode criar facilmente um software GPL com base no código LGPL.

Há algumas diferenças de versão que você precisará prestar atenção para garantir que o código seja licenciado da maneira correta, na versão correta da GPL.


No caso de não haver informações de licença apresentadas, você não tem o direito de estendê-las. B não deveria ter sido distribuído, mas suas contribuições não são licenciadas sob uma licença de código aberto. Pode ter sido um projeto interno que foi publicado ou algum outro evento.

Não é apresentado sob uma licença compatível com a extensão com a GPL. Considere a situação em que uma empresa, usando o software GPL internamente (aceitável - não uma violação), tornou seu repositório público por engano.

Nesse caso, é bem possível que o projeto C esteja violando a própria violação de direitos autorais (o material que B adicionou que não está licenciado sob a GPL, pois não deveria ter sido distribuído em primeiro lugar).

Um não pode forçar uma licença na fonte de outra pessoa. Está em conformidade com a licença ou em violação da mesma. Se isso estiver violando, então, como especificado na licença:

Você não pode propagar ou modificar um trabalho coberto, exceto conforme expressamente fornecido sob esta Licença. Qualquer tentativa de propagação ou modificação de qualquer outra forma é nula e terminará automaticamente seus direitos sob esta Licença (incluindo quaisquer licenças de patente concedidas sob o terceiro parágrafo da seção 11).

Uma violação da GPL não significa que o material esteja sob GPL, mas que não pode ser distribuído.


fonte
3
Boa resposta. Você considerou se comprometer com a proposta Open Source Stackexchange ?
Philipp
5
@Andrej A única pessoa que tem o direito de determinar como B deve ser licenciado são as pessoas que escreveram B. Se A for GPL, elas têm a opção de "não distribuir" ou "licenciar como GPL". O fato de ter sido distribuído por engano, não significa que está licenciado como GPL.
6
Além disso, um bom argumento para "você não sabe se B obteve uma licença diferente dos autores de A"; é possível que B não esteja violando os direitos autorais de A, porque você não sabe que B está usando A sob a GPL (os autores de A podem emitir quantas licenças de quantos tipos quiserem e podem, por exemplo, oferecê-la sob a GPL e venda uma licença que permita usá-lo em código proprietário).
cpast
1
No caso em que o autor de B recebe A sob licença GPL, o fato da distribuição não força a GPL em B. Mas existem licenças que fariam isso? Para que uma pessoa possa publicar seu software e garantir que alguém tenha acesso a todos os futuros derivados publicados? E permita que qualquer pessoa force a licença em derivativos. (Eu posso começar uma nova pergunta para este :))
Andrej
2
Quarto, um EULA é muito, muito, muito mais questionável legalmente do que a GPL. A GPL não impõe restrições; qualquer restrição é realmente da lei estatutária de direitos autorais (o que a GPL faz é renunciar a essas restrições em alguns casos). É por isso que a GPL funciona tão bem - não existe uma "violação da GPL", existem apenas violações de direitos autorais . Com um EULA, você precisa convencer as pessoas a se restringirem; isso significa que você está no campo do direito contratual, que é muito sombrio e cheio de possíveis defesas, como se alguém não concordasse (você não precisa concordar com os direitos autorais).
Cpast 04/04/19
4

Existem detentores de direitos autorais: existem direitos autorais sobre as obras criadas por A, existem direitos autorais sobre as adições de B e existem direitos autorais sobre quaisquer alterações feitas por C. C deve verificar se ele tem permissão para usar o software no qual A e B possuem direitos autorais.

A foi licenciado sob a GPL. Tenho certeza de que a GPL lhe dá permissão para usar o trabalho de A nos termos da GPL, mesmo se você os recebeu de B que os licenciou incorretamente. Pode haver problemas práticos: Por exemplo, você deve poder fornecer o código-fonte. Se você recebeu o software sem o código-fonte, não tem como publicá-lo nos termos da GPL.

B foi licenciado sob outra licença. B deveria ter sido licenciado sob a GPL, mas não era. Se a licença de B lhe conceder mais direitos que a GPL, você na verdade não possui nenhum desses direitos para o código de A - B não pode conceder direitos adicionais ao código de A. Você pode usar o código de A nos termos da GPL porque A permitiu, e o código adicional de B sob a licença de B.

Se B lançou seu código sob uma licença mais rigorosa que a GPL, é provável que B cometa violação de direitos autorais. Você não pode usar o código de B sob a licença GPL. Isso geralmente é confuso: a GPL não pode forçar B a fazer nada. Ele só oferece a B a opção: publique dessa maneira, e é legalmente legal, ou publique de outra forma, e é ilegal. B tem o direito de fazer algo ilegal e sofrer as consequências (sendo processado por violação de direitos autorais). Você não tem nenhum direito ao código de B que B não lhe deu.

gnasher729
fonte
3

Tecnicamente, é possível estender uma biblioteca GPL com código que não é coberto pela licença GPL. O problema é que, ao distribuir o trabalho derivado que você criou, você deve observar todos os requisitos que a GPL coloca sobre você.

Na sua situação, isso significa que é possível ter a biblioteca A na GPL e o novo código na biblioteca B na LGPL. O trabalho combinado (biblioteca B) é efetivamente distribuído sob a licença GPL e pode ser distribuído como tal porque a licença LGPL é compatível com a licença GPL (você pode usar o código de licenças LGPL em um projeto licenciado GPL).
Nessa situação, é perfeitamente bom ter o novo código na biblioteca C sob a GPL, com o trabalho resultante também na GPL.

Bart van Ingen Schenau
fonte
Isso funciona apenas porque as partes LGPLed de B podem ser usadas com a GPLed A sob a GPL. Se o novo código estava sob alguma licença em conflito com a GPL (por exemplo, todos os direitos reservados), você não pode assumir que B como um todo foi efetivamente distribuído sob a GPL.
Cpast 2/05
1
@ cpast: Você está certo, eu esqueci de mencionar que a LGPL é compatível com a GPL. Se as licenças fossem incompatíveis, você não teria permissão para distribuir o resultado.
Bart van Ingen Schenau