MIT vs licenza GPL [chiusa]


122

La licenza MIT è compatibile con GPL. La licenza GPL è compatibile con MIT? cioè posso includere codice con licenza MIT in un prodotto con licenza GPL, ma posso includere codice con licenza GPL in un prodotto con licenza MIT?

Mi sembra che la principale differenza tra la licenza del MIT e la GPL sia che il MIT non richiede che le modifiche siano open source mentre la GPL lo fa. È corretto? La GPL è più restrittiva della licenza MIT?


1
en.wikipedia.org/wiki/MIT_License La licenza è anche compatibile con GPL, il che significa che ...
Michael Petrotta

Risposte:


76

Mi sembra che la principale differenza tra la licenza del MIT e la GPL sia che il MIT non richiede che le modifiche siano open source mentre la GPL lo fa.

Vero - in generale. Non è necessario rendere open source le modifiche se si utilizza GPL. Puoi modificarlo e usarlo per i tuoi scopi purché non lo distribuisca. MA ... se lo distribuisci, anche l'intero progetto che utilizza il codice GPL diventa automaticamente GPL. Il che significa che deve essere open source e il destinatario ottiene tutti i tuoi stessi diritti, ovvero può girarsi e distribuirlo, modificarlo, venderlo, ecc. E questo includerebbe il tuo codice proprietario che quindi non più essere proprietario - diventa open source.

La differenza con il MIT è che anche se distribuisci effettivamente il tuo codice proprietario che utilizza il codice con licenza del MIT, non devi rendere il codice open source. Puoi distribuirlo come app chiusa in cui il codice è crittografato o è un binario. L'inclusione del codice con licenza MIT può essere crittografata, purché rechi l'avviso di licenza MIT.

la GPL è più restrittiva della licenza MIT?

Sì, proprio così.


16
Posso solo notare che GPL non rende il software "open source". Il software sotto GPL diventa GRATUITO (come per proteggere la libertà dei suoi utenti). Il software libero è un movimento più antico e più significativo dell'open-stuff. Ecco un articolo sulle differenze: gnu.org/philosophy/open-source-misses-the-point.html . Grazie
Jorge Orpinel

11
Per le stesse ragioni, si potrebbe sostenere che il MIT è più restrittivo, poiché non tutela tutte le libertà dell'utente e può portare alla privatizzazione del software (= restrizione e perdita del controllo da parte dell'utente). Grazie ancora
Jorge Orpinel

3
@tcurdt Perché non è questo il "posto giusto" per parlare di libertà? Perché l'autocensura? E no, sfortunatamente non è questo che significa "libero". Nemmeno "aperto" significa questo. Giusto per chiarire, né le licenze MIT né GPL ti permettono di "farci niente". Solo il codice senza licenza potrebbe rientrare in quella categoria. Saluti
Jorge Orpinel

3
Ancora una volta sbagliato, questo è ciò che dovrebbe essere stackoverflow per stackoverflow.com/help/on-topic . Qualcuno pensa che questo sia fuori tema non lo rende così. Comunque, ho libertà di espressione e questo è una specie di spazio pubblico quindi ... Sì. Non puoi sopportare di essere sbagliato. In realtà sto cercando di aiutare te e gli altri lettori se posso. Comunque, buona fortuna
Jorge Orpinel

8
@JorgeOrpinel "Solo il codice senza licenza potrebbe rientrare in quella categoria." Questo è molto sbagliato, il codice senza licenza è PROPRIETARIO / "tutti i diritti riservati". Se vai in giro e ridistribuisci il codice che altre persone hanno creato senza una licenza, stai rischiando molti problemi legali. Dici che stai cercando di "aiutare te e gli altri lettori" ma convincere i lettori a fare causa non è esattamente molto utile. Solo FYI.
punto

45

Posso includere codice con licenza GPL in un prodotto con licenza MIT?

Puoi. La GPL è un software libero così come lo è il MIT, entrambe le licenze non ti limitano a riunire il codice dove "include" è sempre bidirezionale.

Nel diritto d'autore per un'opera combinata (ovvero due o più opere formano insieme un'opera), non fa molta differenza se un'opera è "più grande" dell'altra oppure no.

Quindi, se includi codice con licenza GPL in un prodotto con licenza MIT, allo stesso tempo includerai anche un prodotto con licenza MIT nel codice con licenza GPL.

Come secondo parere, l' OSI ha elencato i seguenti criteri (più in dettaglio) per entrambe le licenze (MIT e GPL):

  1. Ridistribuzione gratuita
  2. Codice sorgente
  3. Opere derivate
  4. Integrità del codice sorgente dell'autore
  5. Nessuna discriminazione contro persone o gruppi
  6. Nessuna discriminazione nei campi di applicazione
  7. Distribuzione della licenza
  8. La licenza non deve essere specifica per un prodotto
  9. La licenza non deve limitare altri software
  10. La licenza deve essere neutrale rispetto alla tecnologia

Entrambi consentono la creazione di opere combinate, che è quello che stavi chiedendo.

Se la combinazione delle due opere è considerata un derivato, anche questo non è limitato da entrambe le licenze.

Ed entrambe le licenze non si limitano alla distribuzione del software.

Mi sembra che la principale differenza tra la licenza del MIT e la GPL sia che il MIT non richiede che le modifiche siano open source mentre la GPL lo fa.

La GPL non richiede che tu rilasci le tue modifiche solo perché le hai fatte tu. Non è preciso.

Potresti combinare questo con la distribuzione di software sotto GPL che non è ciò che hai chiesto direttamente.

È corretto - la GPL è più restrittiva della licenza MIT?

Ecco come lo capisco:

Per quanto riguarda la distribuzione, è necessario mettere l'intero pacchetto sotto GPL. Il codice MIT all'interno del pacchetto sarà ancora disponibile sotto MIT mentre la GPL si applica al pacchetto nel suo insieme se non limitato da diritti superiori.

"Restrittivo" o "più restrittivo" / "meno restrittivo" dipende molto dal punto di vista. Per un utente di software il MIT potrebbe risultare in un software più limitato di quello disponibile sotto GPL, anche se alcuni chiamano la GPL più restrittiva oggigiorno. Quell'utente in particolare chiamerà il MIT più restrittivo. È solo soggettivo dirlo e persone diverse ti daranno risposte diverse a questo.

Poiché è solo soggettivo parlare di restrizioni di licenze diverse, dovresti pensare a cosa vorresti ottenere invece:

  • Se vuoi limitare l'uso delle tue modifiche, il MIT può essere più restrittivo della GPL per la distribuzione e questo potrebbe essere quello che stai cercando.
  • Nel caso in cui desideri assicurarti che la libertà del tuo software non venga limitata così tanto dagli utenti a cui lo distribuisci, allora potresti voler rilasciare sotto GPL invece che MIT.

Finché sei l'autore, sei tu che puoi decidere.

Quindi la persona più restrittiva in assoluto è l'autore, indipendentemente dalla licenza che qualcuno sta optando per;)


1
"Il codice MIT all'interno del pacchetto sarà ancora disponibile sotto MIT" Non ne sono completamente sicuro. un progetto GPL + MIT dovrebbe trasformarsi in un progetto open source, inclusa la parte MIT. D'altra parte, LGPL è meno invadente per l'intero progetto.
magallanes

13
Anche se chiarirai più avanti nella tua risposta, è molto fuorviante iniziare dicendo che "puoi" includere codice con licenza GPL in un progetto con licenza MIT. Un progetto originariamente concesso in licenza dal MIT non può più essere distribuito nella sua interezza con la licenza MIT una volta che contiene codice disponibile solo sotto GPL.
antinome

3
È anche fuorviante affermare che la limitazione è soggettiva. È una domanda ragionevole e non soggettiva chiedere "quali azioni posso eseguire legalmente con questi file che ho ottenuto?" Sotto GPL, quell'insieme di azioni è in realtà un sottoinsieme appropriato di ciò che quelle azioni sarebbero state sotto il MIT.
antinome

1
@hakra: l'inclusione di codice con licenza GPL in un progetto con licenza MIT non è possibile perché l'intero risultante non è più concesso in licenza MIT, anche se non lo distribuisci. (Se così fosse, allora i termini della licenza MIT avrebbero consentono di distribuire essa!)
antinome

9
tl; dr: un'app con licenza MIT può includere codice GPL ma l'app risultante non dispone di licenza MIT.
antinome

16

Hai ragione sul fatto che la GPL è più restrittiva della licenza MIT.

Non è possibile includere codice GPL in un prodotto con licenza MIT. Se distribuisci un lavoro combinato che combina codice GPL e MIT (eccetto in alcune situazioni particolari, ad esempio "mera aggregazione"), quella distribuzione deve essere conforme alla GPL.

Puoi includere codice con licenza MIT in un prodotto GPL. L'intero lavoro combinato deve essere distribuito in modo conforme alla GPL. Se hai apportato modifiche alle parti del codice MIT, ti verrà richiesto di pubblicare il sorgente per tali modifiche se distribuisci un'applicazione che contiene codice GPL e MIT.

Se sei il proprietario del copyright del codice GPL, puoi ovviamente scegliere di rilasciare quel codice sotto la licenza MIT, in tal caso è il tuo codice e puoi pubblicarlo con tutte le licenze che desideri.


3
a meno che il progetto non sia sotto una doppia licenza, ad esempio jquery.
buggedcom

7
@buggedcom - È possibile ottenere una doppia licenza per le parti che erano sotto la licenza MIT, ma non è possibile ottenere una doppia licenza per una libreria MIT / GPL combinata: deve essere concessa in licenza solo sotto GPL. (Non puoi prendere parti con licenza GPL e concederle nuovamente sotto la licenza MIT, poiché ciò è contro i termini GPL). Nel caso di jQuery, i proprietari del copyright del codice lo hanno rilasciato sotto la doppia licenza, quindi non è un problema, ma se "prendessero in prestito" del codice GPL da qualche altra parte, non sarebbero più in grado di concedere in licenza al MIT l'opera combinata .
Mark H

AFAIK non è del tutto vero. Secondo la FSF la GPL è compatibile con la licenza MIT [1] Sfortunatamente questo non cambia il fatto che il progetto stesso non è più completamente coperto dalla licenza MIT ... che è quello che le persone normalmente si aspettano. Non saresti più in grado di utilizzare il progetto nel suo insieme in un contesto commerciale senza rilasciare il codice. Per evitare questa confusione è meglio non includere codice GPL in un progetto con licenza MIT. Quello che non puoi, è sbagliato però. [1] gnu.org/licenses/license-list.html#SoftwareLicenses
tcurdt

... ma immagino che dipenda da ciò che definisci "prodotto"
tcurdt

2
Un prodotto con licenza MIT (forse "applicazione" sarebbe una parola migliore) non può includere codice GPL. È possibile aggiungere codice GPL a un prodotto MIT, ma l'applicazione risultante può essere distribuita solo con licenza GPL. Non ho mai visto prima qualcuno descrivere un'applicazione che può essere distribuita solo secondo i termini della GPL come un "prodotto con licenza MIT". Se le licenze non fossero "compatibili" non potresti affatto produrre un'opera combinata - il fatto che siano compatibili significa che puoi produrre un'opera combinata che puoi distribuire ed è sotto licenza GPL.
JosephH

5

IANAL ma come la vedo io ....

Sebbene sia possibile combinare codice GPL e MIT, la GPL è contaminante. Il che significa che il pacchetto nel suo insieme ottiene i limiti della GPL. Dato che è più restrittivo, non puoi più usarlo in software commerciale (o piuttosto chiuso). Il che significa anche che se hai un progetto MIT / BSD / ASL non vorrai aggiungere dipendenze al codice GPL.

L'aggiunta di una dipendenza GPL non cambia la licenza del tuo codice ma limiterà ciò che le persone possono fare con l'artefatto del tuo progetto. Questo è anche il motivo per cui ASF non consente dipendenze dal codice GPL per i loro progetti.

http://www.apache.org/licenses/GPL-compatibility.html


1
+1 Infatti Microsoft individua perfettamente questo problema, la GPL è virale perché trasforma ogni progetto in open source.
magallanes

10
Non è un problema . GPL è virale per design. È inteso per essere utilizzato da persone che desiderano rendere il loro codice gratuito per altre persone da utilizzare come desiderano, ma richiedono anche che altre persone che pubblicano copie di quel software o di un derivato rispettino gli utenti allo stesso modo. La GPL riguarda gli utenti . Non si tratta di aziende che massimizzano i profitti attraverso monopoli imposti dallo stato, quindi il fatto che sia ricorsivo è in realtà la sua bellezza e forza, non un "problema" che Microsoft può "individuare perfettamente". Non ci vuole un'intuizione speciale per riconoscere che la GPL è virale ~ Wikipedia è sufficiente.
Carl Smith
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.