Come scegliere una licenza Open Source per il framework RAD su GitHub

In questo articolo parleremo un po' del diritto d'autore, ma principalmente della scelta di una licenza libera per il framework RAD IONDV. Struttura e per i prodotti open source basati su di esso. Vi parleremo della licenza di autorizzazione Apache 2.0, su cosa ci ha portato a ciò e quali decisioni abbiamo dovuto affrontare nel processo.

Il processo di scelta di una licenza è piuttosto laborioso e dovrebbe essere affrontato già con una buona lettura, e se non sei un felice proprietario di un'istruzione legale, allora si apre davanti a te un campo incolto di informazioni su varie licenze gratuite. La cosa principale da fare è elaborare una serie di criteri limitanti. Attraverso il processo di discussione e riflessione, tu e il tuo team sarete in grado di capire cosa volete consentire agli utenti del vostro prodotto e cosa vietare. Quando hai già tra le mani una certa descrizione, devi sovrapporla alle licenze esistenti e selezionare quella in cui coincide il maggior numero di punti. Sembra semplice, ovviamente, ma in realtà, anche dopo la discussione, rimangono delle domande.

Come scegliere una licenza Open Source per il framework RAD su GitHub

Innanzitutto, un collegamento a choosealicense.com, un sito utile che abbiamo utilizzato ampiamente. Prestare particolare attenzione a tavola di comparazione licenze secondo 13 criteri principali. Che l'inglese e la pazienza siano con voi.

L'agonia della scelta

Cominciamo con le caratteristiche generali delle licenze per Software gratis. Il software open source implica una licenza esclusivamente gratuita, che non limita la distribuzione commerciale e non commerciale a seconda del modello Nucleo aperto. Di conseguenza, mettere il software in rete con una licenza gratuita non può limitarne completamente il trasferimento, la distribuzione e la vendita da parte di terzi, e devi solo essere mentalmente preparato per questo.

Una licenza gratuita dà all'utente il diritto di partecipare al reverse engineering del software o di modificarlo in altri modi disponibili. La maggior parte delle licenze non consentono di rinominare il prodotto o di effettuare manipolazioni sullo stesso, modificando i diritti dell'autore e/o del proprietario del sistema.

Le principali domande che ci interessavano riguardo alle licenze gratuite erano:

  1. Le modifiche apportate al software devono essere registrate e non hanno alcuna relazione con il detentore del copyright del sistema?
  2. Il nome del software derivato non dovrebbe essere lo stesso del nome del software del detentore del copyright?
  3. È possibile cambiare la licenza di eventuali nuove versioni con un'altra, inclusa una proprietaria?

Dopo aver esaminato attentamente l'elenco delle licenze più comuni, ne abbiamo selezionate alcune che abbiamo considerato in modo più dettagliato. Potenziali licenze per IONDV. Struttura erano: GNU GPLv3, Apache 2.0, MIT e MPL. CON quasi subito esclusa, si tratta di una licenza permissiva senza copyleft, che permette l'uso, la modifica e la distribuzione del codice in quasi ogni modo, ma non eravamo contenti di questa opzione, volevamo comunque che la licenza regolasse il rapporto tra i diritti d'autore titolare e l'utente. La maggior parte dei progetti più piccoli su GitHub sono pubblicati sotto la licenza MIT o le sue varie varianti. La licenza stessa è molto breve e gli unici divieti sono indicare la paternità del creatore del software.

Poi c'era la licenza MPL 2.0. Certo, non ci siamo arrivati ​​subito, ma dopo averlo studiato più nel dettaglio l’abbiamo subito escluso, poiché lo svantaggio principale è che la licenza non si applica all’intero progetto, ma ai singoli file. Inoltre, se l'utente modifica il file, non potrà modificare la licenza. Infatti, non importa quanto diligentemente modifichi un progetto Open source, non sarai mai in grado di monetizzarlo a causa di tale licenza. A proposito, questo non riguarda il detentore del copyright.

Un problema simile persiste con la licenza GNU GPLv3. Richiede che qualsiasi file rimanga sotto di esso. La GNU GPL è una licenza copyleft che richiede che le opere derivate siano open source e rimangano sotto la stessa licenza. Cioè: riscrivendo due righe di codice, sarai costretto a confermare le tue modifiche e, durante l'ulteriore utilizzo o distribuzione, a salvare il codice sotto la GNU GPL. In questo caso, questo è un fattore limitante per l'utente del nostro progetto e non per noi. Ma è vietato cambiare la GPL con qualsiasi altra licenza, anche all'interno delle versioni GPL. Ad esempio, se cambi LGPL (un componente aggiuntivo della GPL) alla GPL, non ci sarà modo di tornare alla LGPL. E questo punto è stato decisivo per votare contro.

Nel complesso, la nostra scelta inizialmente si è orientata 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 visto meno rischi in Apache 2.0. Secondo la Free Software Foundation, la GPLv3 è compatibile con la licenza Apache v2.0, il che significa che è sempre possibile cambiare la licenza dalla licenza Apache v2.0 alla GPL v3.0.

Apache 2.0

Apache 2.0 — una licenza permissiva equilibrata con un'enfasi sul diritto d'autore. Ecco le risposte che ha dato alle domande che ci interessavano. Le modifiche apportate al software devono essere registrate e non hanno alcuna relazione con il detentore del copyright del sistema? Sì, tutte le modifiche devono essere documentate e non siamo responsabili né del codice originale né di quello modificato. Il file con le modifiche deve essere allegato al codice in cui hai apportato tali modifiche. Il nome del software derivato non dovrebbe essere lo stesso del nome del software del detentore del copyright? Sì, il software derivato dovrebbe essere rilasciato con un nome diverso e con un marchio diverso, ma con l'indicazione del detentore del copyright. È possibile cambiare la licenza di eventuali nuove versioni con un'altra, inclusa una proprietaria? Sì, può essere rilasciato con licenze diverse, Apache 2.0 non limita l'uso di licenze commerciali e non commerciali.

Inoltre, quando si rilasciano nuovi prodotti basati sul codice open source per 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 restrizioni della licenza Apache 2.0.

Come scegliere una licenza Open Source per il framework RAD su GitHub

La licenza impone l'obbligo di preservare e menzionare i diritti d'autore e la licenza con la quale il software viene rilasciato. Disponibilità obbligatoria copyright con il nome del detentore del copyright e una licenza protegge i diritti dell'autore originale del software, poiché anche se viene rinominato, ceduto o venduto con una licenza diversa, il marchio dell'autore rimarrà comunque. Puoi anche usare il file per questo AVVISO e allegarlo al codice sorgente o alla documentazione del progetto.

Rilasciamo tutti i nostri prodotti disponibili pubblicamente su GitHub con la licenza Apache 2.0, tranne IONDV. Archivio di guerra, il cui codice sorgente è stato pubblicato su GitHub nell'aprile di quest'anno sotto licenza GPLv3 dal Centro per le tecnologie sociali dell'Estremo Oriente. Al momento, oltre a struttura e moduli pubblicato приложения realizzato sul quadro. Sull'hub abbiamo già parlato Sistema di gestione del progetto e circa Registro delle comunicazioni.

Quelli. dettagli sul quadro

IONDV. Framework è un framework open source basato su node.js per la creazione di applicazioni web di alto livello basate su metadati, che non richiedono competenze di programmazione serie.

La base della funzionalità dell'applicazione è il registro dei dati: il modulo Registro. Questo è un modulo chiave progettato direttamente per lavorare con i dati basati su strutture di metadati, inclusa la gestione di progetti, programmi, eventi, ecc. Il progetto utilizza anche un modulo portale per visualizzare modelli di dati arbitrari: implementa il registro anteriore dell'archivio.

MongoDb viene utilizzato per il DBMS: memorizza le impostazioni dell'applicazione, i metadati e i dati stessi.

Come applicare una licenza al tuo progetto?

Aggiungi un file LICENZA ILLIMITATA con il testo della licenza nel repository del tuo progetto e voilà, un progetto protetto da Apache 2.0. Devi indicare il detentore del copyright, tutto qui avviso sul diritto d'autore. Questo può essere fatto nel codice sorgente o in un file AVVISO (un file di testo che elenca tutte le librerie con licenza Apache insieme ai nomi dei loro creatori). Inserisci il file stesso nel codice sorgente o nella documentazione distribuita insieme al lavoro. Per noi è così:

Copyright © 2018 ION DV LLC.
Concesso in licenza con la licenza Apache, versione 2.0

Testo della licenza Apache 2.0

Licenza Apache
Versione 2.0, gennaio 2004
http://www.apache.org/licenses/

TERMINI E CONDIZIONI DI UTILIZZO, RIPRODUZIONE E DISTRIBUZIONE

  1. Definizioni.

    Per "Licenza" si intendono i termini e le condizioni di utilizzo, riproduzione,
    e distribuzione come definito dalle Sezioni da 1 a 9 di questo documento.

    Per "Licenziante" si intende il proprietario del copyright o l'entità autorizzata da
    il proprietario del copyright che concede la licenza.

    Per "entità giuridica" si intende l'unione dell'entità agente e tutto il resto
    altre entità che controllano, sono controllate da o sono in comune
    controllo con quell'entità. Ai fini di questa definizione,
    Per “controllo” si intende (i) il potere, diretto o indiretto, di provocare l'
    direzione o gestione di tale entità, sia per contratto che
    altrimenti, o (ii) la proprietà del cinquanta percento (50%) o più dei
    azioni in circolazione, o (iii) proprietà effettiva di tale entità.

    “Tu” (o “Tuo”) indica una persona fisica o giuridica
    esercitare le autorizzazioni concesse da questa Licenza.

    Per modulo "Fonte" si intende il modulo preferito per apportare modifiche,
    incluso ma non limitato al codice sorgente del software, documentazione
    file di origine e di configurazione.

    Per forma "oggetto" si intende qualsiasi forma risultante dalla meccanica
    trasformazione o traduzione di un modulo Sorgente, incluso ma
    non limitato al codice oggetto compilato, documentazione generata,
    e conversioni ad altri tipi di media.

    Per "Opera" si intende l'opera d'autore, sia in Sorgente che in
    Modulo oggetto, reso disponibile ai sensi della Licenza, come indicato da a
    avviso di copyright incluso o allegato all'opera
    (un esempio è fornito nell'Appendice seguente).

    Per "Opere derivate" si intende qualsiasi opera, sia in Sorgente che in Oggetto
    forma, che è basata su (o derivata da) l'Opera e per la quale il
    revisioni editoriali, annotazioni, elaborazioni o altre modifiche
    rappresentano, nel loro insieme, un'opera originale d'autore. Per gli scopi
    di questa Licenza, i Lavori derivati ​​non includeranno i lavori che rimangono
    separabile da, o semplicemente collegamento (o collegamento per nome) alle interfacce di,
    il Lavoro e le sue opere derivate.

    Per "Contributo" si intende qualsiasi opera d'autore, incluso
    la versione originale dell'Opera e qualsiasi modifica o aggiunta
    a quell'Opera o alle sue Opere Derivate, cioè intenzionalmente
    inviato al Licenziante per l'inclusione nell'Opera dal proprietario del copyright
    o da una persona fisica o giuridica autorizzata a presentare per conto di
    il titolare del diritto d'autore. Ai fini di questa definizione, “presentato”
    indica qualsiasi forma di comunicazione elettronica, verbale o scritta inviata
    al Licenziante o ai suoi rappresentanti, inclusi ma non limitati a
    comunicazione su mailing list elettroniche, sistemi di controllo del codice sorgente,
    ed emettere sistemi di tracciamento gestiti da o per conto di
    Licenziante allo scopo di discutere e migliorare l'Opera, ma
    escludendo la comunicazione che è contrassegnata in modo evidente o in altro modo
    designato per iscritto dal proprietario del copyright come "Non un contributo".

    Per "Collaboratore" si intende il Licenziante e qualsiasi persona fisica o giuridica
    per conto del quale è stato ricevuto un contributo dal Licenziante e
    successivamente incorporato nell'Opera.

  2. Concessione della licenza di copyright. Soggetto ai termini e alle condizioni di
    questa Licenza, ogni Collaboratore concede a Lei un perpetuo,
    mondiale, non esclusivo, gratuito, privo di royalty, irrevocabile
    licenza di copyright per riprodurre, preparare opere derivate di,
    mostrare pubblicamente, eseguire pubblicamente, concedere in licenza e distribuire il file
    Lavoro e tali opere derivate in forma di Sorgente o Oggetto.

  3. Concessione della licenza di brevetto. Soggetto ai termini e alle condizioni di
    questa Licenza, ogni Collaboratore concede a Lei un perpetuo,
    mondiale, non esclusivo, gratuito, privo di royalty, irrevocabile
    (ad eccezione di quanto indicato in questa sezione) licenza di brevetto per fare, avere fatto,
    utilizzare, offrire di vendere, vendere, importare e trasferire in altro modo l'Opera,
    dove tale licenza si applica solo a quelle rivendicazioni di brevetto licenziabili
    da tale Collaboratore che sono necessariamente violati dal loro
    Contributo / i da solo o in combinazione con il / i loro contributo / i
    con l'Opera a cui è stato presentato il / i Contributo / i. Se tu
    avviare controversie sui brevetti contro qualsiasi entità (incluso un
    rivendicazione incrociata o domanda riconvenzionale in una causa) sostenendo che l'Opera
    o un Contributo incorporato nell'Opera costituisce diretto
    o violazione contributiva di brevetto, quindi eventuali licenze di brevetto
    concesso all'Utente ai sensi della presente Licenza per quell'Opera terminerà
    a partire dalla data in cui tale controversia è stata intentata.

  4. Ridistribuzione. È possibile riprodurre e distribuire copie del
    Lavoro o sue opere derivate con qualsiasi mezzo, con o senza
    modifiche e nella forma Sorgente o Oggetto, a condizione che tu
    soddisfare le seguenti condizioni:

    (a) È necessario fornire a qualsiasi altro destinatario dell'Opera o
    Opere derivate una copia di questa Licenza; e

    (b) È necessario che tutti i file modificati riportino avvisi ben visibili
    dichiarando che hai modificato i file; E

    © È necessario conservare, nella forma sorgente, qualsiasi opera derivata
    che distribuisci, tutti i diritti d'autore, brevetti, marchi e
    avvisi di attribuzione dal modulo Fonte dell'Opera,
    escluse quelle comunicazioni che non riguardano alcuna parte di
    le opere derivate; e

    (d) Se l'Opera include un file di testo "AVVISO" come parte di essa
    distribuzione, quindi qualsiasi Opera derivata che distribuisci deve
    includere una copia leggibile degli avvisi di attribuzione contenuti
    all'interno di tale file di AVVISO, escludendo gli avvisi che non lo fanno
    riguardano qualsiasi parte delle Opere Derivate, in almeno una
    dei seguenti posti: all'interno di un file di testo AVVISO distribuito
    nell'ambito delle Opere Derivate; all'interno del modulo Sorgente o
    documentazione, se fornita insieme alle Opere Derivate; o,
    all'interno di una visualizzazione generata dalle Opere Derivate, se e
    ovunque compaiano normalmente tali avvisi di terze parti. I contenuti
    del file NOTICE sono solo a scopo informativo e
    non modificare la licenza. Puoi aggiungere la tua attribuzione
    avvisi all'interno di Opere derivate che distribuisci, a fianco
    o come aggiunta al testo dell'AVVISO dall'Opera, fornito
    che tali avvisi di attribuzione aggiuntivi non possono essere interpretati
    come modificare la licenza.

    Puoi aggiungere la tua dichiarazione sul copyright alle tue modifiche e
    può fornire termini e condizioni di licenza aggiuntivi o diversi
    per l'uso, la riproduzione o la distribuzione delle tue modifiche, o
    per qualsiasi di tali Opere Derivate nel suo insieme, a condizione che il Suo utilizzo,
    riproduzione e distribuzione dell'Opera altrimenti conforme
    le condizioni stabilite in questa Licenza.

  5. Presentazione dei contributi. A meno che tu non dichiari esplicitamente diversamente,
    qualsiasi Contributo presentato intenzionalmente per l'inclusione nell'Opera
    da Lei al Concessore di licenza sarà conforme ai termini e alle condizioni di
    questa Licenza, senza termini o condizioni aggiuntivi.
    Nonostante quanto sopra, nulla nel presente documento sostituirà o modificherà
    i termini di qualsiasi contratto di licenza separato che potresti aver sottoscritto
    con il Licenziante in merito a tali Contributi.

  6. Marchi. Questa licenza non concede il permesso di utilizzare il commercio
    nomi, marchi, marchi di servizio o nomi di prodotti del Licenziante,
    ad eccezione di quanto richiesto per un uso ragionevole e consueto nella descrizione di
    origine dell'Opera e riprodurre il contenuto del file AVVISO.

  7. Esclusione di garanzia. A meno che non sia richiesto dalla legge applicabile o
    concordato per iscritto, il Licenziante fornisce l'Opera (e ciascuno
    Il Collaboratore fornisce i suoi Contributi) su BASE "COSÌ COME SONO",
    SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, espressa o
    implicita, incluse, senza limitazioni, garanzie o condizioni
    di TITOLO, NON VIOLAZIONE, COMMERCIABILITÀ o IDONEITÀ PER A
    PARTICOLARE SCOPO. Sei l'unico responsabile della determinazione del file
    l'opportunità di utilizzare o ridistribuire l'Opera e assumerne qualsivoglia
    rischi associati al tuo esercizio delle autorizzazioni ai sensi della presente licenza.

  8. Limitazione di responsabilità. In nessun caso e in base a nessuna teoria giuridica,
    sia per atto illecito (inclusa negligenza), contratto o altro,
    a meno che non sia richiesto dalla legge applicabile (ad esempio deliberatamente e grossolanamente
    atti negligenti) o concordato per iscritto, qualsiasi collaboratore deve essere
    responsabile nei tuoi confronti per danni, inclusi eventuali danni diretti, indiretti, speciali,
    danni incidentali o consequenziali di qualsiasi carattere derivanti da a
    risultato di questa licenza o dall'uso o dall'incapacità di utilizzare il
    Lavoro (inclusi ma non limitati a danni per perdita di avviamento,
    interruzione del lavoro, guasto o malfunzionamento del computer o altro
    altri danni o perdite commerciali), anche se tale Collaboratore
    è stato informato della possibilità di tali danni.

  9. Accettazione di garanzia o responsabilità aggiuntiva. Mentre ridistribuisce
    il Lavoro o le sue opere derivate, puoi scegliere di offrire,
    e addebitare una commissione per, accettazione del supporto, garanzia, indennità,
    o altri obblighi di responsabilità e / o diritti coerenti con questo
    Licenza. Tuttavia, accettando tali obblighi, l'Utente può solo agire
    per tuo conto e sotto la tua esclusiva responsabilità, non per conto tuo
    di qualsiasi altro collaboratore e solo se accetti di indennizzare,
    difendere e tenere indenne ogni collaboratore da qualsiasi responsabilità
    sostenute da, o rivendicazioni fatte valere nei confronti di tale Collaboratore per motivi
    dell'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 quanto segue
    avviso standard, con i campi racchiusi tra parentesi "[]"
    sostituito con le tue informazioni di identificazione. (Non includere
    le parentesi!) Il testo va racchiuso tra le apposite
    sintassi dei commenti per il formato del file. Raccomandiamo inoltre che a
    il nome del file o della classe e la descrizione dello scopo devono essere inclusi nel file
    stessa "pagina stampata" dell'avviso di copyright per maggiore facilità
    identificazione all'interno di archivi di terze parti.

    Copyright [yyyy] [nome del proprietario del copyright]

    Concesso in licenza ai sensi della Licenza Apache, Versione 2.0 (la “Licenza”);
    non è possibile utilizzare questo file se non in conformità con la Licenza.
    È possibile ottenere una copia della Licenza all'indirizzo

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

    Se non richiesto dalla legge applicabile o concordato per iscritto, software
    distribuito sotto la Licenza è distribuito "COSÌ COM'È",
    SENZA GARANZIE O CONDIZIONI DI QUALSIASI TIPO, esplicito o implicito.
    Consultare la Licenza per le autorizzazioni specifiche per la lingua e
    limitazioni ai sensi della Licenza.

Licenza = contratto

Una licenza libera, pur essendo gratuita, non ammette permissività e abbiamo già fornito esempi di restrizioni. Scegli una licenza tenendo conto sia dei tuoi interessi che di quelli dell'utente, perché il software open source è progettato appositamente per lui. L'utente del progetto dovrebbe percepire la licenza come una sorta di accordo tra lui e il detentore del copyright, quindi prima di eseguire qualsiasi azione sul codice sorgente, studia attentamente le restrizioni imposte dalla licenza del progetto.

Ci auguriamo di aver fatto luce sul tema delle licenze e che, nonostante la complessità della questione, non diventi un ostacolo nel vostro percorso verso l'Open Source. Sviluppa il tuo progetto e non dimenticare i diritti, tuoi e degli altri.

Link utili

Infine, alcune risorse utili che ci hanno aiutato nella ricerca di informazioni sulle licenze esistenti e nella selezione di quella più adatta ai nostri scopi:

Fonte: habr.com

Aggiungi un commento