Scelta di una licenza per progetti open source


30

Ho realizzato 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 usare in ambiente aziendale. Ciò, presumibilmente, riduce i contributi.

Ecco cosa volevo realizzare:

Per applicazioni complete :

  • nessun uso commerciale ad eccezione della vendita del supporto per l'applicazione (cioè l'app non può essere venduta, ma tutto ciò che la circonda può)

Per le librerie (componenti, plugin, ...):

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

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

Il più delle volte, voglio che le persone utilizzino il mio codice ovunque vogliano, purché vengano apportati miglioramenti.

Questo mi porta alle mie domande: LGPL è una scelta logica per librerie, componenti, plugin, ecc. Open source? C'è un'alternativa migliore? GPL è una buona scelta per le mie applicazioni o c'è qualcosa di meglio?

Aggiornare:

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

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


1
Vuoi dire nessun uso commerciale o nessuna distribuzione / rivendita commerciale ?
MIA,

Probabilmente distribuzione / rivendita. Non mi dispiacerebbe se le persone usassero le mie cose commercialmente, ma immagino che dipenderebbe dal progetto. Anche se non vedo un modo per usare tutto ciò che ho scritto finora per scopi commerciali ..
dr Hannibal Lecter,

4
È importante notare che (contrariamente ad alcune delle risposte) la FAQ di Creative Commons afferma esplicitamente che le licenze CC non devono essere utilizzate per il software. (La Dedizione di dominio pubblico di CC0 è approvata per l'uso con il software ma non sarebbe adatta agli scopi indicati nella domanda originale.) CC invece consiglia di scegliere una licenza approvata dalla Free Software Foundation o dall'Iniziativa Open Source.
Peter Briggs,

1
La mia ipotesi è che, a meno che tu non abbia inventato qualcosa di veramente e veramente unico e utile, la possibilità di una "cattiva commercializzazione" è così piccola da non valere il tempo speso per cercare di impedirlo.
Bryan Oakley,

1
Nel caso qualcuno fosse interessato, c'è una proposta per un sito di domande e risposte
Kurt Pattyn

Risposte:


8

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


Quindi diresti che LGPL è una buona scelta per le mie esigenze? Non sono un avvocato, quindi sto solo controllando :)
Dr Hannibal Lecter,

1
Nemmeno io sono un avvocato, ma penso che LGPL sia esattamente ciò che desideri per una biblioteca e GPL per applicazioni complete.
alternativa il

È legale vendere app GPL. Hai (essenzialmente) appena incluso il codice sorgente e conferisci ai tuoi clienti gli stessi diritti GPL che hai.
bdsl

8
  • nessun uso commerciale ad eccezione della vendita del supporto per l'applicazione (cioè l'app non può essere venduta, ma tutto ciò che la circonda può)

Fai attenzione che la GPL non proibisce la vendita dell'applicazione, e vietare ciò renderebbe la tua licenza non libera, come osservato da Huperniketes. L'unica cosa che la GPL garantisce è che l'azienda che vende il software dovrebbe anche fornire la base di codice gratuitamente. Ma non devono fornire il pacchetto software così com'è gratuitamente. Questa è una grande differenza, poiché il codice sorgente di un software non è un prodotto facilmente utilizzabile.


In realtà sto bene, dato che il codice sorgente fluttuerà da qualche parte e qualcuno ne trarrà beneficio. ;)
dott. Hannibal Lecter,

Davvero non capisco. Voglio dire, se riesco a ottenere i sorgenti, posso compilare, e niente mi impedisce di usarlo, giusto?
Camilo Martin,

@Camilo: cosa non ottieni?
Konrad Rudolph,

Le sezioni 4 e 6b della versione 3 della GPL coprono ciò che stai dicendo @KonradRudolph
Rudolf Olah,

Non devono fornire il codice sorgente gratuitamente se lo includono nel pacchetto quando vendono l'applicazione.
bdsl

5

Se vuoi impedire l'uso commerciale del tuo software, GPL non lo taglierà. GPL tende a essere evitato 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 (LinkSys, ad esempio), ma la maggior parte delle aziende preferirebbe non condividere il proprio prodotto con i concorrenti.

Non so se la licenza di attribuzione non commerciale senza derivati ​​di Creative Commons è ciò che desideri (l'unica limitazione che hai menzionato è l' uso commerciale ), ma in caso contrario, potresti dover avere una licenza preparata per te da un avvocato che contiene la lingua che garantisce i diritti che desideri avere i titolari di licenza.

Inoltre, una volta che si inizia a includere tali restrizioni uso non commerciale e non modificabilità , potrebbe non soddisfare i criteri per un open source licenza come definito dalla 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à fondamentale prima di selezionare i diritti e i limiti che imponi agli utenti del tuo software. La popolarità è più importante della modificabilità o della distribuzione o dell'uso o ...? Pensa ai tuoi obiettivi nel rilasciare il codice per cominciare, e con quale spirito lo fai o i termini in base ai quali concedi l'accesso possono avere l'effetto opposto.


Il business che utilizza il software GPL internamente non è un uso commerciale del software ...
alternativa

3
@mathepic, le parole "business" e "using" non ti sembrano simili a "uso commerciale"? Definizioni.uslegal.com/c/commercial
Huperniketes

@Huperniketes No, non lo fanno. Un'azienda che utilizza software (ad esempio un browser di database) è esattamente la stessa di una persona che utilizza quel software. Non c'è alcuna differenza, a condizione che il progetto non sia incorporato nel prodotto finale dell'azienda.
alternativa il

3
@mathepic, non sei corretto. Un'azienda è una preoccupazione commerciale - esistente a scopo di lucro. Qualsiasi attività in cui è impegnata è commerciale. E configurare un server web che esegue Apache per ospitare i manuali dell'utente è un uso commerciale di Apache. Il termine operativo, in senso giuridico, è uso , non distribuzione , non vendita o rivendita .
Huperniketes,

2
@dr, non è una violazione perché la licenza Apache non proibisce l'uso commerciale. apache.org/foundation/licence-FAQ.html#WhatDoesItMEAN "Ti consente di: scaricare e utilizzare liberamente il software Apache, in tutto o in parte, per scopi personali, interni alla società o commerciali;"
Huperniketes,

4

Se ciò che ti interessa è assicurarsi che il codice rimanga libero, ottenere miglioramenti e essere sicuro che chiunque possa utilizzarlo, MPL è la licenza giusta per te. È gratuito da utilizzare in qualsiasi prodotto, incluso il software commerciale, senza strane e arcane restrizioni al collegamento come impone la LGPL. Richiede che chiunque usi il tuo codice e lo modifichi rilasci le modifiche in MPL, ma non tocca né limita il resto del codice nel progetto.


Non conosco affatto MPL, ma sembra molto interessante. Finora, ho rilasciato solo codice PHP, quindi le restrizioni di collegamento non dovrebbero essere un problema, ma ho in programma di rilasciare anche un codice Mono, MPL potrebbe rivelarsi molto utile.
Dott. Annibale Lecter,

4

Se hai scritto tutto il tuo codice (vale a dire, se possiedi il tuo codice) puoi anche raddoppiare la licenza : pubblica il tuo codice in ad esempio GPLv3 e offri di venderlo (con un'altra licenza) a coloro che vogliono usarlo in modo meno restrittivo.

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

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


1

Se puoi effettivamente richiedere MPL o solo GPL dipende da una differenza critica:

I "diritti qui di seguito" comprendono il diritto concesso ai destinatari di collegare "Codice coperto" MPL con codice privato non MPL per formare un "Lavoro più ampio" (Lavori più grandi MPL 3.7). GPL non conferisce ai destinatari tale diritto. Pertanto, il destinatario non può modificare i termini della licenza per applicare la GPL invece di MPL.

Vedere questo .

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

In generale, se si stanno non facendo niente di meglio, scegliendo MPL oltre GPL da soli a meno che non si sta già utilizzando roba MPL. GPL assicurerà inoltre che i contributi vengano resi anche pubblicati.

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

Non è corretto per qualcuno creare una Modifica per la quale ha un brevetto, rendere la Modifica disponibile gratuitamente come richiesto dalla Licenza, quindi tornare e provare ad addebitare a tutti i diritti di brevetto.

MPL e GPL non sono del tutto compatibili.

Puoi vedere qui: MIT vs. BSD vs. Dual License per la discussione sull'implicazione delle doppie licenze.


L'incompatibilità di GPL avrebbe dovuto essere risolta con MPL v2.0. (Suppongo che questo post sia stato pubblicato prima che la v2.0 fosse rilasciata). Vedi la dichiarazione di GNU su MPLv2.0
mucaho,

0

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

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.