Quali sono le opzioni per la concessione in licenza di un progetto di codice con "zuppa di licenza" nelle fonti?

7

Sto lavorando a un progetto software che intendo pubblicare come FOSS in qualche modo. Il mio codice include parecchi file header / sorgente scritti da altri:

  • Migliori enumerati
  • Un GSL Lite leggermente modificato
  • Un adattamento di alcuni dei libstdc ++ di GCC 4.9.3 per l'uso nel codice lato dispositivo CUDA (quindi originariamente il codice FSF basato sul codice SGI)
  • Un'implementazione della classe opzionale C ++ (per i compilatori e le librerie pre-C ++ 14)

così come pezzi di codice direttamente sollevati o adattati dalle risposte su Stackoverflow.com. Le licenze fin da ora sono:

  • Licenze MIT e simili al MIT
  • GPL v3
  • Migliora la licenza del software
  • Licenza BSD a 2 clausole
  • Qualsiasi restrizione della licenza che si applica quando si utilizza il codice da StackOverflow

Ora, non sono davvero sicuro di quale licenza posso rilasciare sotto il mio progetto, né quale licenza dovrei rilasciarlo in queste circostanze. Il mio desiderio iniziale è di rilasciare una licenza GPL, e forse qualcosa di meno restrittivo in futuro. Le mie domande sono:

  1. Vista la zuppa di licenza sopra descritta, posso persino rilasciare il mio codice sotto una singola licenza, o dovrei / devo ogni parte di essa (mia e di chiunque altro) avere una licenza separata?
  2. Tra le popolari licenze di software Free / Open Source (mantenendo questa definizione intenzionalmente vaga), quali sono le possibili che potrei usare: 2.1 Per l'intero progetto? 2.2 Per il codice che è solo mio (vedendo come deve essere costruito con il resto del codice, non è mio)? 2.3 Per il codice che è una derivazione / modifica del codice con un'altra licenza?
  3. Come devo procedere se voglio emulare l'effetto di una delle licenze per l'intero progetto, anche se non posso semplicemente usarlo direttamente?

Note:

  • Questa domanda è simile a questo , tranne che non voglio mettere il mio lavoro di dominio pubblico; e non è solo un piccolo pezzo di codice che non è mio; e ci sono più licenze.
  • Finora ho incluso l'attribuzione tramite link web per tutto il codice SO e, naturalmente, ho mantenuto le note sul copyright per tutte le librerie / file che ho menzionato sopra.
posta einpoklum 10.09.2016 - 20:07
fonte

3 risposte

4
  1. Given the license soup described above, can I even release my code under a single license, or should/must each part of it (mine and everybody else's) have a separate license?

Entrambi. GPLv3 richiede che il tuo lavoro "nel suo insieme" sia autorizzato anche con licenza GPLv3. Parallelamente a questo, le parti possono (e devono, se si obbediscono ai loro termini) rimanere sotto la propria licenza. Secondo a questo link , la maggior parte delle licenze che hai citato sono direttamente compatibili con GPLv3, ad eccezione il codice di SO, che è sotto una licenza "Crea Commons Share Alike" (CC-BY-SA-3.0), che lo rende un po 'complicato. Questo post su SO meta e in particolare la seconda risposta ti dice che sarà possibile sollevare la licenza CC-BY-SA a 4.0, che lo rende compatibile con la GPL v3.

  1. Among the popular Free/Open Source Software Licenses (keeping this definition intentionally vague), what are the possible ones I could use: 2.1 For the entire project? 2.2 For the code that's just my own (seeing how it needs to be built with the rest of the code, that's not mine)? 2.3 For the code which is a derivation/modification of code with another license?

2.1: GPLv3 (presupposto che l'intero progetto sia un lavoro derivato dal codice GPLv3 incluso)

2.2: qualsiasi licenza che ti piace che sia compatibile con GPL v3 (vedi il mio primo link)

2.3: qualunque sia la licenza di quella parte del codice (quindi è necessario attenersi a GPLv3 per le parti già con licenza GPL)

  1. How should I proceed if I want to emulate the effect of one of the licenses for the whole project, even if I can't just use it directly?

È possibile (e serve) utilizzare le licenze in combinazione, e in particolare GPLv3 per l'intero progetto. Ciò significa che probabilmente dovrai includere non solo il testo della licenza GPL v3 per il progetto, ma anche i testi della licenza per le parti. Dovrebbe essere ovvio che devi chiarire quale licenza si applica a quale parte.

    
risposta data 10.09.2016 - 22:33
fonte
0

Buona fortuna.

Dovrai leggere tutte le licenze e leggere tutte le condizioni che hanno impostato per la pubblicazione. Sono abbastanza sicuro che GPLv3 richiede la licenza sotto GPLv3. Non ho idea se consenta l'uso simultaneo di un'altra licenza, ma sembra improbabile. E non ho idea se gli altri possano essere pubblicati sotto GPLv3.

Come ho detto, buona fortuna.

    
risposta data 10.09.2016 - 20:33
fonte
0

La maggior parte di queste licenze non è problematica. (MIT e BSD non lo sono, e non ho mai sentito parlare di problemi con le licenze / condizioni Boost o OpenStack.)

La licenza GPL tuttavia è problematica, in quanto significa in effetti che l'applicazione nel suo insieme deve essere rilasciata sotto GPL ... se la rilasci affatto.

  • Se la licenza del componente è in realtà LGPL non GPL, ciò non vale. LGPL cambierebbe tutto ......

  • Se il componente GPL ha una doppia licenza (o meno), potresti essere in grado di utilizzare una licenza alternativa. Ad esempio, negoziare un canone con il proprietario del copyright. Tuttavia, questo è a > > loro < < discrezione, non la tua.

  • GPL è davvero problematico se hai una buona ragione per essere problematico.

La vera GPL (non LGPL) non vincolerà la capacità dell'utente finale di utilizzare o modificare il software. Il principio fondamentale della GPL sta massimizzando la libertà per gli utenti finali. Tuttavia, GPL limita i limiti / vincoli che > > tu < < può essere inserito negli utenti finali e nelle organizzazioni a valle. (Ad esempio, non puoi farlo non fornendo parti del tuo codice sorgente e le organizzazioni a valle non possono farlo neanche.)

In breve, se sei soddisfatto di GPL, allora concedi in licenza il tuo codice come GPL e vai avanti. Altrimenti ... molto probabilmente dovrai sostituire i componenti GPL nella tua base di codice con qualcos'altro.

Si applicano le dichiarazioni di non responsabilità standard. IANAL, eccetera.

Aggiorna

Per rispondere alle tue domande dirette:

1) Given the license soup described above, can I even release my code under a single license, or should/must each part of it (mine and everybody else's) have a separate license?

Potresti autorizzare separatamente alcuni componenti se li distribuisci / le tue modifiche separatamente, ma il prodotto nel suo insieme deve essere GPLv3 se contiene componenti GPLv3. Certamente, questo è l'approccio più semplice.

2) Among the popular Free/Open Source Software Licenses (keeping this definition intentionally vague), what are the possible ones I could use:

2.1) For the entire project?

Devi utilizzare GPLv3, in base a ciò che hai detto.

2.2) For the code that's just my own (seeing how it needs to be built with the rest of the code, that's not mine)?

Devi utilizzare GPLv3 se il tuo codice deve essere collegato al codice GPLv3.

2.3) For the code which is a derivation/modification of code with another license?

Dipende dal codice e se lo si include come parte del tutto o distribuito separatamente. (Se stai distribuendo le tue modifiche alle librerie MIT / BSD / Boost separatamente dal tuo prodotto principale, allora potresti usare praticamente tutti i termini di licenza per le tue modifiche a quei componenti.)

2.4) How should I proceed if I want to emulate the effect of one of the licenses for the whole project, even if I can't just use it directly?

Non penso che sia un'opzione. I termini della licenza che si applicano a un particolare componente non possono essere "aggirati". Il tuo permesso di utilizzare il codice è condizionale sul tuo seguito i termini della licenza. Questo non è un problema per le licenze permissive perché mettono condizioni minime su di te. Ma per la GPL non puoi semplicemente "farla finita" scegliendo la relitto. Solo il proprietario del copyright originale può farlo.

In conclusione, se non riesci a convivere con le condizioni imposte dalla licenza GPLv3, NON utilizzare componenti / librerie GPLv3 / qualsiasi altra applicazione. Trova un'alternativa.

    
risposta data 11.09.2016 - 03:40
fonte

Leggi altre domande sui tag