La GPL può essere implicita in un'opera derivata?

13

Ci sono tre progetti software: A, B e C.

A è pubblicato su chiunque e ha licenza GPL.

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

C estende B. Can C può essere pubblicato sotto GPL? La motivazione sarebbe "A is GPL, qualsiasi derivata deve essere GPL, quindi B è GPL e C può essere anche GPL".

    
posta Andrej 02.05.2015 - 15:36
fonte

3 risposte

23

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

La domanda è "Puoi costruire un pezzo di software GPL basato sul codice LGPL?" La risposta a questo è 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 in un progetto GPL abbastanza facilmente.

Dalla licenza LGPL:

  1. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following:

    a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.
    b) Accompany the object code with a copy of the GNU GPL and this license document.

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

Ci sono alcune differenze di versione che dovrai prestare attenzione per assicurarsi che il codice sia concesso in licenza nel modo corretto, con la versione corretta della GPL.

Nel caso in cui non ci siano informazioni sulla licenza presentate, non ha il diritto di estenderle. B non dovrebbe essere stato distribuito, ma i suoi contributi sono non sotto licenza open source. Potrebbe trattarsi di un progetto interno pubblicato o di un altro evento.

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

In questo caso, è del tutto possibile che il progetto C stia violando la violazione del copyright stesso (il materiale che B ha aggiunto che non è autorizzato sotto GPL in quanto non avrebbe dovuto essere distribuito in primo luogo).

Uno non può forzare una licenza sulla fonte di qualcun altro. È in conformità con la licenza o in violazione di essa. Se è in violazione di esso, quindi come spiegato nella licenza:

You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).

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

    
risposta data 02.05.2015 - 16:59
fonte
4

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

A era autorizzato sotto licenza GPL. Sono abbastanza sicuro che GPL ti dà il permesso di utilizzare il lavoro di A sotto 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 è stato concesso in licenza con qualche altra licenza. B dovrebbe essere stato concesso sotto licenza GPL, ma non lo è stato. Se la licenza di B ti dà più diritti rispetto alla GPL, in realtà non hai nessuno di questi diritti per il codice di A - B non può darti ulteriori diritti sul codice di A. Puoi usare il codice di A sotto i termini GPL perché A lo ha permesso e il codice addizionale di B sotto la licenza di B.

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

    
risposta data 02.05.2015 - 18:09
fonte
3

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

Nella tua situazione, questo significa che è possibile avere la libreria A sotto la GPL e il nuovo codice nella libreria B sotto la LGPL. Il lavoro combinato (libreria B) è distribuito in modo efficace sotto la licenza GPL e può essere distribuito in quanto tale, poiché la licenza LGPL è compatibile con la licenza GPL (è possibile utilizzare il codice di licenze LGPL in un progetto con licenza GPL).
In questa situazione, è perfettamente bene avere il nuovo codice nella libreria C sotto la GPL, con il lavoro risultante anche sotto la GPL.

    
risposta data 02.05.2015 - 17:03
fonte

Leggi altre domande sui tag