In questo articolo parleremo brevemente del diritto d'autore, ma principalmente della scelta di una licenza libera per il framework RAD e per i prodotti open source basati su di esso. Parleremo della licenza permissiva Apache 2.0, di cosa ci ha portato a essa e con quali decisioni ci siamo trovati a confrontarci nel processo.
Il processo di scelta della licenza è piuttosto laborioso e va affrontato con una buona preparazione, e se non siete fortunati possessori di una laurea in giurisprudenza, vi si presenta un campo vasto di informazioni su diverse licenze libere. La cosa principale da fare è stilare un elenco di criteri restrittivi. Durante la discussione e la riflessione, voi e il vostro team potrete capire cosa desiderate consentire agli utenti del vostro prodotto e cosa vietare. Quando già avete una certa descrizione, è necessario sovrapporla alle licenze esistenti e identificare quella in cui il maggior numero di punti coincide. Sembra semplice, ma in realtà, di solito, anche dopo la discussione, rimangono domande.

Per prima cosa — un link a , un sito utile che abbiamo utilizzato attivamente. Prestate particolare attenzione alla delle licenze secondo 13 criteri fondamentali. Che la conoscenza dell'inglese e la pazienza siano con voi.
Le difficoltà della scelta
Iniziamo con le caratteristiche generali delle licenze per . Il software libero implica esclusivamente una licenza libera che non limita la distribuzione commerciale e non commerciale secondo il modello . Di conseguenza, pubblicando software sotto licenza libera, non è possibile limitare completamente la sua trasmissione, distribuzione e vendita da parte di terzi e a questo bisogna solo prepararsi moralmente.
La licenza libera consente all'utente di partecipare alla retro-ingegneria del software o di modificarlo con altri modi disponibili. La maggior parte delle licenze non permette di rinominare il prodotto o di fare qualsiasi manipolazione che modifichi i diritti dell'autore e/o del proprietario del sistema.
Le principali domande che ci interessavano sulle licenze libere erano:
- Le modifiche apportate al software devono essere registrate e non hanno nulla a che fare con il titolare dei diritti del sistema?
- Il nome del software derivato non deve coincidere con il nome del software del titolare dei diritti?
- È possibile cambiare la licenza per qualsiasi nuova versione in un'altra, compresa quella proprietaria?
Esaminando attentamente l'elenco delle licenze più comuni, abbiamo selezionato alcune che abbiamo analizzato più in dettaglio. Le potenziali licenze per erano: GNU GPLv3, Apache 2.0, MIT e MPL. MIT Abbiamo escluso quasi immediatamente la licenza permissiva non copyleft, che consente l'uso, la modifica e la distribuzione del codice in quasi ogni modo, poiché non ci soddisfaceva; volevamo che la licenza regolasse i rapporti tra il titolare dei diritti e l'utente. La maggior parte dei progetti non molto grandi su GitHub è pubblicata sotto licenze MIT o sue varie versioni. La licenza stessa è molto breve e tra i divieti c'è solo l'obbligo di attribuzione all'autore del software.
La successiva era la licenza MPL 2.0. A dire il vero, non ci siamo arrivati subito, ma dopo un'analisi più approfondita l'abbiamo esclusa rapidamente, poiché il principale svantaggio è che la licenza si applica non all'intero progetto, ma a singoli file. Inoltre, se un utente modifica un file, non può cambiare la licenza. Di fatto, quanto più impegnato sia nel modificare un progetto open source, non potrai monetizzarlo a causa di una tale licenza. Questo, peraltro, non riguarda il titolare dei diritti.
Un problema simile persiste anche con la licenza GNU GPLv3. Essa richiede che ogni file rimanga sotto di essa. La GNU GPL è una licenza copyleft che richiede che il codice sorgente delle opere derivate sia aperto e resti sotto la stessa licenza. Quindi: riscrivendo due righe di codice, sarai costretto a fissare le tue modifiche e durante l'uso o la distribuzione successive a mantenere il codice sotto GNU GPL. In questo caso, rappresenta un fattore limitante per l'utente del nostro progetto, non per noi. Ma cambiare GPL in qualsiasi altra licenza è vietato, anche all'interno delle versioni GPL. Ad esempio, se si cambia LGPL (un'estensione della GPL) in GPL, non ci sarà più modo di tornare a LGPL. E questo punto è stato decisivo nella votazione contro.
In generale, la nostra scelta inizialmente tendeva verso GPL3 proprio a causa della diffusione del codice modificato con la stessa licenza. Pensavamo che così avremmo potuto proteggere il nostro prodotto, ma abbiamo notato meno rischi con Apache 2.0. Secondo la Free Software Foundation, la GPLv3 è compatibile con la Apache License v2.0, cioè c'è sempre la possibilità di cambiare la licenza da Apache License v2.0 a GPL v3.0.
Apache 2.0
— una licenza permissiva bilanciata con un focus sui diritti d'autore. Ecco quali risposte ha fornito alle domande che ci interessano. Le modifiche al software devono essere documentate e non hanno alcun rapporto con il titolare dei diritti del sistema? Sì, tutte le modifiche devono essere documentate e non siamo responsabili né per il codice sorgente né per quello modificato. Un file con le modifiche deve essere allegato al codice in cui sono state apportate. Il nome del software derivato deve coincidere con il nome del software del titolare dei diritti? Sì, il software derivato deve essere rilasciato con un altro nome e un altro marchio, ma con menzione della paternità del titolare dei diritti. È possibile cambiare la licenza per qualsiasi nuova versione a un'altra, incluso quella proprietaria? Sì, è possibile rilasciare sotto licenze diverse, 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 su prodotti di funzionalità aggiuntiva, non è obbligatorio utilizzare la stessa licenza. Qui sotto puoi vedere un'immagine delle condizioni e delle limitazioni della licenza Apache 2.0.

La licenza richiede di mantenere e menzionare i diritti d'autore e la licenza sotto cui viene rilasciato il software. È obbligatorio avere copyright notice Il nome del titolare dei diritti e la licenza proteggono i diritti dell'autore originale del software, poiché anche se viene rinominato, ceduto o venduto sotto un'altra licenza, il segno dell'autore rimarrà comunque. Per questo è possibile utilizzare anche il file NOTICE e allegarlo o al codice sorgente o alla documentazione del progetto.
Rilasciamo in open source su GitHub tutti i nostri prodotti sotto la licenza Apache 2.0, tranne , il cui codice sorgente è stato pubblicato ad aprile di quest'anno sotto la licenza GPLv3 su GitHub dal Centro Tecnologico Sociale del Dall'Est. Attualmente, oltre al e i suoi pubblicati realizzati sul framework. Su Habr abbiamo già parlato di e pro .
Dettagli tecnici sul framework
IONDV. Framework – framework open source su node.js per la creazione di applicazioni web avanzate basate su metadati, che non richiede competenze di programmazione avanzate.
La funzionalità base dell'applicazione è costituita dal registro dati – il modulo Registro. Questo è un modulo chiave, progettato specificamente per lavorare con dati basati su strutture di metadati – inclusa la gestione di progetti, programmi, eventi e altro. Inoltre, nel progetto viene utilizzato un modulo portale per visualizzare modelli di dati arbitrari – su di esso è implementato il frontend del registro delle pratiche archiviate.
Per il DBMS viene utilizzato MongoDb – in esso sono archiviati sia le impostazioni dell'applicazione che i metadati e i dati stessi.
Come applicare una licenza al tuo progetto?
Aggiungi il file LICENSE con il testo della licenza nel repository del tuo progetto e voilà, il progetto è protetto da Apache 2.0. Devi indicare il titolare dei diritti, che è avviso di copyright. Questo può essere fatto nel codice sorgente o nel file NOTICE (file di testo che elenca tutte le librerie con licenza Apache insieme ai nomi dei loro autori). Il file stesso deve essere posizionato nel codice sorgente o nella documentazione distribuita con il lavoro. Da noi appare in questo modo:
Copyright © 2018 LLC «ION DV».
Licenza sotto la Licenza Apache, Versione 2.0
Testo della licenza Apache 2.0
Licenza Apache
Versione 2.0, Gennaio 2004
TERMINI E CONDIZIONI PER UTILIZZO, RIPRODUZIONE E DISTRIBUZIONE
Definizioni.
«Licenza» significa i termini e le condizioni per uso, riproduzione,
e distribuzione come definiti nei Capitoli 1-9 di questo documento.«Licenziante» significa il proprietario del copyright o entità autorizzata dal
proprietario del copyright che concede la Licenza.«Entità Legale» significa l'unione dell'entità operante e di tutte
le altre entità che controllano, sono controllate da, o sono sotto il controllo comune
di 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
in altro modo, o (ii) la proprietà del cinquanta percento (50%) o più delle
azioni in circolazione, o (iii) la proprietà beneficiale di tale entità.«Tu» (o «Tuo») significa un individuo o Entità Legale
che esercita i permessi concessi da questa Licenza.La forma «Sorgente» significa la forma preferita per apportare modifiche,
inclusa, ma non limitata a, codice sorgente software, documentazione
sorgente, e file di configurazione.La forma «Oggetto» significa qualsiasi forma risultante da trasformazione
meccanica o traduzione di una forma Sorgente, inclusa, ma
non limitata a, codice oggetto compilato, documentazione generata,
e conversioni in altri tipi di media.«Opera» significa l'opera di autorialità, sia in forma Sorgente che
Oggetto, resa disponibile sotto la Licenza, come indicato da un
avviso di copyright che è incluso o allegato all'opera
(un esempio è fornito nell'Appendice qui sotto).«Opere Derivate» significa qualsiasi opera, sia in forma Sorgente che Oggetto
forma, basata su (o derivata da) l'Opera e per la quale la
revisioni editoriali, annotazioni, elaborazioni o altre modifiche
rappresentano, nel loro insieme, un'opera originale di autorialità. Ai fini
di questa Licenza, le Opere Derivate non includeranno opere che rimangono
separabili dagli, o si collegano (o legano per nome) alle interfacce di,
l'Opera e alle Opere Derivate di essa.«Contributo» significa qualsiasi opera di autorialità, inclusa
la versione originale dell'Opera e qualsiasi modifica o aggiunta
a quell'Opera o alle Opere Derivate di essa, che viene intenzionalmente
inviata al Licenziante per l'inclusione nell'Opera dal titolare dei diritti d'autore
o da un individuo o Entità Giuridica autorizzata a inviare per conto di
il titolare 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, compresa, ma non limitata a
comunicazioni su liste di distribuzione elettronica, sistemi di controllo del codice sorgente,
e sistemi di tracciamento dei problemi gestiti da, o per conto di, il
Licenziante per discutere e migliorare l'Opera, ma
escludendo comunicazioni che sono visibilmente contrassegnate o diversamente
designate per iscritto dal titolare dei diritti d'autore come «Non un Contributo».«Contributore» significa il Licenziante e qualsiasi individuo o Entità Giuridica
per conto del quale un Contributo è stato ricevuto dal Licenziante e
successivamente incorporato nell'Opera.Concessione di Licenza sul Diritto d'Autore. Soggetto ai termini e condizioni di
questa Licenza, ciascun Contributore concede a Te una licenza di diritto d'autore perpetua,
mondiale, non esclusiva, senza addebito, royalty-free, irrevocabile
per riprodurre, preparare Opere Derivate di,
mostrare pubblicamente, eseguire pubblicamente, sublicenziare e distribuire l'
Opera e tali Opere Derivate in forma Sorgente o Oggetto.Concessione di Licenza sui Brevetti. Soggetto ai termini e condizioni di
questa Licenza, ciascun Contributore concede a Te una licenza di diritto d'autore perpetua,
mondiale, non esclusiva, senza addebito, royalty-free, irrevocabile
(eccetto quanto dichiarato in questa sezione) licenza sui brevetti per fare, far fare,
usare, offrire in vendita, vendere, importare e trasferire in altro modo l'Opera,
dove tale licenza si applica solo a quelle rivendicazioni di brevetto licenziabili
da tale Contributore che sono necessariamente violate dalle loro
Contributi esclusivamente o dalla combinazione dei loro Contributi
con l'Opera a cui tali Contributi sono stati inviati. Se Tu
promuovi contenzioso sui brevetti contro qualsiasi entità (incluso un
contro-querela o contro-querela in una causa) sostenendo che l'Opera
o un Contributo incorporato nell'Opera costituisce violazione diretta
o contributiva di brevetto, allora qualsiasi licenza di brevetto
concessa a Te ai sensi di questa Licenza per quell'Opera si terminerà
alla data in cui tale contenzioso viene presentato.Ridistruzione. Puoi riprodurre e distribuire copie dell'
Opera o delle Opere Derivate di essa in qualsiasi supporto, con o senza
modifiche, e in forma Sorgente o Oggetto, a condizione che tu
soddisfi le seguenti condizioni:(a) Devi fornire a qualsiasi altro destinatario dell'Opera o
Opere Derivate una copia di questa Licenza; e(b) Devi fare in modo che qualsiasi file modificato contenga avvisi prominenti
che dichiarano che hai modificato i file; e(c) Devi mantenere, nella forma Sorgente di qualsiasi Opera Derivata
che distribuisci, tutti gli avvisi di copyright, brevetto, marchio e
di attribuzione dalla forma Sorgente dell'Opera,
escludendo quegli avvisi che non si riferiscono a nessuna parte delle
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 degli avvisi di attribuzione contenuti
all'interno di tale file NOTICE, escludendo quegli avvisi 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
della documentazione, se fornita insieme alle Opere Derivate; oppure,
all'interno di una visualizzazione generata dalle Opere Derivate, se e
dove tali avvisi di terza parte di norma appaiono. Il contenuto
il file di NOTA è solo a scopo informativo e
non modificare la Licenza. Puoi aggiungere la tua attribuzione
notifiche all'interno delle Opere Derivate che distribuisci, insieme
o come addendum al testo della NOTA del Lavoro, a condizione che
tali ulteriori notifiche di attribuzione non possano essere interpretate
come una modifica della Licenza.Puoi aggiungere la 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 qualsiasi Opera Derivata nel suo complesso, a condizione che il tuo uso,
riproduzione e distribuzione del Lavoro sia comunque conforme alle
condizioni indicate in questa Licenza.Invio di Contributi. A meno che tu non dichiari esplicitamente il contrario,
qualunque Contributo intenzionalmente inviato per inclusione nel Lavoro
da te al Licenziante sarà soggetto ai termini e alle condizioni di
questa Licenza, senza termini o condizioni aggiuntivi.
Nonostante quanto sopra, nulla di quanto contenuto in questo documento modificherà
i termini di qualsiasi separato contratto di licenza che tu possa aver stipulato
con il Licenziante riguardo a tali Contributi.Marchi. Questa Licenza non concede il permesso di utilizzare i nomi di commercio,
marchi, marchi di servizio o nomi di prodotto del Licenziante,
salvo il necessario uso ragionevole e consueto per descrivere l'
origine del Lavoro e riprodurre il contenuto del file NOTA.Clausola di Esclusione di Garanzia. Salvo quanto richiesto dalla legge applicabile o
accordato per iscritto, il Licenziante fornisce il Lavoro (e ciascun
Contributore fornisce i suoi Contributi) su base «COSÌ COM'È»,
SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, esplicite o
implicite, comprese, senza limitazioni, qualsiasi garanzia o condizione
di TITOLARE, NON VIOLAZIONE, COMMERCIABILITÀ o IDONEITÀ PER UN
PARTICOLARE SCOPO. Sei l'unico responsabile per determinare la
appropriatezza dell'uso o della ridistribuzione del Lavoro e assumi qualsiasi
rischio associato all'esercizio dei permessi ai sensi di questa Licenza.Limitazione di Responsabilità. In nessun caso e sotto nessuna teoria legale,
sia essa in torto (inclusa la negligenza), contratto o altro,
salvo quanto richiesto dalla legge applicabile (come atti deliberati e gravemente
negligenti) o concordato per iscritto, nessun Contributore sarà
responsabile nei tuoi confronti per danni, inclusi danni diretti, indiretti, speciali,
incidentali o consequenziali di qualsiasi genere derivanti da
questo Licenza o dall'uso o dall'incapacità di utilizzare il
Lavoro (inclusi, ma non limitati a, danni per perdita di goodwill,
interruzione del lavoro, guasto o malfunzionamento del computer, o qualunque altro
danno o perdita commerciale), anche se tale Contributore
è stato avvisato della possibilità di tali danni.Accettazione di 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, indennità,
o altre obbligazioni e/o diritti di responsabilità coerenti con questa
Licenza. Tuttavia, nell'accettare tali obbligazioni, puoi agire solo
a tuo nome e a tuo esclusivo rischio, non a nome
di alcun altro Contributore, e solo se accetti di indennizzare,
difendere e tenere indenni ciascun Contributore da qualsiasi responsabilità
sostenuta da, o da rivendicazioni avanzate contro, tale Contributore per
ragione della tua accettazione di tale garanzia o responsabilità aggiuntiva.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 boilerplate, con i campi racchiusi tra parentesi quadre «[]»
sostituiti con le tue informazioni identificative. (Non includere
le parentesi!) Il testo dovrebbe essere racchiuso nella corretta
sintassi di commento per il formato del file. Raccomandiamo anche di includere
un nome di file o di classe e una descrizione dello scopo nella
stessa «pagina stampata» del (avviso di diritto d'autore per una più facile
identificazione all'interno degli archivi di terze parti.Copyright [yyyy] [nome del proprietario del copyright]
Licenziato sotto la Licenza Apache, Versione 2.0 (la «Licenza»);
non puoi utilizzare questo file se non in conformità con la Licenza.
Puoi ottenere una copia della Licenza suSalvo quanto richiesto dalla legge applicabile o concordato per iscritto, il software
distribuito sotto la Licenza viene distribuito su base «AS IS»,
SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, esplicite o implicite.
Consulta la Licenza per il linguaggio specifico che regola le autorizzazioni e
le limitazioni sotto la Licenza.
Licenza = contratto
È una licenza libera, anche se è libera, non consente l'arbitrio e abbiamo già fornito esempi di restrizioni. Scegli la licenza tenendo conto sia dei tuoi interessi che dell'utente, perché il software aperto è pensato proprio per lui. L'utente del progetto dovrebbe considerare la licenza come una sorta di contratto tra lui e il titolare dei diritti, quindi prima di intraprendere qualsiasi azione sul codice sorgente, studia attentamente le restrizioni imposte dalla licenza del progetto.
Speriamo di aver gettato un po' di luce sul tema delle licenze e, nonostante la complessità della questione, essa non dovrebbe ostacolare il tuo percorso nell'Open Source. Sviluppa il tuo progetto e non dimenticare i diritti, i tuoi e quelli altrui.
Link utili
Per concludere, ecco alcune risorse utili che ci hanno aiutato nella ricerca di informazioni sulle licenze esistenti e nella scelta della più adatta ai nostri scopi:
- Super utile di
Fonte: habr.com
