In che modo le licenze compatibili con GPL come MIT possono essere utilizzate nei programmi GPL senza essere soggette alla disposizione di copyleft?


19

Attualmente sto esaminando le possibilità e le implicazioni del collegamento a una libreria GPL per un'applicazione in un contesto commerciale.

Da quanto ho capito della GPL, fintanto che l'applicazione viene utilizzata internamente non vi è alcun obbligo di rilasciare il suo codice (anche se una copia viene spostata in una controllata controllata).

Quello che non capisco è il seguente punto dalle FAQ:

Se una libreria viene rilasciata sotto licenza GPL (non LGPL), significa che qualsiasi software che la utilizza deve essere sotto licenza GPL o compatibile GPL ? Sì, perché il software attualmente in esecuzione include la libreria.

Se do un'occhiata alle licenze compatibili con GPL , alcune di esse (come quella boost) non sembrano imporre il rilascio del codice. Usarlo creerebbe una situazione in cui potresti essere conforme alla licenza GPL senza dover rispettare il suo obbligo di rendere pubblico il tuo codice (che non sembra molto credibile).

(NB: ci sono componenti in Adobe Photoshop con licenza boost e non credo che il codice sia disponibile su richiesta)

La spiegazione più ragionevole sarebbe che mi manca qualcosa ... Potresti dirmi dove ho fatto un errore?


1
+1 per la spiegazione solo perché mai dovresti mai usare quella parola in una frase
Jimmy Hoffa,

@JimmyHoffa +1 per il tuo amore per la lingua.
Racheet,

1
Dove hai detto che Boost era GPL? Ha una sua licenza. La regola standard è che GPLv2 non si mescola con software proprietario. C'è una domanda a settimana su questo sito su come aggirare questo. Dovremmo vietare tutte le domande GPL.
Andrew T Finnell,

Vedo che ha detto che Boost era compatibile con GPL. Il resto del mio commento è valido.
Andrew T Finnell,

Risposte:


26

In che modo le licenze compatibili con GPL come MIT possono essere utilizzate nei programmi GPL senza essere soggette alla disposizione di copyleft?

Risposta breve: non lo sono. Diventeranno soggetti al copyleft.

Risposta lunga:

L' articolo di Wikipedia sulla compatibilità delle licenze contiene una buona sezione sulla compatibilità GPL :

Molte delle più comuni licenze di software libero, come la licenza MIT / X originale, ... sono "compatibili GPL". Cioè, il loro codice può essere combinato con un programma nell'ambito della GPL senza conflitti ( la nuova combinazione avrebbe la GPL applicata all'intero ).

[enfasi aggiunta]

E più esplicitamente dalle FAQ di FSF sulla compatibilità GPL :

Significa che l'altra licenza e la GNU GPL sono compatibili; puoi combinare il codice rilasciato sotto l'altra licenza con il codice rilasciato sotto GNU GPL in un programma più grande.

E solo per l'edificazione, ecco i commenti di FSF su varie licenze

Commento di FSF sulla licenza boost

Questa è una licenza software gratuita, permissiva e non copyleft, compatibile con GNU GPL.

Ciò significa che qualsiasi cosa sotto licenza Boost viene facilmente inclusa nella GPL.

Dove diventa difficile

Diciamo che abbiamo un progetto Fooconcesso in licenza sotto Boost e un progetto Barconcesso in licenza sotto GPL e che vuole usare Foo.

Bar+Fooè consentito poiché le licenze sono compatibili e il rilascio di Bar+Foodeve essere GPL come BarGPL. Foo, da solo e senza Bar o Bar+Foo , è ancora disponibile con la licenza Boost. Detto in altro modo, Bar+Foonon ha alcun impatto sulla licenza su Foose stesso.

La licenza risultante della combinazione di progetti è un evento di recitazione solo per la combinazione. E ' non è un evento retroattiva.

Quindi, se qualcun altro vuole prendere Fooe fare qualcos'altro con esso, sono ancora liberi di farlo senza la disposizione copyleft della GPL. Tuttavia, se accettano Bar+Foo, eliminano Bare usano solo +Fooallora sono ancora vincolati dai termini della GPL poiché Bar+Fooera GPL.

L'altra tua domanda:

Da quanto ho capito della GPL, fintanto che l'applicazione viene utilizzata internamente non vi è alcun obbligo di rilasciare il suo codice (anche se una copia viene spostata in una controllata controllata).

Questa è una risposta diretta alle FAQ GPL di FSF sulla distribuzione dei sorgenti

La GPL non richiede il rilascio della versione modificata o di parte di essa. Sei libero di apportare modifiche e utilizzarle privatamente, senza mai rilasciarle. Questo vale anche per le organizzazioni (comprese le società); un'organizzazione può creare una versione modificata e utilizzarla internamente senza mai rilasciarla al di fuori dell'organizzazione.

Le consociate interamente controllate sono considerate parte dell'organizzazione madre, quindi si sarebbe legalmente in chiaro. Tuttavia, FSF sottolinea che stai violando lo spirito del software libero.


3
Mi chiedo: se un dipendente utilizza la versione modificata non pubblicata nella società, avrebbe il diritto di ottenere il codice sorgente dalla società?
unor

@ GlenH7: grazie per la tua spiegazione molto utile (in particolare la parte "Dove diventa difficile")
Louis Morazzani,

2
@unor - No, ciò costituirebbe un uso privato da parte della Società (il dipendente fa parte della società, non un'entità separata).
iheanyi,

"Tuttavia, se prendono Bar + Foo, eliminano Bar e usano solo + Foo, sono comunque vincolati dai termini della GPL poiché Bar + Foo era GPL." Sei sicuro? Foo era ancora autorizzato sotto la licenza Boost. A quanto ho capito, la licenza Boost non dovrebbe essere rimossa, anche se combinata con il codice GPL. ("La [...] concessione di licenza di cui sopra, questa limitazione e la seguente dichiarazione di non responsabilità, devono essere incluse in tutte le copie del Software, in tutto o in parte, e in tutte le opere derivate del Software [...]")
lesderid

2
@ GlenH7 Certo, ma potrebbero essere autorizzati a riconsegnare ai Foosensi della GPL? Il servizio di pubblicazione in pubblico andrebbe bene, ma poi dovrebbero anche mantenere la licenza Boost Bar+Foo, no?
lesderid,

8

Con "compatibile GPL", intendono una licenza che non è in conflitto con la GPL. Una licenza meno restrittiva, come la licenza Boost, è "compatibile" con la GPL perché non impedisce agli utenti del codice di fare qualsiasi cosa che la GPL consentirebbe a un utente di fare. Cioè, la licenza Boost consente alle persone di copiare liberamente, che è ciò che la GPL richiede che le persone siano autorizzate.

Un esempio di licenza non "compatibile" potrebbe essere una licenza che richiedesse una commissione agli autori originali affinché gli utenti distribuissero copie. Poiché la GPL consente esplicitamente la distribuzione sia gratuita che a pagamento, questa licenza più restrittiva non sarebbe compatibile.

In altre parole, la GPL dice "Devi consentire $ A, $ B e $ C". Qualsiasi licenza che consente $ A, $ B, $ C e anche $ D e $ E è compatibile. Una licenza che consentiva $ A e $ B ma non $ C non lo sarebbe.


4
Quindi il nuovo lavoro combinato è interamente autorizzato dalla GPL, giusto? Ma il codice originale concesso in licenza in base al MIT può ancora essere distribuito separatamente in base al MIT senza eseguire la violazione della GPL, giusto?
Robert Harvey,

1
IANAL, ma sì, è così che funziona.
Fabio Fracassi,

4
" perché non impedisce agli utenti del codice di fare qualsiasi cosa che la GPL consentirebbe a un utente di fare " - E anche perché non impedisce all'utente di fare qualsiasi cosa che la GPL richiederebbe loro di fare.
Ross Patterson,

2
Nitpick minore ma la GPL in realtà non proibisce l'addebito di tasse per qualsiasi cosa; vedi gnu.org/licenses/gpl-faq.html#DoesTheGPLAllowMoney
Maximus

1
Sono abbastanza sicuro che la GPL permetta a chiunque di addebitare per la distribuzione, ma non consente alle persone di richiedere ad altri di addebitare se si distribuiscono. In altre parole, posso addebitarti una copia, ma non posso richiedere che tu mi invii un pagamento se ne dai una copia a una terza parte.
Gort the Robot,

1

Non hai commesso un errore: la risposta alle FAQ era incompleta. Avrebbe dovuto dire che il programma combinato deve essere concesso in licenza ai sensi della GPL, non una licenza compatibile GPL. Da allora è stato corretto (vedi sotto: ho sottolineato il bit importante):

Sì, perché il programma si collega effettivamente alla libreria. Pertanto, i termini della GPL si applicano all'intera combinazione. I moduli software che si collegano alla libreria possono essere soggetti a varie licenze compatibili GPL, ma il lavoro nel suo insieme deve essere concesso in licenza in base alla GPL . Vedi anche: Cosa significa che una licenza è "compatibile con la GPL"?

In precedenza avevo detto che "se una libreria viene rilasciata sotto licenza GPL, qualsiasi software che la utilizza deve essere sotto licenza GPL stessa a causa della sua cosiddetta natura" virale ". Una licenza permissiva compatibile GPL come boost non può essere utilizzata ". Per "software che lo utilizza" intendevo i moduli e la libreria combinati.


Credo che questo sia un malinteso comune. Non è necessario rilasciare la parte del codice sotto licenza GPL, purché disponga di una licenza compatibile. La licenza da parte tua può anche essere più permissiva, ma non inferiore, della GPL. Solo il lavoro combinato rimane nell'ambito della GPL, quindi le restrizioni aggiuntive della GPL si applicano solo se si utilizza il codice insieme alla libreria GPL collegata. Vedi gnu.org/licenses/gpl-faq.html#GPLModuleLicense
ert

1
Sì, è giusto. La mia risposta originale avrebbe potuto essere male interpretata. Fortunatamente ora è tutto discutibile, poiché Gnu ha aggiornato le sue FAQ per dire la cosa giusta.
Bennett McElwee,
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.