MIT vs. BSD vs. Dual License


87

La mia comprensione è che:

  • I progetti concessi in licenza dal MIT possono essere utilizzati / ridistribuiti in progetti autorizzati dalla BSD .
  • I progetti con licenza BSD possono essere utilizzati / ridistribuiti in progetti con licenza MIT.
  • Le licenze MIT e BSD a 2 clausole sono sostanzialmente identiche .
  • BSD 3-clausola = BSD 2-clausola + la clausola "nessuna approvazione"
  • Il rilascio di una doppia licenza consente agli utenti di scegliere tra tali licenze, senza essere vincolati a entrambe.

Se tutto quanto sopra è corretto, a che serve usare una doppia licenza MIT / BSD? Anche se BSD fa riferimento alla versione a 3 clausole, un utente non può legalmente scegliere di rispettare solo la licenza MIT?

Sembra che se si desidera davvero applicare la clausola "nessuna approvazione", è necessario concederla come solo BSD (non doppia). Se non ti interessa la clausola "nessuna approvazione", solo il MIT è sufficiente e il MIT / BSD è ridondante.

Analogamente, poiché le licenze MIT e BSD sono "sia compatibile GPL- " e possono essere ridistribuiti GPL -licensed progetti, quindi doppia licenza MIT / GPL sembra ridondante.


1
Potete fornire un esempio di licenze MIT + BSD? Di solito è ridondante alla doppia licenza con due licenze altrettanto permissive, ma ho visto abusare della doppia licenza come un modo per affermare esplicitamente che il codice potrebbe essere ridistribuito sotto ciascuna delle licenze.
yannis,

@Yannis Sì, mi chiedevo se le persone avessero una doppia licenza solo per essere più espliciti per le persone che non lo sapessero. Ma penso che lo renda più confuso per loro.
Ryan,



1
Nella mia esperienza, le persone usano principalmente la doppia licenza per licenze incompatibili. ad es. MPL + (L) GPL o una licenza a pagamento senza copyleft insieme a (A) GPL.
Codici

Risposte:


60

La mia comprensione è che:

  1. I progetti con licenza MIT possono essere utilizzati / ridistribuiti in progetti con licenza BSD.
    VERO (ma a meno che non ci siano modifiche, gli utenti possono ottenerlo anche dalle fonti originali.

  2. I progetti con licenza BSD possono essere utilizzati / ridistribuiti in progetti con licenza MIT.
    La licenza FALSE MIT consente la distribuzione senza crediti di contribuzione; BSD no.

  3. Le licenze MIT e BSD a 2 clausole sono sostanzialmente identiche.
    FALSO Vedi sopra.

  4. BSD 3-clausola = BSD 2-clausola + la clausola "nessuna approvazione"
    TRUE

  5. Il rilascio di una doppia licenza consente agli utenti di scegliere tra tali licenze, senza essere vincolati a entrambe.
    VERO (penso di sì!)

Allo stesso modo, poiché le licenze MIT e BSD sono entrambe "compatibili con GPL" e possono essere ridistribuite in progetti con licenza GPL, anche le licenze doppie MIT / GPL sembrano ridondanti.

NO . Ecco una grande differenza. La licenza MIT e la licenza Apache richiedono solo di dare credito ai detentori del copyright originali. Se si sceglie, è possibile ridistribuire la fonte; ma se lo desideri puoi conservare il tuo nuovo prodotto derivato senza aprire il codice. Quindi, è possibile utilizzare il codice sviluppato sotto MIT e Apache - sotto licenza commerciale.

Se usi mai il codice con licenza basata su GPL e ti capita di modificarlo, devi distribuire anche il tuo codice modificato sotto GPL. In altre parole, una volta utilizzata una base di codice GPL nell'ambito di un progetto e se si desidera pubblicarla come prodotto, deve essere pubblicata con il codice sorgente e deve essere pubblicata sotto GPL. Non può mai essere una licenza commerciale o una fonte chiusa e non può essere qualsiasi altra licenza che sia meno rigorosa di GPL.

Ad esempio è possibile prendere il codice di licenza MIT, Apache o BSD, modificato e distribuito sotto GPL. Una volta che una base di codice è distribuita come GPL, le sue ulteriori versioni derivate non possono essere distribuite sotto licenza MIT, Apache o BSD ma devono essere solo GPL.

Modifica:
esempio di doppia licenza: supponiamo che Nice Office sia rilasciato con doppia licenza: MIT e GPL. Ha due possibilità. Alcune persone possono creare NicePro Office, che può essere commerciale e vendere. Considerando che un'altra comunità open source crea un fork NiceOpen Office. In questo caso, può applicare la distribuzione GPL (dell'originale Nice Office e della versione NiceOpen Office) quindi, se si inizia con NiceOpen Office, è necessario rispettare solo GPL e non la licenza MIT.

Il punto è in caso di doppia licenza la prima persona che ottiene una licenza ha una scelta. Può scegliere in entrambi i modi, tuttavia la seconda persona deve aderire alla scelta fatta dalla prima persona. Non può ignorare i diritti originali di entrambe le generazioni e non può in alcun modo ridurre l'obbligo della licenza applicabile.

MODIFICA 2 Aggiunta di una lettura interessante: le licenze GPL e MPL hanno gravi conflitti. Leggi questo http://www.tomhull.com/ocston/docs/mozgpl.html


4
@Dipan Se un progetto ha una doppia licenza in base al MIT / GPL, può essere utilizzato in un progetto proprietario b / c l'utente può scegliere di seguire solo il MIT. Se un progetto detiene solo la licenza MIT, può essere ridistribuito con altre licenze, inclusa la GPL. Questo è ciò che intendevo per ridondante.
Ryan,

11
@DipanMehta Cosa intendi con "crediti di contribuzione" in # 2? Sembra che ti riferisci alla licenza di 4 clausole BSD, che non è verificata da FSF come lo sono la clausola 3 e la clausola 2. Sto parlando delle clausole 3 e 2, nel qual caso sono abbastanza sicuro che tutte e cinque le affermazioni siano vere .
Ryan,

4
È possibile utilizzare il codice con licenza BSD insieme al codice con licenza MIT; devi solo menzionare nei materiali del progetto che "BazApp utilizza libfoobar, che è distribuito con una licenza BSD" o qualcosa del genere. Le licenze BSD e MIT sono applicate a livello di file, anziché di progetto.
mipadi,

10
@Dipan_Mehta Come già detto da Ryan, stai parlando della licenza BSD originale a 4 clausole, mentre l'OP sta parlando delle licenze BSD revisionate a 3 e 2 clausole. La licenza BSD a 2 clausole è in realtà equivalente a quella del MIT. Anche la pagina OSI lo afferma.

17
Il punto 2 (il codice BSD non può essere incluso nel codice MIT) viene eseguito in contrasto con ogni informazione che abbia mai letto su BSD a 3 clausole e 2 clausole. Il punto 2 sarebbe vero riguardo al BSD (ora antico e dimenticato) di 4 clausole, ma il PO ha chiarito che questa domanda non riguarda il BSD di 4 clausole. Sembra abbastanza dannoso avere un'informazione così ingannevolmente fuorviante in una risposta altrimenti molto buona e credibile.
apsillers

4

I tuoi cinque punti sono tutti veri .

L'altra risposta sembra supporre che tu stia includendo la vecchia licenza BSD a 4 clausole usata raramente .

Se si interpretano le "licenze BSD" come riferite alle varianti più comunemente utilizzate di 3 clausole o 2 clausole della licenza BSD, tutte e cinque le affermazioni nella domanda sono vere.

Se tutto quanto sopra è corretto, a che serve usare una doppia licenza MIT / BSD?

Tecnicamente non dovrebbe essercene bisogno. Entrambi possono essere utilizzati nelle stesse situazioni.

Anche se BSD fa riferimento alla versione a 3 clausole, un utente non può legalmente scegliere di rispettare solo la licenza MIT?

Sembra corretto.

Sembra che se si desidera davvero applicare la clausola "nessuna approvazione", è necessario concederla come solo BSD (non doppia). Se non ti interessa la clausola "nessuna approvazione", solo il MIT è sufficiente e il MIT / BSD è ridondante.

Giusto. Se ti interessa quella particolare clausola, non avrebbe senso licenziare anche la stessa opera sotto licenze senza quella clausola.

Allo stesso modo, poiché le licenze MIT e BSD sono entrambe "compatibili con GPL" e possono essere ridistribuite in progetti con licenza GPL, anche le licenze doppie MIT / GPL sembrano ridondanti.

Sì.

Tuttavia, a volte un prodotto software rivendicherà la doppia licenza come MIT e GPL (o una licenza permissiva e GPL), ma in realtà si riferiscono a due diverse versioni del software.

Ad esempio, alcuni software possono essere compilati e distribuiti con una licenza permissiva come BSD o MIT, ma se si omettono alcune librerie e quindi alcune funzionalità, possono essere distribuiti come GPL. Le librerie omesse saranno di solito librerie di terze parti che non sono compatibili con GPL ma potrebbero comunque essere distribuite.

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.