Perché devo mantenere la licenza del software open source nella root?

10

Quasi tutte le licenze di software open source richiedono (o almeno gli avvocati in genere suggeriscono di richiedere) agli utenti di includere la licenza completa nella root del progetto che stanno proteggendo.

Un avvocato con cui ho parlato suggerisce che questa è un'eredità dell'età del CD, quando era necessario che una licenza completa venisse inclusa in un cofanetto.

Ma oggi viviamo nell'era del cloud. Perché, ad esempio, non posso semplicemente ospitare la licenza completa sul mio sito web e includere il titolo + URL di quella licenza nell'intestazione dei miei file sorgente?

Bonus: Se è generalmente d'accordo che le licenze stabilite debbano essere mantenute intatte nella root, perché l'OSI di FSF non ha approvato una licenza a cui può fare riferimento per URL e cosa impedisce a qualcuno di creare quella licenza?

    
posta samthebrand 14.08.2013 - 15:40
fonte

3 risposte

24

Dalle domande frequenti sulla GPL (ma il consiglio è applicabile a tutte le licenze):

Why does the GPL require including a copy of the GPL with every copy of the program?

Including a copy of the license with the work is vital so that everyone who gets a copy of the program can know what his rights are.

It might be tempting to include a URL that refers to the license, instead of the license itself. But you cannot be sure that the URL will still be valid, five years or ten years from now. Twenty years from now, URLs as we know them today may no longer exist.

The only way to make sure that people who have copies of the program will continue to be able to see the license, despite all the changes that will happen in the network, is to include a copy of the license in the program.

(sottolineatura mia)

Nel momento in cui il sito che ospita la licenza scende o modifica i percorsi degli URL, le persone che dispongono di copie del software non possono più verificare quali diritti possono esercitare in modo sicuro. Supponiamo anche che tu possa in qualche modo garantire che quell'URL esatto sarà online per sempre: la possibilità per gli utenti di verificare che il loro uso del software sia legale dipende comunque dalla capacità di connettersi a quel particolare URL. Anche se questo requisito potrebbe non essere oneroso nella tua particolare città / paese / pianeta, potrebbe essere oneroso altrove. Non dovresti imporre questo requisito, specialmente quando la soluzione alternativa (incluso il testo completo della licenza) è banale.

Potresti rispondere a questo reclamo dicendo: "Quindi, se l'URL non funziona o non è accessibile, un descrittore non ambiguo come" GNU GPL v3 "dovrebbe essere sufficiente: le copie full-text della GPL sono abbondanti; può cercare la licenza da soli. " Mi vengono subito in mente alcuni problemi:

  1. Questo non generalizza agli identificatori di licenza che sono meno chiari (viene in mente la frase "licenza BSD").

  2. Questo non è generalizzato alle licenze che sono meno comuni o sono state personalizzate (viene in mente "GPL con eccezioni di collegamento": quali eccezioni di collegamento?). Quanto deve essere normale una licenza prima che sia ragionevole aspettarsi che un utente la trovi in modo affidabile per nome?

  3. Questo richiede ancora agli utenti di avere una connessione a Internet, che potrebbe non essere il caso, anche se avevano una connessione al momento in cui hanno ricevuto il software. (E potrebbero non aver avuto accesso a Internet quando hanno ottenuto il software: "l'era dei CD" non è ancora finita in molte parti del mondo.Per un ulteriore caso, considera le popolazioni nazionali che hanno un accesso diffuso a Internet ma censurano grandi parti di esso .) Una conseguenza del software liberamente ridistribuibile è che un destinatario potrebbe non ricevere una copia del software direttamente da te o attraverso un canale di distribuzione che avevi inizialmente previsto.

Un ultimo argomento contro i collegamenti delle licenze è indicato nel commento di MichaelT seguente: potrebbe consentire di modificare la licenza in modo dinamico e retroattivo. Questo potrebbe essere fatto intenzionalmente, ma potrebbe anche essere fatto per caso, se si è cambiata la licenza tra le versioni del software, ma si è utilizzato lo stesso link di licenza per entrambe le versioni, con conseguente scomposizione della vecchia licenza. Tale passaggio aggiungerebbe difficoltà per le persone che hanno bisogno di dimostrare di aver ottenuto la loro copia precedente con una licenza diversa dalla versione corrente.

Allora, perché devo mantenere la licenza nella root del progetto?

Non sono un avvocato, ma non ho mai visto argomenti convincenti che tu faccia abbia bisogno di mantenere le licenze nella radice del progetto. Anche la GPL, che specifica che la licenza deve accompagnare ogni copia dell'opera, tace su come deve accompagnare il lavoro. (Ciò potrebbe essere dovuto al fatto che la GPL potrebbe essere applicata in contesti non software, in cui la nozione di "root directory" non è significativa.)

Mantenere la licenza nella directory root è probabilmente una buona idea perché massimizza la probabilità che l'utente la vedrà, e quindi minimizza sia la frustrazione dell'utente sia la probabilità di reclami contro di te per aver cercato di nasconderlo la licenza in qualche directory oscura. Se disponi di molte licenze, potrebbe essere più sensato collocarle tutte nella propria cartella e includere un evidente README di progetto che contiene percorsi di file per trovare la licenza per ciascun componente.

L'inserimento della licenza nella directory root è una pratica utile anche perché può disambiguare le licenze dei moduli che sono concessi in licenza in modo diverso rispetto al lavoro nel suo insieme. Supponiamo che il mio progetto FooProj utilizzi il modulo autonomo BarMod. FooProj potrebbe avere una licenza GPL, mentre il modulo standalone potrebbe essere autorizzato dal MIT. Quando apro per la prima volta FooProj, vedo una copia della GPL nella root e capisco che il lavoro nel suo complesso è concesso in licenza GPL. Quando scendo nella cartella di BarMod, vedo un nuovo file di licenza lì, e capisco che il contenuto di questa cartella è concesso in licenza MIT. Naturalmente, questo è solo un aiuto utile; dovresti sempre indicare esplicitamente la licenza dei tuoi moduli in un file README, NOTICE o simile.

In breve, usare la radice del file è una questione di convenienza e chiarezza. Non ho visto alcun testo di licenza open source legalmente vincolante che lo richieda, né so di alcun motivo per cui sarebbe richiesto per legge. La tua licenza dovrebbe essere ragionevolmente facile da scoprire per il destinatario; includere la licenza nella radice del progetto è sufficiente, ma non necessario, per soddisfare questo criterio.

    
risposta data 14.08.2013 - 17:00
fonte
6

But today, we're living in the cloud age. Why can't I, for instance, simply host the full license at my website, and include the title + URL of that license in the header of my source files?

Esistono licenze che lo consentono. Apache 2.0, per esempio. Apache 2.0 richiede solo che ogni file sorgente contenga una piccola intestazione che punta all'URL canonico dell'Apache 2.0 License. Non è necessario riprodurre la licenza completa nell'albero dei sorgenti.

Dalla stessa licenza Apache 2.0:

APPENDIX: How to apply the Apache License to your work

To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets "[]" replaced with your own 
identifying information. (Don't include the brackets!) The text should be  
enclosed in the appropriate comment syntax for the file format. We also 
recommend that a file or class name and description of purpose be included 
on the same "printed page" as the copyright notice for easier identification 
within third-party archives.

    Copyright [yyyy] [name of copyright owner]

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    
risposta data 14.08.2013 - 18:30
fonte
3

Non è richiesto che sia nella radice del progetto. È semplicemente il posto più comune, e quindi il primo posto in cui le persone cercheranno per trovare la licenza. Del resto, anche se non fosse comune, è comunque probabile che il primo posto sarà la gente. Poiché la licenza esiste per informare, nascondere le informazioni non ha molto senso.

Se lo nascondi dietro un URL, non c'è garanzia assoluta che quell'URL sia sempre disponibile. Se si tratta di un file nella radice del progetto, per definizione sarà sempre disponibile.

In breve, questo è il posto più efficace e più user-friendly per dirlo.

    
risposta data 14.08.2013 - 19:26
fonte

Leggi altre domande sui tag