Trovo che sia inutilmente duplicato per averlo in ogni file di codice, ma lo vedo sulla maggior parte dei progetti open source. Devo fare lo stesso o includere solo una singola licenza al di fuori del codice?
Trovo che sia inutilmente duplicato per averlo in ogni file di codice, ma lo vedo sulla maggior parte dei progetti open source. Devo fare lo stesso o includere solo una singola licenza al di fuori del codice?
Risposte:
Uno solo fuori codice, per favore! Non so degli altri, ma odio vedere la stessa cosa su ogni file.
Penso di averlo letto un paio di volte, semplicemente sfogliandolo.
evidence for the legal situation
. Perhaps a lawyer can add a link to a court decision
.
EULA è il termine sbagliato qui, poiché le persone che guardano il codice sorgente di solito non sono utenti finali.
Legalmente, non fa alcuna differenza; il copyright non deve essere dichiarato esplicitamente.
Fondamentalmente, tutto ciò che ottieni è un minor rischio che le persone violino accidentalmente i termini della tua licenza. Dovrai decidere quanto è importante per te.
Direi che il miglior compromesso è inserire un'intestazione molto breve contenente un collegamento (URL assoluto e relativo all'interno del progetto) al testo completo della licenza in ogni file di codice sorgente. In questo modo, chiunque abbia a cuore la licenza sa dove trovarla (idealmente, le persone che sono disposte a pagare enormi canoni di licenza; sicuramente vuoi che quelle persone siano in grado di contattarti!)
No, non è necessario inserire la licenza in ogni file del codice sorgente.
Se guardi più da vicino, la maggior parte delle applicazioni FOSS non lo fa. Mettono una dichiarazione sul copyright all'inizio di ogni file e una breve frase che ti dice a quale licenza si trova il file e dove puoi trovare il testo completo della licenza. Di solito ti indirizzano al file COPYING o LICENSE contenente il testo completo della licenza e / o un sito Web che contiene il testo completo (nel caso in cui il file COPYING non sia più presente).
Come ha detto Michael Borgwardt nelle sue risposte, legalmente non devi farlo. Ma è consigliabile per il codice sorgente che si intende distribuire poiché le persone possono vedere immediatamente chi ha il copyright e qual è la licenza.
Potrebbe dipendere dalla licenza. La GPL distingue tra preamble
elicense
. Afferma chiaramente che il (fastidioso) preambolo deve essere parte del codice :
Posso omettere il preambolo della GPL o le istruzioni su come usarlo sui propri programmi, per risparmiare spazio?
Il preambolo e le istruzioni sono parte integrante della GNU GPL e non possono essere omessi. In effetti, la GPL è protetta da copyright e la sua licenza consente solo la copia letterale dell'intera GPL. (Puoi usare i termini legali per fare un'altra licenza ma non sarà la GNU GPL.) (1)
Fonte: 1) http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble
Vedi anche http://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html
Un ebook gratuito di ifrOSS spiega e commenta la GPL 2 in lingua tedesca. Ce n'è un altro per GPL 3
Per una risposta fondata dovresti chiedere una consulenza legale che non è disponibile su sx. Se non riesci a trovare un avvocato per il tuo progetto (open source), dai un'occhiata alla rete legale di FSFE .
[...] attach the following notices to the program.
- i seguenti avvisi sono solo una piccola sezione della licenza completa. safest to attach them to the start of each source file
- più sicuro ma non richiesto. each file should have at least the "copyright" line and a pointer to where the full notice is found.
- l'unico requisito è la riga del copyright con un puntatore al resto. Va bene mettere la licenza completa in un file separato.
Penso che il ragionamento alla base dell'inserimento in ogni file sia legale. Se l'accordo si trova in ogni file, non c'è possibilità che qualcuno inciampi in un pezzo di codice senza essere esposto alla licenza.
Potrebbe non essere buono, ma tutti i grandi lo usano, quindi se è solo dolore visivo, cercherò una ragione migliore per non fare lo stesso.
Se stai usando la GPL questo è più un problema, ma se stai usando licenze di dominio pubblico come BSD o MIT, non penso che ti interessi davvero quello che le persone fanno con il codice comunque. Suppongo che dipenda da quanto sia rigida la tua licenza.
IANAL,
Supponendo che tu stia parlando di licenze, non di EULA, puoi mettere la licenza all'esterno. Questo è quasi sempre fatto con licenze molto lunghe come la GPL. Sarebbe sciocco mettere l'intera licenza GPL in ogni file. Di solito dovresti avere solo un tipo di avviso che dice dove puoi trovare la licenza effettiva. Questo è perfettamente legale. Tuttavia, con licenze molto brevi come BSD / Apache / MIT / qualunque cosa, è più semplice includere la licenza in ogni file, poiché l'avviso che dice dove trovare la licenza sarebbe lungo quasi quanto la licenza stessa.
Dipende da cosa impone la licenza. La GPL, ad esempio, ti dice di mettere un breve avviso in ogni file sorgente, includere l'intera licenza da qualche parte nella tua distribuzione sorgente e rendere la tua distribuzione sorgente disponibile a chiunque ottenga una copia della distribuzione binaria.
Se non sei d'accordo con questo, ed è il TUO codice, sei libero di scegliere una licenza più gradevole o crearne una tua.
Se il tuo codice verrà compilato in modo da distribuire solo un file binario, allora non ha importanza. Perché quando crei un file binario, i commenti vengono rimossi prima che abbia luogo il processo di compilazione. È importante solo se distribuirai il codice sorgente effettivo sia open source che closed source. Questo tipico è importante se distribuirai un'applicazione in un linguaggio di scripting che non si compila.
Non è necessario per la licenza, un singolo file esterno andrà bene fintanto che è chiaro quali file copre.
Tuttavia per il copyright dovresti avere l'avviso di copyright su ogni parte di testo.
Quello che faccio è inserire un commento di due righe nella parte superiore del file, indicando il nome della mia azienda, la data dell'ultima revisione e il nome della licenza del file di origine, quindi in fondo al file una versione breve del licenza.
Naturalmente, la licenza completa (tutte in caso di licenze multiple) è sempre inclusa nel file sorgente e nelle directory di rilascio.