Cum să alegeți o licență Open Source pentru cadrul RAD pe GitHub

În acest articol vom vorbi puțin despre drepturile de autor, dar mai ales despre alegerea unei licențe gratuite pentru cadrul RAD IONDV. Cadru și pentru produsele open source bazate pe acesta. Vă vom spune despre licența de autorizare Apache 2.0, despre ce ne-a condus la aceasta și cu ce decizii ne-am confruntat în acest proces.

Procesul de alegere a unei licențe necesită o forță de muncă destul de intensă și ar trebui abordat deja bine citit, iar dacă nu sunteți un proprietar fericit al unei educații juridice, atunci se deschide în fața dvs. un câmp neîntrerupt de informații despre diferite licențe gratuite. Principalul lucru de făcut este să elaborezi o serie de criterii limitative. Prin procesul de discuție și reflecție, tu și echipa ta veți putea înțelege ce doriți să permiteți utilizatorilor produsului dumneavoastră și ce să interziceți. Când aveți deja o anumită descriere în mâini, trebuie să o suprapuneți pe licențele existente și să o selectați pe cea în care coincide cel mai mare număr de puncte. Sună simplu, desigur, dar în realitate, de obicei, chiar și după discuție, rămân întrebări.

Cum să alegeți o licență Open Source pentru cadrul RAD pe GitHub

În primul rând, un link către choosealicense.com, un site util pe care l-am folosit pe scară largă. Acordați o atenție deosebită tabel comparativ licențe în funcție de 13 criterii principale. Fie ca engleza si rabdarea sa fie cu tine.

Agonia alegerii

Să începem cu caracteristicile generale ale licențelor pentru software gratuit. Software-ul open source presupune o licență exclusiv gratuită, care nu limitează distribuția comercială și necomercială conform modelului Deschide Core. În consecință, punerea software-ului în rețea sub o licență gratuită nu poate limita complet transferul, distribuția și vânzarea acestuia de către terți și trebuie doar să fii pregătit mental pentru asta.

O licență gratuită oferă utilizatorului dreptul de a participa la inginerie inversă a software-ului sau de a-l schimba în alte moduri disponibile. Majoritatea licențelor nu vă permit să redenumiți produsul sau să efectuați manipulări cu acesta, schimbând drepturile autorului și/sau proprietarului sistemului.

Principalele întrebări care ne-au interesat despre licențele gratuite au fost:

  1. Ar trebui să fie înregistrate modificările aduse software-ului și să nu aibă nicio legătură cu deținătorul drepturilor de autor al sistemului?
  2. Numele software-ului derivat nu ar trebui să fie același cu numele software-ului deținătorului drepturilor de autor?
  3. Este posibil să schimbați licența pentru orice versiune nouă cu alta, inclusiv una proprietară?

După ce am analizat cu atenție lista celor mai comune licențe, am selectat câteva pe care le-am analizat mai detaliat. Licențe potențiale pentru IONDV. Cadru au fost: GNU GPLv3, Apache 2.0, MIT și MPL. MIT aproape imediat exclusă, aceasta este o licență permisivă non-copyleft, care permite utilizarea, modificarea și distribuirea codului în aproape orice mod, dar nu am fost mulțumiți de această opțiune, ne-am dorit totuși ca licența să reglementeze relația dintre drepturile de autor deţinătorul şi utilizatorul. Majoritatea proiectelor mai mici de pe GitHub sunt publicate sub licența MIT sau diferitele sale variante. Licența în sine este foarte scurtă și singurele interdicții sunt de a indica calitatea de autor a creatorului software-ului.

Urmează licența MPL 2.0. Desigur, nu am ajuns la ea imediat, dar după ce l-am studiat mai detaliat, am exclus-o rapid, deoarece principalul dezavantaj este că licența nu se aplică întregului proiect, ci fișierelor individuale. În plus, dacă utilizatorul modifică fișierul, nu poate schimba licența. De fapt, oricât de sârguincios ai schimba un proiect Open source, nu vei putea niciodată să-l monetizezi din cauza unei astfel de licențe. Apropo, acest lucru nu îl privește pe deținătorul drepturilor de autor.

O problemă similară persistă cu licența GNU GPLv3. Necesită ca orice fișier să rămână sub el. GNU GPL este o licență copyleft care necesită ca lucrările derivate să fie open source și să rămână sub aceeași licență. Adică: prin rescrierea a două linii de cod, veți fi forțat să vă comiteți modificările și, în timpul utilizării sau distribuției ulterioare, să salvați codul sub GNU GPL. În acest caz, acesta este un factor limitativ pentru utilizatorul proiectului nostru, și nu pentru noi. Dar schimbarea GPL cu orice altă licență este interzisă, chiar și în cadrul versiunilor GPL. De exemplu, dacă te schimbi LGPL (un supliment la GPL) la GPL, atunci nu va mai exista cale de întoarcere la LGPL. Iar acest punct a fost decisiv în votul împotrivă.

În general, alegerea noastră a înclinat inițial spre GPL3 tocmai din cauza distribuirii codului modificat sub aceeași licență. Ne-am gândit că astfel ne putem securiza produsul, dar am văzut mai puține riscuri în Apache 2.0. Potrivit Free Software Foundation, GPLv3 este compatibil cu Apache License v2.0, ceea ce înseamnă că este întotdeauna posibil să schimbați licența de la Apache License v2.0 la GPL v3.0.

Apache 2.0

Apache 2.0 — o licență permisivă echilibrată, cu accent pe drepturile de autor. Iată răspunsurile pe care le-a dat la întrebările care ne-au interesat. Ar trebui să fie înregistrate modificările aduse software-ului și să nu aibă nicio legătură cu deținătorul drepturilor de autor al sistemului? Da, toate modificările trebuie să fie documentate și nu suntem responsabili pentru codul original sau pentru cel modificat. Fișierul cu modificările trebuie să fie atașat codului în care ați făcut aceste modificări. Numele software-ului derivat nu ar trebui să fie același cu numele software-ului deținătorului drepturilor de autor? Da, software-ul derivat ar trebui să fie lansat sub un alt nume și sub o altă marcă comercială, dar cu indicarea deținătorului drepturilor de autor. Este posibil să schimbați licența pentru orice versiune nouă cu alta, inclusiv una proprietară? Da, poate fi lansat sub diferite licențe, Apache 2.0 nu limitează utilizarea oricăror licențe necomerciale și comerciale.

De asemenea, atunci când lansați noi produse bazate pe cod sursă deschis pentru Apache 2.0 sau produse cu funcționalități suplimentare, nu este necesar să utilizați aceeași licență. Mai jos puteți vedea o imagine cu termenii și restricțiile licenței Apache 2.0.

Cum să alegeți o licență Open Source pentru cadrul RAD pe GitHub

Licența impune o cerință de a păstra și menționa drepturile de autor și licența sub care este lansat software-ul. Disponibilitate obligatorie aviz de copyright cu numele deținătorului drepturilor de autor și o licență protejează drepturile autorului original al software-ului, deoarece chiar dacă este redenumit, dat sau vândut sub o altă licență, marca autorului va rămâne în continuare. Puteți utiliza și fișierul pentru aceasta ANUNȚ și atașați-l fie la codul sursă, fie la documentația proiectului.

Lansăm toate produsele noastre disponibile public pe GitHub sub licența Apache 2.0, cu excepția IONDV. Arhiva de război, al cărui cod sursă a fost publicat sub licența GPLv3 pe GitHub în luna aprilie a acestui an de către Centrul pentru Tehnologii Sociale din Orientul Îndepărtat. În acest moment, pe lângă cadru și module publicat aplicaţii realizate pe cadru. Pe hub-ul despre care am vorbit deja Sistem de management al proiectelor și despre Registrul comunicațiilor.

Acestea. detalii despre cadru

IONDV. Framework este un cadru open source bazat pe node.js pentru crearea de aplicații web de nivel înalt bazate pe metadate, care nu necesită abilități serioase de programare.

Baza funcționalității aplicației este registrul de date - modulul Register. Acesta este un modul cheie conceput direct pentru lucrul cu date bazate pe structuri de metadate - inclusiv pentru gestionarea proiectelor, programelor, evenimentelor etc. Proiectul folosește și un modul portal pentru afișarea șabloanelor de date arbitrare - implementează registrul frontal al arhivei.

MongoDb este folosit pentru DBMS - stochează setările aplicației, metadatele și datele în sine.

Cum să aplici o licență pentru proiectul tău?

Adăugați un fișier LICENȚĂ cu textul licenței în depozitul proiectului dvs. și voilà, un proiect protejat de Apache 2.0. Trebuie să indicați deținătorul drepturilor de autor, asta este notificare privind drepturile de autor. Acest lucru se poate face în codul sursă sau într-un fișier ANUNȚ (un fișier text care listează toate bibliotecile licențiate sub licența Apache împreună cu numele creatorilor acestora). Plasați fișierul în sine fie în codul sursă, fie în documentația distribuită împreună cu lucrarea. Pentru noi arata asa:

Copyright © 2018 ION DV LLC.
Licențiat conform licenței Apache, versiunea 2.0

Textul licenței Apache 2.0

Licență Apache
Versiunea 2.0, ianuarie 2004
http://www.apache.org/licenses/

TERMENI ȘI CONDIȚII DE UTILIZARE, REPRODUCERE ȘI DISTRIBUȚIE

  1. Definiții.

    „Licență” înseamnă termenii și condițiile de utilizare, reproducere,
    și distribuția așa cum este definită de secțiunile 1 până la 9 din acest document.

    „Licențiator” înseamnă proprietarul drepturilor de autor sau entitatea autorizată de
    proprietarul drepturilor de autor care acordă licența.

    „Persoană juridică” înseamnă unirea entității care acționează și toate
    alte entități care controlează, sunt controlate de sau sunt în comun
    control cu ​​acea entitate. În sensul acestei definiții,
    „control” înseamnă (i) puterea, directă sau indirectă, de a provoca
    direcția sau conducerea unei astfel de entități, fie prin contract sau
    în caz contrar, sau (ii) proprietatea a cincizeci la sută (50%) sau mai mult din
    acțiuni în circulație sau (iii) proprietatea efectivă a unei astfel de entități.

    „Dvs.” (sau „Dvs.”) înseamnă o persoană fizică sau entitate juridică
    exercitarea permisiunilor acordate de această Licență.

    Formularul „sursă” înseamnă forma preferată pentru efectuarea modificărilor,
    inclusiv, dar fără a se limita la codul sursă al software-ului, documentația
    sursă și fișiere de configurare.

    Forma „obiect” înseamnă orice formă rezultată din mecanică
    transformarea sau traducerea unei forme Sursă, inclusiv dar
    nu se limitează la codul obiect compilat, documentația generată,
    și conversii în alte tipuri de media.

    „Lucrare” înseamnă opera de autor, fie în Sursă, fie
    Formular de obiect, pus la dispoziție în baza Licenței, așa cum este indicat de a
    notificare privind drepturile de autor care este inclusă în lucrare sau atașată acesteia
    (un exemplu este oferit în Anexa de mai jos).

    „Lucrări derivate” înseamnă orice lucrare, fie în Sursă, fie în Obiect
    forma, care se bazează pe (sau derivă din) Lucrare și pentru care
    revizuiri editoriale, adnotări, elaborări sau alte modificări
    reprezintă, în ansamblu, o operă originală de autor. În scopurile
    din această licență, lucrările derivate nu vor include lucrările care rămân
    separabil de, sau pur și simplu se leagă (sau se leagă prin nume) la interfețele,
    Lucrarea și Lucrările Derivate ale acesteia.

    „Contribuție” înseamnă orice lucrare de autor, inclusiv
    versiunea originală a Lucrării și orice modificări sau completări
    la lucrarea respectivă sau la lucrările derivate ale acesteia, adică în mod intenționat
    trimis Licențiatorului pentru includere în Lucrare de către proprietarul drepturilor de autor
    sau de către o persoană fizică sau entitate juridică autorizată să depună în numele
    proprietarul drepturilor de autor. În sensul acestei definiții, „depus”
    înseamnă orice formă de comunicare electronică, verbală sau scrisă trimisă
    către Licențiatorul sau reprezentanții săi, inclusiv, dar fără a se limita la
    comunicare pe liste de corespondență electronice, sisteme de control al codului sursă,
    și emit sisteme de urmărire care sunt gestionate de sau în numele acestuia
    Licențiatorul în scopul de a discuta și îmbunătăți Lucrarea, dar
    excluzând comunicarea care este marcată în mod evident sau altfel
    desemnat în scris de proprietarul drepturilor de autor drept „Nu este o contribuție”.

    „Contribuitor” înseamnă Licențiatorul și orice persoană fizică sau entitate juridică
    în numele căruia licențiatorul a primit o Contribuție și
    încorporate ulterior în Lucrare.

  2. Acordarea licenței pentru drepturi de autor. Sub rezerva termenilor și condițiilor
    această Licență, fiecare Contributor vă acordă prin prezenta o perpetuă,
    la nivel mondial, neexclusiv, fără taxă, fără redevență, irevocabil
    licență de drept de autor pentru a reproduce, a pregăti lucrări derivate ale,
    afișează public, efectuează public, sublicențează și distribuie
    Lucrări și astfel de lucrări derivate sub formă de sursă sau obiect.

  3. Acordarea licenței de brevet. Sub rezerva termenilor și condițiilor
    această Licență, fiecare Contributor vă acordă prin prezenta o perpetuă,
    la nivel mondial, neexclusiv, fără taxă, fără redevență, irevocabil
    (cu excepția cazurilor menționate în această secțiune) licență de brevet de a face, au făcut,
    utilizați, oferiți să vindeți, să vindeți, să importați și să transferați în alt mod Lucrarea,
    în cazul în care o astfel de licență se aplică numai acelor revendicări de brevet care pot fi autorizate
    de către un astfel de Colaborator care sunt în mod necesar încălcate de către acesta
    Contribuții singure sau prin combinație a contribuțiilor lor
    cu Lucrarea la care au fost depuse astfel de Contribuții. Daca tu
    inițiază un litigiu privind brevetele împotriva oricărei entități (inclusiv a
    cerere încrucișată sau cerere reconvențională într-un proces) care susține că Lucrarea
    sau o Contribuție încorporată în Lucrare constituie directă
    sau încălcarea brevetelor contributive, apoi orice licențe de brevet
    acordată dvs. în temeiul acestei licențe pentru lucrarea respectivă va înceta
    de la data introducerii unui astfel de litigiu.

  4. Redistribuirea. Puteți reproduce și distribui copii ale
    Lucrări sau lucrări derivate ale acestora pe orice mediu, cu sau fără
    modificări și în formă Sursă sau Obiect, cu condiția ca Dvs
    indeplinesc urmatoarele conditii:

    (a) Trebuie să oferiți oricăror altor destinatari ai Lucrării sau
    Derivative Works o copie a acestei Licențe; și

    (b) Trebuie să faceți ca orice fișiere modificate să includă notificări proeminente
    afirmând că ați schimbat fișierele; și

    © Trebuie să păstrați, în forma sursă a oricărei lucrări derivate
    pe care le distribuiți, toate drepturile de autor, brevetele, mărcile comerciale și
    notificări de atribuire din formularul Sursă a Lucrării,
    excluzând acele notificări care nu se referă la nicio parte a
    Lucrările Derivate; și

    (d) În cazul în care Lucrarea include un fișier text „NOTIFICARE” ca parte a acesteia
    distribuție, apoi orice Lucrări Derivate pe care le distribuiți trebuie
    include o copie lizibilă a notificărilor de atribuire conținute
    în cadrul unui astfel de fișier NOTIFICARE, excluzând acele notificări care nu
    se referă la orice parte a Lucrărilor derivate, în cel puțin una
    din următoarele locuri: în cadrul unui fișier text NOTICE distribuit
    ca parte a Lucrărilor Derivate; în formularul Sursă sau
    documentație, dacă este furnizată împreună cu Lucrările Derivate; sau,
    într-un afișaj generat de lucrările derivate, dacă și
    oriunde apar în mod normal astfel de notificări de la terți. Conținuturile
    din fișierul NOTIFICARE au doar scop informativ și
    nu modificați Licența. Puteți adăuga propria Dvs. atribuire
    notificări în cadrul lucrărilor derivate pe care le distribuiți, alături
    sau ca un addendum la textul ANUNȚ din Lucrare, furnizat
    că astfel de notificări suplimentare de atribuire nu pot fi interpretate
    ca modificarea Licenței.

    Puteți adăuga propria declarație privind drepturile de autor la modificările Dvs. și
    poate oferi termeni și condiții de licență suplimentari sau diferiți
    pentru utilizarea, reproducerea sau distribuirea modificărilor Dvs. sau
    pentru orice astfel de Lucrări derivate în ansamblu, cu condiția utilizării dvs.,
    reproducerea și distribuția Lucrării se conformează altfel
    condițiile menționate în această licență.

  5. Depunerea contribuțiilor. Cu excepția cazului în care declarați în mod explicit altfel,
    orice Contribuție depusă în mod intenționat pentru a fi inclusă în Lucrare
    de către Dvs. către Licențiatorul va fi în conformitate cu termenii și condițiile
    această Licență, fără niciun termen sau condiții suplimentare.
    Fără a aduce atingere celor de mai sus, nimic din prezentul document nu va înlocui sau modifica
    termenii oricărui acord de licență separat pe care l-ați încheiat
    cu Licențiatorul cu privire la astfel de Contribuții.

  6. Mărci comerciale. Această licență nu acordă permisiunea de a utiliza comerțul
    nume, mărci comerciale, mărci de servicii sau nume de produse ale Licențiatorului,
    cu excepția cazului în care este necesar pentru utilizarea rezonabilă și obișnuită în descrierea
    originea Lucrării și reproducerea conținutului fișierului NOTIFICARE.

  7. Declinarea garanției. Cu excepția cazului în care este cerut de legea aplicabilă sau
    convenit în scris, Licențiatorul furnizează Lucrarea (și fiecare
    Contribuitorul își oferă contribuțiile) pe baza „CA ESTE”,
    FĂRĂ GARANȚII SAU CONDIȚII DE NICIUN FEL, fie exprese, fie
    implicite, inclusiv, fără limitare, orice garanții sau condiții
    a TITLULUI, NEÎNCĂLCAREA, VALORITATEA COMERCIALĂ, sau ADEPTABILITATEA PENTRU A
    SCOP SPECIAL. Sunteți singurul responsabil pentru determinarea
    oportunitatea utilizării sau redistribuirii Lucrării și să asume orice
    riscurile asociate cu exercitarea de către dvs. a permisiunilor conform acestei licențe.

  8. Limitare a răspunderii. În niciun caz și sub nicio teorie juridică,
    fie în delict (inclusiv neglijență), contract sau altfel,
    cu excepția cazului în care este cerut de legea aplicabilă (cum ar fi în mod deliberat și grosolan
    acte neglijente) sau cu care s-a convenit în scris, orice Colaborator va fi
    răspunzător față de Dvs. pentru daune, inclusiv orice direct, indirect, special,
    daune incidentale sau consecutive de orice caracter, care decurg din a
    rezultat al acestei Licențe sau din utilizarea sau incapacitatea de a utiliza
    Lucrări (inclusiv, dar fără a se limita la, daune pentru pierderea fondului comercial,
    oprirea lucrului, defecțiunea sau funcționarea defectuoasă a computerului sau orice altceva
    alte daune sau pierderi comerciale), chiar dacă acest Contributor
    a fost informat despre posibilitatea unor astfel de daune.

  9. Acceptarea garanției sau a răspunderii suplimentare. În timp ce se redistribuie
    Lucrarea sau lucrările derivate ale acesteia, puteți alege să oferiți,
    și percepe o taxă pentru, acceptarea suportului, garanție, despăgubire,
    sau alte obligații de răspundere și/sau drepturi în concordanță cu aceasta
    Licență. Cu toate acestea, acceptând astfel de obligații, puteți acționa numai
    în numele dvs. și pe propria răspundere, nu în numele dvs
    al oricărui alt Colaborator și numai dacă sunteți de acord să despăgubiți,
    apăra și ține fiecare Colaborator inofensiv pentru orice răspundere
    suportate de către, sau pretenții formulate împotriva unui astfel de Contributor din motive
    de acceptarea oricărei astfel de garanții sau răspundere suplimentară.

    SFÂRȘITUL TERMENI ȘI CONDIȚII

    ANEXĂ: Cum să aplicați licența Apache la munca dvs.

    Pentru a aplica licența Apache la munca dvs., atașați următoarele
    aviz general, cu câmpurile cuprinse între paranteze „[]”
    înlocuite cu propriile informații de identificare. (Nu includeți
    parantezele!) Textul ar trebui să fie inclus în corespunzătoare
    sintaxa de comentarii pentru formatul de fișier. De asemenea, recomandăm ca a
    numele fișierului sau clasei și descrierea scopului să fie incluse pe
    aceeași „pagină tipărită” ca și nota de copyright pentru mai ușor
    identificarea în arhivele terților.

    Drepturi de autor [aaaa] [numele proprietarului drepturilor de autor]

    Licențiat sub Licența Apache, Versiunea 2.0 („Licența”);
    nu puteți utiliza acest fișier decât în ​​conformitate cu licența.
    Puteți obține o copie a Licenței la adresa

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

    Cu excepția cazului în care este cerut de legea aplicabilă sau convenit în scris, software
    distribuit sub Licență este distribuit „CA AȘA ESTE”,
    FĂRĂ GARANȚII SAU CONDIȚII DE ORICE TIP, fie expresă, fie implicită.
    Consultați licența pentru limba specifică care reglementează permisiunile și
    limitări conform licenței.

Licență = contract

O licență gratuită, deși este gratuită, nu permite permisivitatea și am dat deja exemple de restricții. Alegeți o licență ținând cont atât de interesele dvs., cât și de ale utilizatorului, deoarece software-ul open source este conceput special pentru el. Utilizatorul proiectului ar trebui să perceapă licența ca un fel de acord între el și deținătorul drepturilor de autor, așa că înainte de a efectua orice acțiuni asupra codului sursă, studiați cu atenție restricțiile impuse de licența proiectului.

Sperăm că am aruncat puțină lumină asupra subiectului licențelor și, în ciuda complexității problemei, nu ar trebui să devină un obstacol în calea ta către Open Source. Dezvolta-ti proiectul si nu uita de drepturile, ale tale si ale altora.

Link-uri utile

În sfârșit, câteva resurse utile care ne-au ajutat atunci când căutăm informații despre licențele existente și le selectăm pe cea mai potrivită pentru scopurile noastre:

Sursa: www.habr.com

Adauga un comentariu