GPL può essere implicito in un'opera derivata?


13

Esistono tre progetti software: A, B e C.

A è pubblicato per chiunque ed è concesso in licenza sotto GPL.

B estende anche A, è pubblicato, ma non ha informazioni sulla licenza o è erroneamente concesso in licenza in base a LGPL. Fondamentalmente viola la licenza di A non essendo GPL. Il codice sorgente di B è ancora disponibile.

C estende B. È possibile pubblicare C sotto GPL? La motivazione sarebbe "A è GPL, anche qualsiasi derivato deve essere GPL, quindi B è GPL e C può essere anche GPL".


5
Quale parte di B si estende in C? Se sono già tutti in A, non vedo alcun problema. Se C estende parti di B che non erano in A, le cose stanno diventando interessanti.

Vorrei nominare i progetti A, B, C e contattare gli autori di B.
Basile Starynkevitch

1
Inoltre, credo che potresti almeno pubblicare C sotto GPL, poiché GPL è compatibile con LGPL. Ma IANAL
Basile Starynkevitch

2
@Tichodroma, C estende parti di B, ma B non può esistere senza A :)
Andrej,

L'autore di C ha anche scritto (una parte di) A? In caso contrario, non abbiamo idea di quale licenza gli autori di A abbiano concesso a B, quindi non abbiamo idea di poterci basare?
apertura del

Risposte:


23

Prima di tutto, B sta violando la GPL su A. Ma questo non è esattamente il tuo problema ed è irrilevante per la domanda qui (chissà, forse B ha ottenuto una licenza LGPL da A sul suo codice in modo che possa essere rilasciato sotto LGPL? ).

La domanda è "Riesci a creare un software GPL basato sul codice LGPL?" La risposta a questa è semplicemente "sì".

La LGPL è meno restrittiva della GPL (quindi perché B viola la licenza su A a meno che non siano state fatte altre disposizioni), ma consente anche di riportarla abbastanza facilmente in un progetto GPL.

Dalla licenza LGPL:

  1. Codice oggetto che incorpora materiale dai file di intestazione della libreria. Il modulo in codice oggetto di un'applicazione può incorporare materiale da un file di intestazione che fa parte della libreria. Puoi trasmettere tale codice oggetto in base alla tua scelta, a condizione che, se il materiale incorporato non è limitato a parametri numerici, layout e accessori della struttura dei dati o piccole macro, funzioni e modelli incorporati (dieci o meno righe di lunghezza), tu eseguire entrambe le seguenti operazioni:

    a) Segnalare in modo evidente ad ogni copia del codice oggetto che la Biblioteca è utilizzata in essa e che la Biblioteca e il suo utilizzo sono coperti da questa Licenza.
    b) Accompagnare il codice oggetto con una copia della GNU GPL e questo documento di licenza.

Fa parte della licenza. Puoi facilmente creare un software GPL basato sul codice LGPL.

Esistono alcune differenze di versione alle quali dovrai prestare attenzione per assicurarti che il codice sia concesso in licenza nel modo corretto, con la versione corretta della GPL.


Nel caso in cui non vengano presentate informazioni sulla licenza, non si ha il diritto di estenderle. B non avrebbe dovuto essere distribuito, ma i suoi contributi non sono concessi in licenza con una licenza open source. Questo potrebbe essere stato un progetto interno che è stato pubblicato o qualche altro evento.

Non è presentato sotto una licenza compatibile con l'estensione alla GPL. Considera la situazione in cui un'azienda, utilizzando il software GPL internamente (accettabile, non una violazione), ha erroneamente reso pubblico il proprio repository.

In questo caso, è del tutto possibile che il progetto C stia violando la stessa violazione del copyright (il materiale che B ha aggiunto che non è concesso in licenza ai sensi della GPL in quanto non avrebbe dovuto essere distribuito in primo luogo).

Non si può forzare una licenza sulla fonte di qualcun altro. È conforme alla licenza o in violazione di essa. Se è in violazione di esso, quindi come indicato nella licenza:

Non è possibile propagare o modificare un'opera coperta se non espressamente previsto dalla presente Licenza. Qualsiasi altro tentativo di propagarlo o modificarlo è nullo e terminerà automaticamente i tuoi diritti ai sensi della presente Licenza (comprese le licenze di brevetto concesse ai sensi del terzo paragrafo della sezione 11).

Una violazione della GPL non significa che il materiale sia sotto GPL, ma piuttosto che non può essere distribuito.


3
Buona risposta. Hai considerato di impegnarti nella proposta Open Source Stackexchange ?
Philipp,

5
@Andrej L'unica persona che ha il diritto di determinare come B deve essere autorizzato sono le persone che hanno scritto B. Se A è GPL, hanno l'opzione di "non distribuire" o "licenza come GPL". Che sia stato erroneamente distribuito, non significa che sia concesso in licenza come GPL.

6
Inoltre, bella sorpresa su "non sai se B ha ottenuto una licenza diversa dagli autori di A;" è possibile che B non stia violando affatto il copyright di A, perché non sai che B sta usando A sotto GPL (gli autori di A possono rilasciare tutte le licenze di tutti i tipi che vogliono e possono, ad esempio, offrirlo sotto GPL e vendi una licenza per permetterti di usarlo nel codice proprietario).
cpast

1
Nel caso in cui l'autore di B riceva A in base alla licenza GPL, il fatto della distribuzione non impone GPL a B. Ma ci sono licenze che lo farebbero? Quindi una persona può pubblicare il suo software ed essere sicuro che chiunque avrà accesso a tutti i derivati ​​pubblicati in futuro? E consentire a chiunque di forzare la licenza sui derivati. (Posso fare una nuova domanda per questa :))
Andrej,

2
In quarto luogo, un EULA è molto, molto, molto più giuridicamente discutibile della GPL. La GPL non impone restrizioni; qualsiasi restrizione è in realtà dalla legge sul diritto d'autore (ciò che la GPL fa è rinunciare a tali restrizioni in alcuni casi). Ecco perché la GPL funziona così bene - non esiste una cosa come una "violazione della GPL", ci sono solo violazioni del copyright . Con un EULA, devi convincere le persone ad accettare di limitarsi; questo significa che sei nel regno del diritto contrattuale, che è molto oscuro e pieno di possibili difese, come se qualcuno non fosse d'accordo (non devi accettare il copyright).
Pas

4

Ci sono detentori del copyright: c'è un copyright sulle opere create da A, c'è un copyright sulle aggiunte di B e c'è un copyright su ogni modifica che C ha fatto. C deve verificare se è autorizzato a utilizzare il software su cui A e B detengono i diritti d'autore.

A è stato concesso in licenza ai sensi della GPL. Sono abbastanza sicuro che la GPL ti dia il permesso di usare il lavoro di A secondo i termini GPL, anche se li hai ricevuti da B che li ha autorizzati in modo errato. Potrebbero esserci problemi pratici: ad esempio, devi essere in grado di fornire il codice sorgente. Se hai ricevuto il software senza codice sorgente, non hai modo di pubblicarlo secondo i termini di GPL.

B era autorizzato con un'altra licenza. B avrebbe dovuto avere la licenza GPL, ma non lo era. Se la licenza di B ti dà più diritti della GPL, in realtà non hai nessuno di quei diritti per il codice di A - B non può darti diritti aggiuntivi sul codice di A. Puoi usare il codice A in base ai termini GPL perché A lo ha permesso e il codice aggiuntivo di B sotto la licenza di B.

Se B ha rilasciato il proprio codice con una licenza più rigorosa di GPL, allora molto probabilmente B sta commettendo una violazione del copyright. Non è possibile utilizzare il codice B sotto la licenza GPL. Questo è spesso confuso: GPL non può costringere B a fare nulla. Dà a B solo la scelta: pubblicare in questo modo ed è legalmente valido o pubblicare in un altro modo ed è illegale. B ha il diritto di fare qualcosa di illegale e subirne le conseguenze (essere citato in giudizio per violazione del copyright). Non hai alcun diritto sul codice di B che B non ti ha dato.


3

Tecnicamente, è possibile estendere una libreria GPL con codice che non è coperto dalla licenza GPL. Il problema è che quando distribuisci il lavoro derivato che hai creato, devi osservare tutti i requisiti che la GPL ti pone.

Nella tua situazione, ciò significa che è possibile avere la libreria A sotto la GPL e il nuovo codice nella libreria B sotto la LGPL. Il lavoro combinato (biblioteca B) è effettivamente distribuito sotto la licenza GPL e può essere distribuito come tale perché la licenza LGPL è compatibile con la licenza GPL (è possibile utilizzare il codice delle licenze LGPL in un progetto con licenza GPL).
In quella situazione, è perfettamente bene avere il nuovo codice nella libreria C sotto la GPL, con il lavoro risultante anche sotto la GPL.


Questo funziona solo perché le parti LGPLed di B possono essere usate con la GPL A sotto la GPL. Se il nuovo codice era soggetto a una licenza in conflitto con la GPL (ad es. Tutti i diritti riservati), non si può presumere che B nel suo insieme sia stato effettivamente distribuito sotto la GPL.
cpast,

1
@cpast: hai ragione, ho dimenticato di dire che la LGPL è compatibile con la GPL. Se le licenze non fossero compatibili, non sarebbe consentito distribuire il risultato.
Bart van Ingen Schenau,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.