Come utilizzare le licenze Open Source e cosa mi consigliate

8

Ho un codice che vorrei condividere, ma mi piacerebbe pubblicarlo usando una licenza open source. Ma non so come devi usare quelle licenze.

Come si deve attivare una licenza open source? Basta includere il testo della licenza in tutti i file? Cos'altro devo fare? Devo comprare qualcosa giusto? Includere un file readme.txt in tutte le directory? Voglio dire, cosa devo fare se voglio che il mio codice sia protetto dal test legale di una licenza?

La seconda domanda è quale sia la licenza migliore per queste condizioni:

  • Non mi interessa cosa fanno le persone con il mio codice, scopi educativi, per fare soldi, non mi importa di quello che vogliono fare con esso.
  • Ma voglio che le persone non cancellino il mio nome dal codice, e se usano il mio codice li costringono a menzionarmi. Se cambiano il mio codice e qualcuno chiede queste modifiche, danno il codice con le modifiche.
  • Ma non voglio costringere le persone a pubblicare il codice delle loro applicazioni, anche se stanno usando il mio codice.

Qual è la migliore licenza per questo scopo?

    
posta Pedro Ballesteros 22.04.2011 - 13:53
fonte

7 risposte

13

Ecco una guida pratica:

http://i.stack.imgur.com/GvOBw.png

Riferimenti a PDF e Graffle versioni del diagramma di flusso sopra sono disponibili su Il blog di Karl Fogel .

    
risposta data 25.04.2011 - 22:22
fonte
5

Utilizza l'originale licenza BSD a 4 clausole .

  • I don't care what people do with my code, educational purposes, to make money, I don't mind whatever they want to do with it.

  • But I don't want to force people to publish the code of they applications, even if they are using my code.

Come la maggior parte delle licenze open source, consente all'utente di modificare e ridistribuire la fonte. Permette loro di usarlo per qualsiasi scopo.

  • But I want people don't delete my name from the code, and If they use my code force them to mention me.

A differenza della maggior parte delle moderne licenze approvate OSI, questa ha la cosiddetta "clausola pubblicitaria", nel senso che gli autori di software che utilizzano la tua libreria devono menzionare che il loro prodotto contiene codice sviluppato da te.

Testo della clausola:

"Tutti i materiali pubblicitari che menzionano le funzionalità o l'uso di questo software devono mostrare la seguente conferma:    Questo prodotto include software sviluppato da <organization> . "

  • If they change my code and someone ask for those modifications, they give the code with the modifications.

Questo è un po 'problematico. Solo le licenze copia-sinistra richiedono questo. L'uso della licenza copy-left è in contraddizione con il resto delle tue esigenze.

    
risposta data 24.04.2011 - 14:02
fonte
3

Non sono un avvocato e il seguente non è un parere legale, ma quello che ho raccolto sulla legge sul copyright come programmatore.

Se crei un software, ne hai il copyright, a meno che qualcuno non ti abbia pagato per scriverlo. Dovresti indicare il copyright nel software o in README , seguito dai termini della licenza o, se si utilizza una licenza dettagliata come la GPL, un puntatore a dove è possibile trovare la licenza. Se ora pubblichi il tuo software, è coperto dalla licenza. Dovresti informare l'utente della licenza, ad es. in un programma di installazione o nel manuale.

Il tipo di licenza che vuoi suona come un copyleft, ma più debole della GPL. Considera la GNU Lesser General Public License (LGPL).

    
risposta data 22.04.2011 - 14:00
fonte
2

La Free Software Foundation ha avuto molto successo nel perseguire un contenzioso contro persone che hanno violato i termini della loro licenza open source. Ricordo un articolo del 2006 che mostrava che erano 4 per 4 in quel momento; più recentemente hanno risolto cause contro Cisco, Skype e Verizon, il che ha comportato pagamenti alla FSF. In generale, tuttavia, la causa inizia solo dopo che i tentativi di ripetuti di informare il convenuto dei loro obblighi sono stati fatti. Quindi, per risparmiare tempo, è necessario che l'utente faccia clic su un pulsante "Accetto" in una finestra di dialogo di licenza standard, salva il file dei termini della licenza nella propria cartella "licenza" e si dovrebbe essere tutti impostati.

Per quanto riguarda la licenza particolare da usare, sembra molto che tu voglia la LGPL, che fa tutto ciò che chiedi tranne forse la parte di attribuzione - potresti dover fare una clausola a parte.

    
risposta data 22.04.2011 - 14:03
fonte
2

Non penso che esista una licenza che corrisponde esattamente alle tue esigenze. Sembra che tu voglia un qualche tipo di miscela di AGPL e LGPL. Ma la FSF non è ancora riuscita a creare una simile licenza! Puoi vedere la loro risposta ufficiale qui: link

    
risposta data 22.04.2011 - 14:03
fonte
1

How do you have to activate an open source license? Just including the text of the license in all files?

Non so quale sia il requisito legale esatto, ma la pratica normale è includere un piccolo commento di intestazione all'inizio di ogni file:

  • che indica chi possiede il copyright e
  • che afferma che il file è coperto da tale e quella licenza, dicendo al lettore il nome del file che contiene il testo della licenza e indicando dove trovare il testo se il file è mancante.

What else do I have to do? Do I need to buy some right?

No.

Include a readme.txt in all the directories?

No. Un singolo file README nella radice dell'albero delle directory è una buona idea, ma non obbligatorio.

I mean, what do I have to do if I want my code is protected by the legal test of a license?

Per essere assolutamente sicuro, parla con un avvocato.

Per quanto riguarda i requisiti di licenza.

(1) I don't care what people do with my code, educational purposes, to make money, I don't mind whatever they want to do with it.

Questo è un tipo di non-requisito. Pochissime licenze vietano alle persone di guadagnare denaro, utilizzare nell'istruzione, ecc.

Tuttavia "fai quello che vogliono" contraddice letteralmente alcuni dei tuoi altri requisiti.

(2) If they change my code and someone ask for those modifications, they give the code with the modifications.

Il requisito di fornire il codice sorgente di qualsiasi modifica apportata è presente in GPL, LGPL, AGPL, ma non in Apache, BSD e altre licenze comuni.

(3) But I want people don't delete my name from the code, and If they use my code force them to mention me.

La maggior parte delle licenze richiede che le attribuzioni nel codice rimangano nel codice.

Tuttavia, "costringeteli a menzionarmi" è difficile, e poche se nessuna licenza lo dice. In effetti, la posizione della FSF è che un tale requisito rende il tuo codice non libero ...

(4) But I don't want to force people to publish the code of they applications, even if they are using my code.

Poche licenze costringono le persone a pubblicare il codice della propria applicazione come ovvio. Anche la più radicale famiglia GPL ti consente di utilizzare e modificare software per scopi puramente privati.

Tuttavia GPL e altri obbligano le persone a pubblicare l'origine se le persone distribuiscono un'applicazione basata sul proprio. (Le condizioni precise dipendono dalla licenza: ad esempio, LGPL consente alle persone di collegare il proprio codice con il proprio senza costringerlo a pubblicare le proprie. D'altra parte GPL richiede che pubblichino il proprio codice in tali circostanze e AGPL lo estende ad altre aree .)

Nota anche che i requisiti (2) e (4) sono letteralmente contraddittori.

In sintesi, devi essere in grado di esprimere chiaramente i tuoi requisiti per una licenza. Se non puoi farlo, allora hai poche possibilità di trovare una licenza che soddisfi i tuoi requisiti.

O forse dovresti parlare con un avvocato. (Avrà ovviamente bisogno di farti un sacco di domande per scoprire quali sono le tue reali esigenze.)

    
risposta data 24.04.2011 - 09:58
fonte
0

Puoi usare qualunque licenza tu voglia (anche creare da sola) sul lavoro che ti appartiene (hai il copyright) questo di solito è fatto includendo una copia della licenza nel file COPYING insieme alla fonte codice.

Quello che stai cercando è Licenza in stile XFree86 1.1 ( che è una licenza permissiva e non copyleft (non è necessario aprire la fonte se la si utilizza ma richiede un riconoscimento) e soddisfa tutti i requisiti.

  1. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: "This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors", in the same place and form as other third-party acknowledgments. Alternately, this acknowledgment may appear in the software itself, in the same form and location as other such third-party acknowledgments .

Puoi sostituire il nome xfree86 con il tuo nome e distribuirlo.

    
risposta data 24.04.2011 - 09:48
fonte

Leggi altre domande sui tag