La licenza open source il mio codice mi limita in seguito?


29

Supponiamo che io sviluppi una libreria utile e decida di pubblicarla come open source. Qualche tempo dopo ho bisogno di fare qualcosa che non sia conforme alla licenza open source. Mi è permesso farlo?

Come devo pubblicare il software in modo da mantenerne la proprietà e non impedirmi in alcun modo di utilizzare la libreria in futuro?

Tieni presente che almeno in teoria, altri sviluppatori potrebbero decidere di contribuire al mio progetto open source. Posso specificare in una licenza che come sviluppatore originale ottengo anche la proprietà dei loro contributi? Non fraintendermi qui, non sto cercando di essere malvagio e ottenere la proprietà del lavoro di altri - Voglio solo mantenere la mia proprietà e se qualcuno pubblica un bugfix importante potrei essere reso incapace di usare il codice originale a meno che Uso anche il suo lavoro.


6
Rilasciare con una licenza non ti impedisce di rilasciare anche con altre - dopotutto possiedi ancora il codice. Il codice sorgente ha una doppia licenza (o tri- o più) per tutto il tempo.
Nota per se stessi: pensa a un nome del

Risposte:


44

Mantieni sempre la proprietà sotto licenze open source. Il lavoro che hai creato è di tua proprietà e puoi fare tutto ciò che vuoi con esso (entro i limiti legali, ovviamente), incluso consentire ad altre persone di usarlo secondo i termini di una licenza open source. Se si desidera utilizzarlo per un progetto proprietario, è possibile farlo, a meno che non si siano completamente ceduti i diritti a qualcun altro per contratto. Ma questo non è ciò che fanno le licenze open source. Si tratta di condividere l'utilità, non di rinunciare alla proprietà.

Le cose ottengono un po 'di adesivo quando altre persone iniziano a contribuire. È il loro lavoro, quindi, non il tuo, e devi ottenere il loro permesso. Una cosa che puoi fare è pubblicare la tua libreria con una doppia licenza. Questo è ciò che fa Sam Lantinga, il principale creatore e manutentore di SDL . Poiché a Apple non piacciono le librerie a collegamento dinamico per iOS e il rispetto della LGPL in un'app collegata staticamente è più un problema di quanto valga la pena, pubblica SDL sia sotto la LGPL sia con una licenza commerciale per le app statiche per iPhone. Quando qualcuno invia una patch, chiede esplicitamente il permesso di distribuire la propria patch nella libreria con entrambe le licenze e, se non gli piace, non la aggiunge alla base di codice.

EDIT: il mio esempio non è più preciso. Qualche tempo fa Sam ha cambiato il modello (non so perché; forse si è solo stancato dei problemi di amministrazione) e ora concede in licenza SDL con una licenza altamente permissiva in stile zlib. Ma lo faceva in questo modo.


1
+1 soprattutto per mostrare come gestire i contributi di altri autori.
Frank Shearar,

5

Non sono un avvocato e questo non è un consiglio legale. Se hai bisogno di assistenza legale, assumi un avvocato.

Puoi assolutamente duplicare la licenza del tuo software: Trolltech lo ha fatto per molti anni con Qt e Linden Lab lo ha fatto con il client SecondLife.

Puoi usare qualsiasi licenza ti piaccia. Alcune licenze sono compatibili con ambienti commerciali chiusi, come le licenze Mozilla MPL, MIT e BSD e (credo) Sun CDDL e le licenze Apache.

Tuttavia, se hai bisogno della flessibilità necessaria per rilasciare il tuo software sia come progetto open source che come prodotto open source, sei assolutamente autorizzato a farlo come autore originale. L'unico problema è il problema dei contributi degli utenti. Non puoi incorporare i contributi di altri nella tua versione commerciale del software se non ti rilasciano legalmente il Copyright. GNU lo fa per il solo motivo che aggiorneranno le loro licenze in futuro.

Tieni presente che agli utenti e in particolare ai contributori probabilmente non piacerà questo, quindi influenzerà la comunità attorno al tuo progetto, probabilmente negativamente.

Ancora una volta, consultare un avvocato per i dettagli.


MIT, alias la licenza "fai qualunque cosa tu voglia".
Evan Plaice,

2

Anche io non sono un avvocato, ma ...

Oltre alle licenze restrittive (che ti costringono a Open Source ogni progetto che le utilizza) come GPL, ci sono anche licenze non restrittive (il che significa che puoi utilizzare tale software in un progetto commerciale) come Lesser GPL o Apache License (2.0 ?). Quindi forse puoi semplicemente rilasciare il tuo software a condizioni non restrittive.


2
GPL non cambia la proprietà del codice. Se pubblico codice su GPL, questo si applica ad altre persone che usano il codice: ho tutte le autorizzazioni che mi piacciono e posso farne tutto quello che voglio (tuttavia, poiché la legge non funziona all'indietro, non posso limitare l'uso delle persone che hanno utilizzato il software su GPL).
Maciej Piechotka,

2
Ciò che intendevo dire restrittivo è che GPL costringe gli utenti della tua libreria a rilasciare il proprio software con licenza compatibile GPL, mentre licenze come L-GPL, Apache, ... (BSD?) No. Ora, non sono sicuro che se hai modificato il tuo codice GPL e qualcuno lo apporta modifiche, puoi semplicemente rilasciarlo commercialmente come se nulla fosse successo. Penso che devi prima sbarazzarti delle aggiunte ... Ma se la libreria / framework ha la licenza L-GPL, puoi usarla in applicazioni commerciali proprio come chiunque altro, questo è certo. Spero abbia senso.
Paweł Dyda,

Questo è esattamente quello che faccio quando scrivo una biblioteca. Non ha molto senso rilasciare una libreria commerciale, di solito è l'applicazione dell'utente finale che viene rilasciata in quel modo, e se è una licenza non restrittiva posso usare la libreria nel mio progetto. E non importa nemmeno se l'ho scritto o qualcun altro.
Goran Jovic,

@Goran, puoi utilizzare la libreria nel tuo progetto, indipendentemente dalla licenza . È la tua biblioteca e il tuo progetto: la licenza si applica ad altre persone, non a te.
TRiG
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.