Scelta di una licenza per progetti open source

30

Ho fatto alcuni progetti open source e ho intenzione di fare di più in futuro. Finora, ho rilasciato tutto il mio codice sotto GPL, ma ho letto alcuni articoli che affermano che GPL è troppo restrittivo per qualsiasi codice da utilizzare nell'ambiente aziendale. Questo, presumibilmente, riduce i contributi.

Ecco cosa volevo realizzare:

Per applicazioni complete :

  • nessun uso commerciale ad eccezione della vendita di supporto per l'applicazione (ad esempio, l'app non può essere venduta, ma tutto ciò che lo circonda può)

Per librerie (componenti, plug-in, ...):

  • può essere incluso in progetti commerciali senza modifiche
  • qualsiasi modifica la libreria / componente deve essere open source (restituito) - il resto del progetto, commerciale o meno, non è interessato

Per le applicazioni, GPL sembra ancora la scelta logica. Per le biblioteche, la mia comprensione primitiva delle licenze mi fa pensare che la LGPL sia una buona partita, ma non ne sono sicuro. Ho esaminato la licenza del MIT e questo mi sembra troppo permissivo.

La maggior parte delle volte, voglio che le persone utilizzino il mio codice ovunque vogliano, purché tutti i miglioramenti vengano restituiti.

Questo mi porta alla mia domanda (s): LGPL è una scelta logica per le librerie open source, componenti, plugin, ecc? C'è un'alternativa migliore? GPL è una buona scelta per le mie applicazioni o c'è qualcosa di meglio?

Aggiornamento:

Per coloro che sono interessati alla mia decisione finale, ho deciso di rilasciare le mie librerie sotto schema multi-licenza, MPL, LGPL e GPL. Ciò consente praticamente a tutti di utilizzare il mio codice senza obblighi, a meno che non lo modifichino in MPL, nel qual caso dovrebbe essere restituito.

Questo significa che il codice può essere utilizzato sia da FSF che da software proprietario, ma viene impedito uno sfruttamento commerciale "cattivo" (o almeno mi piacerebbe pensare).

    
posta dr Hannibal Lecter 16.10.2010 - 14:58
fonte

7 risposte

8

Mi sembra che GPL e LGPL siano ciò che vuoi per i tuoi progetti.

    
risposta data 16.10.2010 - 15:02
fonte
8
  • no commercial use with the exception of selling support for the application (i.e. the app cannot be sold, but everything around it can)

Fai attenzione che la GPL non vieta di vendere l'applicazione, e proibire questo renderebbe la tua licenza non libera, come osservato da Huperniketes. L'unica cosa che GPL garantisce è che la società che vende il software dovrebbe anche fornire il codice base gratuitamente. Ma non devono fornire il pacchetto software così com'è gratuitamente. Questa è una grande differenza, dal momento che il codice sorgente di un software non è un prodotto facilmente utilizzabile.

    
risposta data 21.10.2010 - 23:33
fonte
5

Se vuoi impedire l'uso commerciale del tuo software, GPL non lo taglierà. La GPL tende ad essere evitata dalle imprese commerciali nei prodotti che vendono a causa della necessità di ridistribuire la fonte modificata, ma sono liberi di utilizzare il software GPL internamente. Questo non vuol dire che le aziende non sono impostate per vendere software GPL o costruire hardware attorno al software GPL (ad esempio LinkSys), ma la maggior parte delle aziende preferirebbe non condividere il proprio prodotto con i concorrenti.

Non so se la licenza Creative Commons Attribution Non commerciale No Derivatives è ciò che desideri (l'unica restrizione che hai menzionato è use commerciale), ma in caso contrario potrebbe essere necessario una licenza preparata per te da un avvocato che contiene i diritti di concessione della lingua che desideri avere i titolari di licenza.

Inoltre, una volta che inizi a includere restrizioni come uso non commerciale e non modificabilità , potresti non soddisfare più i criteri per un open source licenza come definita dal Open Source Initiative . Il loro sito elenca anche altre licenze OSS approvate . Forse ce n'è già uno che corrisponde ai tuoi obiettivi.

E definire adeguatamente i tuoi obiettivi sarà la chiave prima di selezionare i diritti e le limitazioni che imposti agli utenti del tuo software. La popolarità è più importante della modificabilità o della distribuzione o dell'uso o ...? Pensa ai tuoi obiettivi nel rilascio del codice per cominciare, e in che spirito lo fai o i termini in base ai quali concedi l'accesso potrebbero avere l'effetto opposto.

    
risposta data 16.10.2010 - 16:44
fonte
4

Se ciò che ti interessa è assicurarti che il tuo codice rimanga libero, ripristinando i miglioramenti e assicurandoti che chiunque possa usarlo, quindi MPL è la licenza giusta per te. È gratuito da utilizzare in qualsiasi prodotto, incluso il software commerciale, senza restrizioni di collegamento arcane come la LGPL. Richiede che chiunque usi il tuo codice e lo modifichi rilasci le modifiche in MPL, ma non tocca o limita il resto del codice nel progetto.

    
risposta data 16.10.2010 - 15:43
fonte
4

Se hai scritto tutto il tuo codice (ovvero se possiedi il tuo codice) puoi anche doppia licenza : pubblicare il tuo codice in es. GPLv3 e offri di venderlo (con un'altra licenza) a coloro che desiderano utilizzarlo in modo meno restrittivo.

(questo è particolarmente rilevante per una libreria, perché una libreria GPL-ed può essere utilizzata solo su software GPL).

Fai attenzione ai contributi esterni o alle patch che incorpori nel tuo codice (poiché non li possiedi).

    
risposta data 06.12.2011 - 07:28
fonte
1

Se si può effettivamente applicare per MPL o solo GPL dipende da una differenza critica:

The "rights hereunder" include the right granted to recipients to link MPL "Covered Code" with private non-MPL code to form a "Larger Work" (MPL 3.7 Larger Works). GPL does not give recipients any such right. Therefore, the recipient cannot change the licensing terms to apply the GPL instead of MPL.

Vedi questo .

Ciò che questo significa per te è che se stai usando qualsiasi componente che è GPL, non puoi (probabilmente) rilasciare codice (che sta usando questo) sotto MPL; MPL tenterà erroneamente di consentire la ridistribuzione del codice GPL sotto MPL che è improprio. Questo va bene, se le tue dipendenze sono nell'ordine della licenza MIT o Apache.

In generale, se non stai facendo di meglio, scegli MPL su GPL da solo, a meno che tu non stia già utilizzando roba MPL. GPL si assicurerà inoltre che i contributi vengano resi anche pubblicati.

C'è solo un cambiamento critico che MPL fornisce è la protezione contro le violazioni di brevetto prodotte inconsapevolmente. Come dice la licenza:

It is not OK for someone to create a Modification for which he or she has a patent, make the Modification available free of charge as required under the License, and then come back and try to charge everyone for the patent rights.

MPL e GPL non sono del tutto compatibili.

Puoi vedere qui: MIT vs. BSD vs. Doppia licenza per discussioni sulle implicazioni delle licenze doppie.

    
risposta data 06.12.2011 - 04:31
fonte
0

Nessuno sembra parlarne, ma potresti prendere in considerazione una licenza Creative Commons. Hanno una gamma di licenze (o una che si adatta alle tue esigenze, guardata in modo diverso).

    
risposta data 16.10.2010 - 15:17
fonte

Leggi altre domande sui tag