Posso avere due licenze in un repository? Uno per un'azienda e un altro per tutti gli altri?

2

Quindi, ho scritto un piccolo pezzo di software (davvero un piccolo pezzo di software) e voglio aprirlo usando la licenza Apache per TUTTI, ma per una società, per quella società voglio che la licenza sia GPL.

È possibile? Se sì, come dovrei implementarlo? Ho appena aggiunto una sezione Licenza nel readme github che spiega che è open source per tutti tranne che per "This Company"?

    
posta Andres 02.11.2015 - 17:53
fonte

3 risposte

5

In teoria, puoi farlo. Ma praticamente, non funzionerà.

Quando si esegue la licenza di qualcosa come open source, non è necessario licenziarlo a tutti. Puoi scegliere di concedere la licenza solo a un pubblico selezionato.

Ma qualsiasi licenza open source include un diritto illimitato alla sub-licenza. Ciò significa che chiunque riceva una copia sotto la licenza Apache può concederlo in sublicenza alle stesse condizioni a chiunque desideri, tra cui "Questa azienda", e non c'è nulla che si possa fare contro di essa (non finché si desidera chiamare il proprio software Open Source e la sua licenza Apache).

Naturalmente sei libero di creare una licenza per il pastello basata sulla licenza Apache che proibisce la ridistribuzione a "This Company". È il tuo lavoro e tu solo puoi decidere chi può usarlo e per cosa. Ma quando utilizzi il tuo copyright in questo modo, non chiamarlo open source.

    
risposta data 02.11.2015 - 18:48
fonte
3

Due licenze in un repository sono qualcosa che può essere fatto. Questo è noto come doppia licenza e in genere si verifica quando un autore desidera rilasciare software con licenze diverse in modo che possa essere utilizzato in progetti restrittivi (un progetto BSD non può includere il codice GPL, quindi un autore potrebbe desiderare di rilasciare sotto BSD e GPL).

Tuttavia, una parte fondamentale della definizione open source è "Nessuna discriminazione contro persone o gruppi" - non è possibile limitare un'azienda dall'utilizzo del software sotto Apache se è disponibile per tali licenze. Quindi, alla domanda di "licenza per una società sotto GPL e tutti gli altri sotto Apache" - no, non puoi farlo, o meglio non puoi farlo in un modo che ha qualche dente.

Qualcos'altro che viene occasionalmente fatto è che si possa rilasciare pubblicamente sotto una licenza (ad esempio AGPL) e che offrire la possibilità per le organizzazioni di pagare per ricevere la licenza sotto un'altra (meno restrittiva). Un esempio di questo può essere visto con iText , che rilascia il loro software sotto AGPL, ma fornisce un'altra licenza per le aziende che desiderano utilizzare una licenza diversa non è così restrittivo (e presumibilmente non è una licenza open source).

    
risposta data 02.11.2015 - 20:00
fonte
1

No.

Uno dei principi fondamentali del software open source è "nessuna discriminazione": non è possibile avere una licenza per alcune entità e un'altra per altre. Se vuoi rilasciare il tuo software con la licenza Apache ad alcune entità, devi rilasciarlo sotto quella licenza a tutti.

    
risposta data 02.11.2015 - 18:08
fonte

Leggi altre domande sui tag