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.