La licenza open source del MIT richiede che i derivati ​​del lavoro siano resi pubblici (in base alla licenza del MIT)?


9

Sto cercando una licenza open source per una biblioteca che voglio pubblicare. Idealmente, si dovrebbe essere autorizzati a utilizzare questa libreria in applicazioni gratuite o commerciali senza pagarmi una commissione, ma se viene creato qualsiasi lavoro derivato dalla libreria (qualsiasi miglioramento della libreria ad esempio), dovrebbe essere reso disponibile a tutti coloro che ne fanno parte stessa licenza.

In altre parole, voglio mettere la seguente etica: "Beneficiate di questo lavoro gratuitamente e, se lo migliorate, posso beneficiare anche del vostro miglioramento gratuitamente". È una licenza di tipo copyleft che sto cercando.

La licenza MIT sembra una possibile soluzione, ma non mi è chiaro se le opere derivate del codice coperto da questa licenza debbano essere rese PUBBLICAMENTE per tutti. Qualcuno può chiarire / confermare questo? Se esiste un'altra licenza open source più adatta a soddisfare le mie esigenze, anch'io sono interessato. Grazie.


Una discussione un po 'più avanzata è qui: programmers.stackexchange.com/questions/12394/…
Dipan Mehta,

Risposte:


9

La licenza MIT non richiede che le opere derivate siano open source. Stai cercando la GPL .

La GPL garantisce ai destinatari di un programma per computer i diritti della definizione di software libero e utilizza il copyleft per garantire che le libertà siano preservate ogni volta che il lavoro viene distribuito, anche quando il lavoro viene modificato o aggiunto. La GPL è una licenza copyleft, il che significa che le opere derivate possono essere distribuite solo alle stesse condizioni di licenza ...


1
La GPL obbliga l'utente a pubblicare lavori derivati ​​sotto GPL che spingono troppe restrizioni. Voglio solo rendere disponibili le modifiche della mia biblioteca. Dovrei usare LGPL?
Jérôme Verstrynge,

8
In tal caso, sì - la LGPL è più appropriata.
Formica

Notare che il trigger (L) GPL si attiva solo in caso di ridistribuzione. Un utente finale che crea un'opera derivata solo per uso privato non è vincolato dagli obblighi (L) GPL. Vale a dire rigorosamente questa non è una risposta alla domanda come formulata.
MSalter

7
@MSalters: Penso che sarebbe quasi impossibile sapere che qualcuno ha derivato qualcosa dal tuo codice a meno che non lo abbia pubblicato in qualche forma, rendendo il problema un po 'controverso.
Formica

6

Risposta breve

Una combinazione di Eclipse Public License e LGPL garantisce esattamente ciò che desideri: le modifiche al tuo codice devono essere rese disponibili, ma l'uso del codice in un prodotto più grande non impone che il prodotto più grande venga riconsegnato. La combinazione è necessaria per consentire l'utilizzo del codice in progetti GPL e non GPL.

È così che hanno fatto progetti come JGraphT. Hanno riconsegnato il loro progetto con EPL e LGPL. La motivazione e la procedura sono descritte nella loro wiki .

Risposta lunga

Penso che la Mozilla Public License ( MPL ) o Eclipse Public License ( EPL ) sia la licenza che stai cercando, perché "se viene creato un lavoro derivato dalla libreria (ad esempio qualsiasi miglioramento della libreria), [IS ] reso disponibile a tutti con la stessa licenza. "

La licenza MPL e EPL è compresa tra GPL e MIT.

MIT consente all'utente di fare tutto con esso, incluse modifiche, vendite e non restituire il codice modificato alla comunità.

GPL obbliga l'utente a distribuire tutto il codice alla comunità, anche se la tua libreria è solo l'1% dell'intero prodotto.

LGPL obbliga l'utente a rinunciare alla modifica della parte LGPL del codice.

MPL ed EPL sono simili a LGPL: impone inoltre all'utente di rendere disponibile la fonte modificata. "Fonte modificata" include solo la parte del codice coperto da MPL / EPL. Ciò significa che l'utente può creare un nuovo prodotto dalla tua libreria. Se modifica la parte MPL / EPL, deve pubblicarla. Le nuove cose da lui non devono essere pubblicate.

Sento che MPL / EPL sono più adatti, poiché LGPL parla esplicitamente di "librerie" e MPL parla solo di "Covered Software" (che è un ambito più ampio).

Tuttavia, la scelta di EPL causa problemi con la combinazione del software con il software GPL: EPL non è compatibile con GPL . Questo non è il caso se si utilizza semplicemente MPL .

Se vuoi assicurarti che il tuo codice possa essere usato in progetti GPL e non GPL, duplica la licenza del codice sotto LGPL ed EPL come descritto nella risposta breve.

Esempi

  • JGraphT
  • logback
  • qooxdoo . Stanno progettando "di semplificare e modernizzare i termini di licenza di qooxdoo" e quindi passano dalla doppia licenza al MIT.

Puoi spiegare perché ritieni che l'MPL soddisfi i criteri che l'OP sta cercando?
maple_shaft

La "doppia licenza" dovrebbe apparire come "se si utilizza questo software in un prodotto GPL, questo software è concesso in licenza in base a GPL, altrimenti in MPL"? Ci sono progetti che fanno una cosa del genere?
9000,

@ 9000 Secondo le FAQ di GNU , il codice è coperto da MPL e GNU. Il secondo paragrafo è un po 'strano e non ho capito bene le implicazioni.
koppor,

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.