In questo articolo parleremo un po' di diritti d'autore, ma principalmente della scelta di una licenza libera per un framework RAD e per i prodotti open source basati su di esso. Discuteremo della licenza permissiva Apache 2.0, di cosa ci ha portato a sceglierla e quali decisioni abbiamo affrontato nel processo.
Il processo di scelta della licenza è piuttosto complesso e bisogna affrontarlo con una buona preparazione, e se non sei un fortunato possessore di una laurea in giurisprudenza, ti troverai di fronte a un mare di informazioni su diverse licenze libere. La cosa principale da fare è stabilire una serie di criteri restrittivi. Durante la discussione e la riflessione, tu e il tuo team potrete capire cosa desiderate permettere agli utenti del vostro prodotto e cosa vietare. Quando avrete già una descrizione, sarà necessario sovrapporla alle licenze esistenti per identificare quella in cui il numero maggiore di punti coincide. Sembra semplice, certo, ma nella realtà, di solito, anche dopo aver discusso, rimangono domande.

Per prima cosa — un link a , un sito utile che abbiamo utilizzato attivamente. Fai particolare attenzione alla delle licenze secondo 13 criteri principali. Che l'inglese e la pazienza siano con te.
Il tormento della scelta
Iniziamo con le caratteristiche generali delle licenze per . L'OSS implica esclusivamente una licenza libera che non limita la distribuzione commerciale e non commerciale secondo il modello . Pertanto, pubblicando online software sotto licenza libera, non è possibile limitare completamente la sua trasmissione, distribuzione e vendita da parte di terzi, e bisogna solo prepararsi moralmente a questo.
Una licenza libera dà all'utente il diritto di partecipare personalmente alla reverse engineering del software o modificarlo in altri modi accessibili. La maggior parte delle licenze non consente di rinominare il prodotto o di apportare qualsiasi modifica che alteri i diritti dell'autore e/o del proprietario del sistema.
Le principali domande che ci interessavano riguardo le licenze libere erano:
- Le modifiche apportate al software devono essere registrate e non hanno alcuna relazione con il titolare dei diritti del sistema?
- Il nome del software derivato non deve corrispondere al nome del software del detentore dei diritti?
- È possibile modificare la licenza per le nuove versioni in un'altra, inclusa quella proprietaria?
Esaminando attentamente l'elenco delle licenze più comuni, abbiamo scelto alcune che abbiamo esaminato più in dettaglio. Le licenze potenziali per erano: GNU GPLv3, Apache 2.0, MIT e MPL. MIT abbiamo subito escluso, poiché si tratta di una licenza permissiva non copyleft che permette l'uso, la modifica e la distribuzione del codice praticamente senza restrizioni. Non ci soddisfaceva, poiché volevamo che la licenza regolasse i rapporti tra il detentore dei diritti e l'utente. La maggior parte dei progetti non troppo grandi su GitHub è rilasciata sotto licenza MIT o sue varie forme. La licenza stessa è molto breve e l'unico divieto è l'attribuzione al creatore del software.
La successiva è stata la licenza MPL 2.0. Ammettiamo che non ci siamo arrivati subito, ma dopo un'analisi più approfondita l'abbiamo rapidamente esclusa, poiché il principale svantaggio è che la licenza si applica non all'intero progetto, ma a file singoli. Inoltre, se un utente modifica un file, non può cambiare la licenza. In effetti, per quanto diligentemente tu possa modificare un progetto open source, non potrai monetizzarlo a causa di questa licenza. Questo, tra l'altro, non riguarda il titolare del copyright.
Un problema simile persiste anche con la licenza GNU GPLv3. Essa richiede che ogni file rimanga sotto la stessa licenza. GNU GPL è una licenza copyleft che richiede che i codici sorgente delle opere derivate siano aperti e rimangano sotto questa stessa licenza. Quindi: modificando due righe di codice, sarai costretto a registrare le tue modifiche e nel successivo utilizzo o distribuzione dovrai mantenere il codice sotto GNU GPL. In questo caso, è un fattore limitante per l'utente del nostro progetto, non per noi. Ma è vietato cambiare la GPL con qualsiasi altra licenza, anche all'interno delle versioni GPL. Ad esempio, se cambi LGPL (estensione su GPL) su GPL, non ci sarà alcun ritorno a LGPL. Questo punto è stato decisivo nel voto contro.
In generale, la nostra scelta inizialmente tendeva verso GPL3 proprio a causa della distribuzione del codice modificato sotto la stessa licenza. Pensavamo che in questo modo avremmo potuto proteggere il nostro prodotto, ma abbiamo percepito meno rischi in Apache 2.0. Secondo la Free Software Foundation, GPLv3 è compatibile con Apache License v2.0, il che significa che c'è sempre la possibilità di cambiare la licenza da Apache License v2.0 a GPL v3.0.
Apache 2.0
— licenza permissiva bilanciata con un focus sui diritti d'autore. Ecco quali risposte ha fornito alle domande che ci interessano. Le modifiche apportate al software devono essere documentate e non hanno alcuna relazione con il titolare dei diritti del sistema? Sì, tutte le modifiche devono essere registrate e non ci assumiamo responsabilità per il codice sorgente o per le modifiche apportate. Il file con le modifiche deve essere allegato al codice in cui sono state effettuate queste modifiche. Il nome del software derivato non deve coincidere con il nome del software del titolare dei diritti? Sì, il software derivato deve avere un nome diverso e un marchio diverso, ma deve citare il reale autore. È possibile cambiare la licenza per eventuali nuove versioni in un'altra, anche in una proprietaria? Sì, è possibile rilasciarlo sotto licenze diverse, l'Apache 2.0 non limita l'uso di licenze commerciali e non commerciali.
Inoltre, rilasciando nuovi prodotti basati su codice aperto sotto Apache 2.0 o prodotti con funzionalità aggiuntive, non è necessario utilizzare la stessa licenza. Di seguito puoi vedere un'immagine con i termini e le condizioni della licenza Apache 2.0.

La licenza prevede l'obbligo di mantenere e menzionare i diritti d'autore e la licenza sotto cui viene rilasciato il software. È obbligatoria la presenza dell'avviso di copyright che, con il nome del titolare dei diritti e la licenza, protegge i diritti dell'autore originale del software; anche se il software viene rinominato, trasferito o venduto sotto un'altra licenza, il segno dell'autore rimarrà. A tal fine, è possibile utilizzare anche un file NOTICE e allegarlo al codice sorgente o alla documentazione del progetto.
Rilasciamo in accesso pubblico su GitHub tutti i nostri prodotti sotto licenza Apache 2.0, ad eccezione di , il cui codice sorgente è stato pubblicato ad aprile di quest'anno sotto licenza GPLv3 su GitHub dal Centro Tecnologico Sociale del Far East. Attualmente, oltre al e ai suoi pubblicati realizzati sul framework. Su Habr abbiamo già parlato di e di .
Dettagli tecnici sul framework
IONDV. Framework – un framework open source su node.js per la creazione di applicazioni web di alto livello basate su metadata, che non richiede competenze di programmazione avanzate.
La funzionalità principale dell'applicazione si basa su un registro dati — il modulo Registro. Questo è un modulo chiave, progettato specificamente per l'elaborazione di dati in base a strutture di metadati, inclusa la gestione di progetti, programmi, eventi e altro. Inoltre, il progetto utilizza un modulo portale per visualizzare modelli di dati arbitrari – qui è implementato il front-end del registro delle pratiche archivistiche.
Per il database si utilizza MongoDb — qui vengono memorizzati sia le impostazioni dell'applicazione che i metadati e i dati stessi.
Come applicare la licenza al proprio progetto?
Aggiungi un file LICENSE con il testo della licenza nel repository del tuo progetto e voilà, il progetto è protetto da Apache 2.0. È necessario indicare il titolare dei diritti, che corrisponde a copiright notice. È possibile farlo nel codice sorgente o nel file NOTICE (un file di testo che elenca tutte le librerie coperte dalla licenza Apache insieme ai nomi dei loro autori). Puoi mettere il file nel codice sorgente o nella documentazione distribuita insieme al lavoro. Ecco come appare da noi:
Copyright © 2018 LLC «ION DV».
Licensed under the Apache License, Version 2.0
Testo della licenza Apache 2.0
Apache License
Versione 2.0, Gennaio 2004
TERMINI E CONDIZIONI PER USO, RIPRODUZIONE E DISTRIBUZIONE
Definizioni.
«Licenza» indica i termini e le condizioni per l'uso, la riproduzione,
e la distribuzione come definiti dalle Sezioni 1 a 9 di questo documento.«Licenziante» indica il titolare del copyright o l'entità autorizzata dal
titolare del copyright che concede la Licenza.«Entità Legale» indica l'unione dell'entità operante e di tutte le
altre entità che controllano, sono controllate da, o sono sotto controllo comune
con quell'entità. Ai fini di questa definizione,
«controllo» significa (i) il potere, diretto o indiretto, di causare la
direzione o gestione di tale entità, sia per contratto che
altre modalità, o (ii) la proprietà di almeno cinquanta percento (50%) o più delle
azioni in circolazione, o (iii) la proprietà sostanziale di tale entità.«Tu» (o «Tuo») indica un individuo o un'Entità Legale
che esercita i diritti concessi da questa Licenza.La forma «Fonte» indica la forma preferita per apportare modifiche,
inclusi ma non limitati al codice sorgente software, documentazione
sorgente e file di configurazione.La forma «Oggetto» indica qualsiasi forma risultante da trasformazione
meccanica o traduzione di una forma Source, inclusi ma
non limitati al codice oggetto compilato, documentazione generata,
e conversioni in altri tipi di media.«Opera» indica l'opera di autorialità, sia in forma Source che
Object, resa disponibile sotto la Licenza, come indicato da un
avviso di copyright incluso o allegato all'opera
(un esempio è fornito nell'Appendice qui sotto).«Opere Derivate» indica qualsiasi opera, sia in forma Source che Object
che è basata su (o deriva da) l'Opera e per la quale le
revisioni editoriali, annotazioni, elaborazioni o altre modifiche
rappresentano, nel loro complesso, un'opera originale di autorialità. Ai fini
di questa Licenza, le Opere Derivate non includeranno opere che rimangono
separabili da, o semplicemente collegano (o legano per nome) alle interfacce di,
l'Opera e le Opere Derivate di essa.«Contributo» indica qualsiasi opera d'autore, inclusa
la versione originale dell'Opera e qualsiasi modifica o aggiunta
a quell'Opera o Opere Derivative, che è intenzionalmente
inviata al Licenziante per l'inclusione nell'Opera dal proprietario dei diritti d'autore
o da un individuo o Entità Legale autorizzata a inviare per conto del
proprietario dei diritti d'autore. Ai fini di questa definizione, «inviato»
significa qualsiasi forma di comunicazione elettronica, verbale o scritta inviata
al Licenziante o ai suoi rappresentanti, incluse, ma non limitate a
comunicazioni su liste di distribuzione elettroniche, sistemi di controllo del codice sorgente,
e sistemi di tracciamento delle problematiche gestiti da, o per conto di, il
Licenziante per discutere e migliorare l'Opera, ma
escludendo comunicazioni che sono chiaramente contrassegnate o diversamente
designate per iscritto dal proprietario dei diritti d'autore come «Non un Contributo.»«Contributore» indica il Licenziante e qualsiasi individuo o Entità Legale
per conto del quale un Contributo è stato ricevuto dal Licenziante e
successivamente incorporato nell'Opera.Concessione di Licenza per il Copyright. Soggetto ai termini e alle condizioni di
questa Licenza, ciascun Contributore concede qui a Te una licenza di copyright perpetua,
mondiale, non esclusiva, senza costi, royalty-free, irrevocabile
per riprodurre, preparare Opere Derivative,
visualizzare pubblicamente, eseguire pubblicamente, sublicenziare e distribuire l'
Opera e tali Opere Derivative in forma Fonte o Oggetto.Concessione di Licenza per Brevetto. Soggetto ai termini e alle condizioni di
questa Licenza, ciascun Contributore concede qui a Te una licenza di copyright perpetua,
mondiale, non esclusiva, senza costi, royalty-free, irrevocabile
(salvo quanto indicato in questa sezione) licenza per brevetto per fare, far fare,
usare, offrire in vendita, vendere, importare, e trasferire diversamente l'Opera,
dove tale licenza si applica solo a quelle rivendicazioni di brevetto concedibili
da tale Contributore che sono necessariamente violate dalle loro
Contribuzioni o dalla combinazione delle loro Contribuzioni
con l'Opera alla quale tali Contribuzioni sono state presentate. Se Tu
avvii una causa di brevetto contro qualsiasi entità (incluso un
controversia o controdomanda in una causa legale) che sostiene che l'Opera
o un Contributo incorporato nell'Opera costituisca una violazione diretta
o indiretta di brevetto, allora eventuali licenze sui brevetti
concesse a Te ai sensi di questa Licenza per quell'Opera termineranno
a partire dalla data in cui tale contenzioso viene intentato.Redistribuzione. Puoi riprodurre e distribuire copie dell'
Opera o Opere Derivate in qualsiasi mezzo, con o senza
modifiche, e in forma Sorgente o Oggetto, a condizione che Tu
rispetti le seguenti condizioni:(a) Devi fornire a qualsiasi altro destinatario dell'Opera o
Opere Derivate una copia di questa Licenza; e(b) Devi far sì che qualsiasi file modificato porti avvisi evidenti
che dichiarano che hai modificato i file; e(c) Devi mantenere, nella forma Sorgente di qualsiasi Opera Derivata
che distribuisci, tutte le notifiche di copyright, brevetto, marchio e
attribuzione dalla forma Sorgente dell'Opera,
escludendo quelle notifiche che non si riferiscono a nessuna parte di
le Opere Derivate; e(d) Se l'Opera include un file di testo «NOTICE» come parte della sua
distribuzione, allora qualsiasi Opera Derivata che distribuisci deve
includere una copia leggibile delle notifiche di attribuzione contenute
all'interno di tale file NOTICE, escludendo quelle notifiche che non
si riferiscono a nessuna parte delle Opere Derivate, in almeno uno
dei seguenti luoghi: all'interno di un file di testo NOTICE distribuito
come parte delle Opere Derivate; all'interno della forma Sorgente o
documentazione, se fornita insieme alle Opere Derivate; o,
all'interno di un display generato dalle Opere Derivate, se e
dove tali avvisi di terze parti appaiono normalmente. I contenuti
del file NOTICE sono solo a scopo informativo e
non modificano la Licenza. Puoi aggiungere le tue avvertenze di attribuzione
nelle Opere Derivate che distribuisci, accanto
o come un appendice al testo NOTICE dell'Opera, a condizione
che tali ulteriori avvertenze di attribuzione non possano essere interpretate
come modifiche alla Licenza.Puoi aggiungere una tua dichiarazione di copyright alle tue modifiche e
puoi fornire termini e condizioni di licenza aggiuntivi o diversi
per l'uso, la riproduzione o la distribuzione delle tue modifiche, o
per eventuali Opere Derivate nel loro complesso, a condizione che il tuo uso,
la riproduzione e la distribuzione dell'Opera altrimenti siano conformi a
le condizioni stabilite in questa Licenza.Invio di Contributi. A meno che tu non indichi esplicitamente il contrario,
qualsiasi Contributo inviato intenzionalmente per l'inclusione nell'Opera
da parte tua al Licenziante sarà soggetto ai termini e alle condizioni di
questa Licenza, senza termini o condizioni aggiuntivi.
Nonostante quanto sopra, nulla in questo documento sostituirà o modificherà
i termini di qualsiasi accordo di licenza separato che tu possa aver firmato
con il Licenziante riguardo a tali Contributi.Marchi. Questa Licenza non concede il permesso di utilizzare i nomi commerciali,
marchi, marchi di servizio o nomi di prodotto del Licenziante,
eccetto se necessario per un uso ragionevole e consueto nel descrivere
l'origine dell'Opera e nel riprodurre il contenuto del file AVVISO.Dichiarazione di Esclusione di Garanzia. Salvo il contrario richiesto dalla legge
applicabile o concordato per iscritto, il Licenziante fornisce l'Opera (e ciascun
Contributore fornisce i suoi Contributi) su una base «COSÌ COM'È»,
SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, né esplicite né
implicite, inclusa, senza limitazione, qualsiasi garanzia o condizione
di TITOLARITÀ, NON VIOLAZIONE, COMMERCIABILITÀ o IDONEITÀ PER UN
PARTICOLARE SCOPO. Sei l'unico responsabile per determinare l'adeguatezza
di utilizzare o ridistribuire l'Opera e assumi i rischi associati con il tuo
esercizio delle autorizzazioni in base a questa Licenza.Limitazione di Responsabilità. In nessun caso e sotto nessuna teoria legale,
sia in torto (compresa la negligenza), contratto o altro,
salvo il contrario richiesto dalla legge applicabile (come atti deliberati e
gravemente negligenti) o concordato per iscritto, nessun Contributore potrà essere
responsabile nei tuoi confronti per danni, inclusi danni diretti, indiretti, speciali,
incidentali o consequenziali di qualsiasi tipo derivanti da
questo Licenza o dall'uso o dall'incapacità di utilizzare il
Lavoro (inclusi, ma non limitati a, danni per perdita di reputazione,
interruzione dell'attività, guasto o malfunzionamento del computer, o qualsiasi altro
danno o perdita commerciale), anche se tale Contributore
è stato avvisato della possibilità di tali danni.Accettando Garanzia o Responsabilità Aggiuntiva. Durante la ridistribuzione
del Lavoro o delle Opere Derivate, puoi scegliere di offrire
e addebitare una tassa per, l'accettazione di supporto, garanzia, indennizzo
o altre obbligazioni e/o diritti di responsabilità coerenti con questa
Licenza. Tuttavia, nel prendere tali obbligazioni, puoi agire solo
per tuo conto e a tuo esclusivo rischio, non per conto
di qualsiasi altro Contributore, e solo se accetti di indennizzare,
difendere e tenere indenne ciascun Contributore per qualsiasi responsabilità
sostenuta o reclami avanzati contro tale Contributore a causa
della tua accettazione di eventuali garanzie o responsabilità aggiuntive.FINE DEI TERMINI E CONDIZIONI
APPENDICE: Come applicare la Licenza Apache al tuo lavoro.
Per applicare la Licenza Apache al tuo lavoro, allega il seguente
avviso standard, con i campi racchiusi tra parentesi quadre «[]»
sostituiti con le tue informazioni identificative. (Non includere
le parentesi!) Il testo dovrebbe essere racchiuso nella adeguata
sintassi di commento per il formato del file. Raccomandiamo anche che un
nome di file o classe e una descrizione dello scopo siano inclusi nella
stessa «pagina stampata» dell'avviso di copyright per una più facile
identificazione all'interno degli archivi di terzi.Copyright [yyyy] [nome del titolare del copyright]
Licenziato ai sensi della Licenza Apache, Versione 2.0 (la «Licenza»);
non puoi usare questo file se non in conformità con la Licenza.
Puoi ottenere una copia della Licenza pressoSalvo quanto richiesto dalla legge applicabile o concordato per iscritto, software
distribuito ai sensi della Licenza è distribuito su base «AS IS»,
SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, né esplicite né implicite.
Consulta la Licenza per il linguaggio specifico che governa i diritti e
le limitazioni ai sensi della Licenza.
Licenza = contratto
Una licenza libera, sebbene sia libera, non ammette libertà assoluta e abbiamo già fornito esempi di limitazioni. Scegli la licenza tenendo conto sia dei tuoi interessi che di quelli dell'utente, perché il software open source è pensato proprio per lui. L'utente del progetto dovrebbe considerare la licenza come un particolare contratto tra lui e il titolare dei diritti; prima di effettuare qualsiasi operazione sul codice sorgente, leggi attentamente le limitazioni imposte dalla licenza del progetto.
Speriamo di aver fatto luce sulla questione delle licenze e, nonostante la complessità dell'argomento, non dovrebbe diventare un ostacolo nel tuo percorso nell'Open Source. Fai crescere il tuo progetto e non dimenticare i diritti, i tuoi e degli altri.
Link utili
Infine, ecco alcune risorse utili che ci hanno aiutato nella ricerca di informazioni sulle licenze esistenti e nella selezione della più adatta ai nostri scopi:
- Super utile da
Fonte: habr.com
