Librerie di licenze (che generano codice, ecc.) e limiti GPL

3

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:

  1. 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à).

  2. Chi vuoi usare il tuo codice?
    Chiunque

  3. Che cosa vuoi che accada alle modifiche?
    Essere back-ported al progetto il più possibile.

  4. Che cosa vuoi che accada al codice generato?
    Per non essere influenzato dalla mia scelta di licenza. Appartiene all'utente che lo ha generato.

  5. 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).

    
posta user111922 16.12.2013 - 22:50
fonte

2 risposte

2

La cosa principale da considerare quando si sceglie la licenza per un generatore di codice è la quantità del generatore di codice stesso che si concluderà nel suo output. Con la maggior parte dei compilatori (tutti?), Questa è una porzione così piccola che la licenza del compilatore non è considerata applicabile all'output del compilatore. Ciò rende possibile l'utilizzo di compilatori con licenza GPL per scrivere software closed-source, in quanto il prodotto finale non è considerato derivato dall'origine del compilatore.

D'altra parte, ci sono anche strumenti come Bison , dove una parte significativa dello strumento lo rende produzione. Siccome Bison è concesso in licenza con GPL, ciò significherebbe normalmente che anche il software che generi con Bison sarà coperto dalla GPL, se non fosse che la licenza Bison ha una clausola speciale per consentire l'uso del suo output (un set limitato) di) progetti closed source.

Poiché non desideri limitare gli usi del codice generato, ma vuoi che le modifiche al generatore e alle librerie siano rese pubbliche, la scelta migliore sembra essere quella di utilizzare LGPL o una licenza permissiva per le librerie (a condizione che può essere collegato dinamicamente al progetto dell'utente) e GPL (eventualmente con un'eccezione tipo Bison) o una licenza permissiva per il generatore di codice.

    
risposta data 17.12.2013 - 08:59
fonte
0

Dichiarazione di non responsabilità - IANAL e il seguente non è un parere legale. I dettagli esatti possono variare a seconda della tua giurisdizione.

L'interpretazione di FSF, che tende ad essere rigorosa, è che il codice generato non è coperto da licenza. Quindi puoi usare gcc per compilare un progetto commerciale e distribuire il binario. Allo stesso modo è consentita l'implementazione GPL dell'API di sistema. Tuttavia il collegamento con la biblioteca è proibito. So che non tutti gli strati concordano con la seconda interpretazione, ma non conosco i dettagli (il punto principale è quello che è un "progetto derivato") - se vuoi conoscere i dettagli potresti voler consultare un livello. In tal caso, la libreria di raggruppamento si sposterà verso "progetto derivato" (di nuovo IANAL).

Se non vuoi limitare in questo modo la pratica generale è usare LGPL, GPL con eccezione di link o qualsiasi altro copyleft licenza. Quest'ultimo è più liberale in quanto il primo richiede alla terza parte di poter ricollegare con una versione diversa della libreria (anche in questo caso - se le clausole sono applicabili, è oggetto di discussione). In generale, consiglierei di attenermi alle licenze ben conosciute come (L) GPL, MIT / BSD3, Apache 2.0 ecc. .

Tuttavia la licenza sta solo dando il permesso. Se pubblichi il codice su GPL, puoi ripubblicarlo con una licenza diversa purché tu sia il detentore del copyright o abbia una licenza per farlo (così, per esempio, se si prende il contributo di terzi è necessario chiedere il permesso). Puoi persino vendere una licenza ad alcune società come era un modello di monetizzazione di alcuni progetti FLOSS.

Resto finale: non sono uno strato e questo non era un consiglio legale.

    
risposta data 16.12.2013 - 23:39
fonte

Leggi altre domande sui tag