Voglio davvero aprire un progetto che sia iniziato come un hobby personale, ma sono un ignorante dei dettagli della licenza.
Questo progetto fornisce alcune librerie per un determinato linguaggio $ e alcune utilità di riga di comando wrapper per quelle librerie.
Queste librerie, attraverso molte cose, generano più codice nella stessa lingua, codice che può essere riutilizzato dal chiamante.
Sulle mie bozze, ho sempre usato una licenza in stile MIT per brevità, ma sono copie inedite che sto esaminando proprio ora per unirmi su una versione finalmente rilasciata.
Vorrei utilizzare le norme di stile GPL per l'utilizzo / contributo di il mio codice (consentitemi di chiamarlo un framework).
Ma.
È possibile scegliere GPLv2 (3?) per il mio progetto, limitare le cose che un dato utente può fare con il codice generato o gestito dalle mie librerie / utilità? (cioè profitto commerciale di tale codice generato senza rilasciare i suoi miglioramenti / modifiche al mio codice)
C'è qualcosa da considerare (in un linguaggio semplice) quando il codice di licenza che genera il codice?
Aggiornamento:
Per provare a rispondere ad alcuni commenti:
-
Che cosa desideri ottenere con la tua licenza?
I migliori obiettivi per la salute del progetto (dal punto di vista di un progetto opensource basato sulla comunità). -
Chi vuoi usare il tuo codice?
Chiunque -
Che cosa vuoi che accada alle modifiche?
Essere back-ported al progetto il più possibile. -
Che cosa vuoi che accada al codice generato?
Per non essere influenzato dalla mia scelta di licenza. Appartiene all'utente che lo ha generato. -
E i soldi: se l'utente fa soldi, vuoi che incida sulla licenza?
Se l'utente fa soldi con il codice generato, ottimo. Se l'utente guadagna modificando il mio codice, vorrei forzare la pubblicazione delle modifiche.
Ho fatto una terapia di gruppo con quelle risposte. Ora, scegliendo GPL (2? 3?) Potrei essere ok o no?
Update2
So they have to bundle/compile your library in with theirs when they deploy it, in order for it to run?
Sì, la libreria deve essere installata in precedenza o in bundle con il risultato (esiste un'opzione per questo).