Lumea licențelor: înțelegerea GNU GPL. De ce nu ar trebui să utilizați GNU GPL pentru a vă licenția software-ul

În ciuda faptului că GitHub este cel mai mare serviciu din lume pentru colaborare deasupra open source, o parte semnificativă a proiectelor găzduite acolo nu au nicio legătură cu Open Source. Și deloc pentru că autorii lor preferă soluții proprietare. Există o mulțime de software publicat pe server care nu are nicio licență.

Aparent, există destul de mulți dezvoltatori care consideră problema licențierii, dacă nu complet lipsită de importanță, atunci cu siguranță de importanță secundară. De exemplu, într-un articol pe această temă publicat pe Fossbytes.com, autorul, ascunzându-se sub pseudonimul gdad-s-river, raportează că selectează o licență la întâmplare. Dar deloc din cauza nihilismului juridic - este sigur că proiectul său nu este deosebit de interesant pentru alte persoane și codul său nu va fi folosit pentru a crea alte instrumente.

Dar exemplul lui nu poate fi orientativ. Dacă un dezvoltator plănuiește să creeze un produs care în viitor poate fi folosit de alții pentru a-și construi propriile versiuni originale, problema alegerii unei licențe este extrem de importantă pentru el. Pot fi multe opțiuni aici:

  • Licență Apache 2.0;
  • BSD 3 (BSD nou);
  • BSD 2 (FreeBSD);
  • GNU General Public License (GPL) v3.0;
  • GNU Lesser General Public License (LGPL);
  • Licență MIT;
  • Licență publică Mozilla 2.0;
  • Licență comună de dezvoltare și distribuție;
  • Licență publică Eclipse;
  • Licență Creative Commons.

Cu siguranță o astfel de listă va părea mică unui avocat profesionist și va înțelege cu ușurință caracteristicile unei anumite licențe. Cu toate acestea, unui specialist tehnic nu este ușor să înțeleagă semnificația ascunsă în spatele formulărilor care sunt în mod clar supraîncărcate din punctul său de vedere. Mai mult, nu toți dezvoltatorii înțeleg de ce este nevoie de licențiere și cred sincer că software-ul liber implică absența oricăror restricții.

În realitate, toate licențele deschise au un singur scop pragmatic. Ei formulează regulile pe care alți dezvoltatori ar trebui să le urmeze dacă decid să folosească cumva codul altcuiva. Aceasta poate fi fie crearea unui produs derivat, fie o contribuție la dezvoltarea originalului.

Licențele deschise pot fi împărțite în mai multe categorii mari. Fiecare dintre ele are propriile sale caracteristici din punct de vedere aplicație practică. Cel mai probabil, este mai indicat ca dezvoltatorii care își încep proiectele să se concentreze în mod special pe tipurile de licențe, alegând-o pe cea mai potrivită pentru ei înșiși.

Licență publică generală GNU

Acest tip de licență vă permite să copiați codul sursă fără nicio restricție. Copiile pot fi plasate pe stații de lucru și servere, iar acest lucru se poate face de un număr nelimitat de ori.

De asemenea, GNU GPL nu impune nicio restricție privind distribuția programelor, nici cantitativ, nici sub formă. Codul poate fi transferat pe unități speciale, puteți furniza un link de descărcare, puteți chiar să îl imprimați pe hârtie și să îl distribuiți tuturor.

Acest tip de licență permite oricărei persoane fizice sau juridice să perceapă bani pentru un serviciu de distribuție de software. Adevărat, potențialul cumpărător trebuie avertizat că vânzătorul nu are drepturi exclusive, astfel încât aceeași soluție poate fi obținută complet gratuit. Această calitate face, de asemenea, posibilă explicarea pentru ce este exact taxa.

În cele din urmă, GNU GPL vă permite să faceți orice modificări ale codului, să eliminați sau să adăugați orice funcție. Adevărat, doar cu condiția ca produsul obținut astfel să fie distribuit și în condițiile aceleiași licențe.

Dezvoltatorii ar trebui să știe că utilizarea GNU GPL necesită respectarea anumitor standarde de cod. În interiorul acestuia, comentariile ar trebui să stabilească cerințele de licențiere.

Licență publică generală minoră GNU

Numele anterior pentru acest tip de licență a fost GNU Library General Public License. LGPL este cel mai adesea folosit pentru bibliotecile de software, deoarece le permite să fie utilizate nu numai în aplicații gratuite, ci și proprietare.

Software-ul proprietar utilizează codul LGPL sub forma unei biblioteci partajate. Această măsură asigură distincția dintre componentele închise și cele deschise în program, iar licența în sine nu necesită sursa deschisă a întregii soluții.

LGPL, spre deosebire de GPL, este un compromis. Nu garantează utilizatorului libertatea completă a tuturor produselor derivate, dar permite utilizarea open source în soluții proprietare, iar modulele deschise trebuie să rămână deschise.

Licență BSD

Unii programatori consideră că BSD este o licență cu adevărat gratuită și, în anumite privințe, au dreptate. Într-adevăr, BSD impune foarte puține restricții privind utilizarea codului în comparație cu alte licențe.

Un dezvoltator BSD permite, în esență, ca codul lor să fie utilizat atât în ​​aplicații open source, cât și în aplicații proprietare. Această proprietate este utilizată pe scară largă în practică, inclusiv în proiecte mari. În special, unele componente FreeBSD au fost incluse în sistemul de operare Mac OS X.

Caracteristica principală a BSD 3, adesea numită BSD New, este că restricționează utilizarea numelor de dezvoltatori în produsele derivate. În practică, înseamnă că în mod implicit interzice utilizarea numelui autorului pentru a promova alte programe - aceasta necesită permisiunea sa specială.

Licență MIT

Aceasta este cea mai scurtă licență. Poate acesta este motivul pentru care devine din ce în ce mai popular. De fapt, ea permite totul.

În conformitate cu licența MIT, o copie a software-ului și toată documentația însoțitoare pot fi modificate, îmbunătățite, completate, utilizate în alte proiecte, vândute și distribuite gratuit, cu condiția ca textul licenței să fie inclus în toate copiile. Cerința este evident complet ușoară și îndeplinirea acesteia nu este dificilă.

Creative Commons

Acest grup de licențe nu este destinat software-ului, ci „produselor înrudite”: fotografii, desene, texte, proiecte de design etc. În primul rând, deoarece Creative Commons nu necesită includerea unui text de licență în lucrare, trebuie doar trebuie să indice desemnarea literei corespunzătoare.

Nu există reguli stricte pentru toate licențele Creative Commons. Unele dintre ele pot chiar să se excludă reciproc și nu este nimic greșit în asta, având în vedere domeniul lor de aplicare.

În special, Creative Commons poate permite copierea și distribuirea fără restricții, dar nu poate permite nicio modificare. Acest lucru poate părea ciudat pentru programatori, dar un artist va găsi cel mai probabil această condiție destul de rezonabilă.

Licență Apache

Licența Apache are o caracteristică interesantă pentru mulți dezvoltatori - nu necesită imuabilitatea licenței. Astfel, regulile de distribuire a unei versiuni modificate a unui program pot diferi de cele originale.

Desigur, dreptul de a schimba o licență nu înseamnă posibilitatea revocării acesteia. Nimeni nu are dreptul să schimbe condițiile care au fost deja stabilite o singură dată.

În primul rând, aș dori să remarc că eu însumi sunt un susținător înfocat al ideilor care stau la baza mișcării Open Source. Cu toate acestea, recent aici, în Rusia și în străinătate, au apărut tot mai multe articole critice, care dezvăluie diverse neajunsuri ale acestei mișcări. Acest articol este o încercare de a rezuma critica constructivă la adresa mișcării Open Source, oarecum asezonată cu propriile gânduri ale autorului pe această temă.

Înainte de a ne lansa într-o analiză critică, să exprimăm încă o dată motivele care l-au determinat pe Richard Stallman să creeze GNU. Aceasta este dominația software-ului proprietar (CPS). Ce înseamnă închidere? Închidere în în acest caz,înseamnă (a) că dvs., în calitate de utilizator care a achiziționat programul, nu aveți dreptul de a-l partaja cu nimeni, (b) studiați modul în care funcționează acest program, (c) modificați-l pentru nevoile dvs. Cum se realizează acest lucru? În primul rând, acesta este un acord de licență, în al doilea rând, lipsa cod sursa programe.

În zorii erei computerelor, toate programele erau deschise, hackerii (atunci doar hackerii erau utilizatori) împărtășeau liber programele și sursele lor între ei. Si era raiul pe pamant :). Dar acum, computerele au utilizatori! Calculatoarele și, prin urmare, programele, au devenit profitabile de vândut. Firește, companiile au început să-și închidă programele, iar paradisul s-a încheiat. Proiectul GNU nu este altceva decât o încercare de a-l recâștiga. :)

De ce este periculoasă închiderea programelor? Cel mai bine, Stallman însuși răspunde la această întrebare, de exemplu. Voi da doar câteva exemple. Interdicția de a partaja copia programului cu oricine creează un mediu nesănătos în societate. Stallman dă acest exemplu: un hacker vine la altul și spune:
- Hei, prietene, driverul tău de imprimantă de aici are probleme, dă-mi versiunea brută, o voi repara singur.
Și el îi răspunde:
- Îmi pare rău, prietene, nu pot, voi fi concediat pentru asta.
Cu alte cuvinte, această interdicție subminează baza cooperării. Ultimele două interdicții privind studiul și schimbarea programelor duc la scăderea nivelului de educație al programatorilor. De fiecare dată când încearcă să înțeleagă o nouă tehnologie, sunt pălmuiți cu un acord de licență.

Cineva poate spune că licența nu ne spune unde trebuie să mergem și ce trebuie să studiem. Da, asta se întâmplă acum, dar să ne gândim ce fel de conștiință juridică este cultivată în societate? Așa este, niciunul, și acesta este un alt motiv care l-a determinat pe Stallman să creeze GNU.

Cum pot fi rezolvate aceste probleme? Software-ul trebuie să fie gratuit! Ce înseamnă acest lucru? Pentru a răspunde la această întrebare, să ne uităm la GNU GPL (aceasta este licența sub care este lansat software-ul liber). Pe scurt și foarte simplificat, GPL este o licență software care vă oferă cinci drepturi de bază:

  1. Dvs., în calitate de autor al programului, vă rezervați dreptul de autor al programului
  2. Puteți utiliza programul (în continuare, vorbim despre un program licențiat sub GPL)
  3. Puteți modifica programul
  4. Puteți distribui gratuit programul
  5. Puteți obține profit prin vânzarea programului sau prin desfășurarea oricărei alte activități comerciale legate de program, dar care nu face obiectul clauzei de utilizare. În același timp, ești obligat să-l distribui împreună cu codul sursă.

GPL NU vă oferă dreptul de a refuza nimănui altcuiva drepturile enumerate mai sus. Joc de cuvinte amuzant, nu-i așa? Acest lucru înseamnă literalmente următoarele: atunci când transferați o copie a programului către cineva, sunteți obligat să îi transferați toate drepturile și obligațiile pe care vi le impune această licență. Cu alte cuvinte, nu puteți relicenția programul. Acest lucru este necesar pentru a proteja programul și, prin extensie, comunitatea de software liber, de antreprenorii fără scrupule care altfel ar putea folosi codul programului în produsul lor proprietar. Această clauză îi obligă fie să nu folosească deloc programul, fie să-și lanseze produsul sub GPL, îmbogățind astfel comunitatea. Puteți citi mai multe despre acest mecanism.

Acum să enumerăm principalele dezavantaje ale GNU GPL și, în consecință, piața de software liber pe care o generează. Într-adevăr, orice licență creează o piață.

  • Lipsa unei scheme clare de finanțare din partea utilizatorului, ceea ce duce la lipsa sau calitatea slabă a programelor necesare utilizatorilor.
  • Natura „închisă” a programelor open source. Sună amuzant, nu-i așa?

În ceea ce privește primul punct, totul este mai mult sau mai puțin clar aici; profiturile sunt realizate de companiile angajate în vânzarea de distribuții de software gratuit și tot felul de suport și instruire. Dacă banii vor ajunge sau nu la un anumit programator, rămâne la latitudinea dvs. să decideți, cel mai probabil nu.

Ce zici de afirmația că software open source chiar sunt inchise? Ce înseamnă? Când a fost creat GNU GPL, nu a existat așa-numita „problemă proiecte mari„Constă în faptul că, pentru un proiect foarte mare și complex, informațiile despre conceptele și ideile care stau la baza acestuia sunt mult mai valoroase decât codul sursă. De fapt, grupul de programatori care deține ideile mai degrabă decât codul sursă are o cod de avantaj mai mare. Puteți citi mai multe despre acest lucru într-un articol al unuia dintre foștii noștri compatrioți.

Cu alte cuvinte, informațiile despre conceptele cheie ale proiectului devin capitalul care vă permite să mențineți puterea asupra proiectului, chiar dacă sunt distribuite împreună cu codul sursă. Însuși principiul GNU - software-ul liber - este subminat. Aici ar trebui citit ca idei libere, într-adevăr, pentru că aceasta este esența originală. Ideile ar trebui să fie gratuite!

Articolul menționat mai sus subliniază că această metodă de „închidere” a programelor este acum utilizată pe scară largă în lumea software-ului „liber”, inclusiv în proiecte cheie precum dezvoltarea nucleului Linux.

De ce se întâmplă asta? Poate că dușmanii răi s-au infiltrat în tabăra noastră? Nu, acest lucru este făcut de oameni care lucrează dezinteresat în beneficiul comunității de software liber. Dar de ce? Pentru a răspunde la această întrebare, va trebui să facem o scurtă excursie în psihologia personalității.

În sens general, urmând Frome, putem distinge două arhetipuri principale ale omului: creatorul și consumatorul. Este pur și simplu o bucurie pentru un creator să creeze ceva și să le ofere oamenilor - lăsați-i să-l folosească. Aceștia sunt oamenii care au creat GNU. Consumatorul are o nevoie constantă de a consuma; bani, faimă, putere etc. Cei care doresc să știe de ce se întâmplă acest lucru și cum se formează aceste arhetipuri în anumite persoane sunt referiți la Freud și la același Frome. În realitate, ambele arhetipuri sunt realizate în fiecare persoană, dar în grade diferite. Unii sunt mai mult creatori, alții sunt mai mult consumatori. Dar chiar și la cel mai pur creator există o mică serie de consumator.

Să ne uităm acum prin această lentilă la oamenii care conduc proiecte cheie ale nucleului Linux. Desigur, sunt creatori, merită imitați, dar ce se întâmplă cu acea mică „venă” a consumatorului, proprietarului? Se realizează în _posedarea_ a ideilor cheie ale proiectului și, prin urmare, în posesia proiectului. De fapt, dacă aceste idei vor fi descoperite, atunci fiecare programator suficient de talentat îi va putea lua locul. Această „venă” este cea care forțează „creatorul” să rețină ideile cheie ale proiectului.

Cum să te descurci cu asta? În primul rând, licența trebuie modificată pentru a solicita distribuirea nu numai a codului sursă, ci și a documentării ideilor și conceptelor cheie pe care se bazează proiectul. În al doilea rând, pentru a satisface „vena” consumatorului și nu putem scăpa de ea, este natura noastră, este necesar să oferim un mecanism de remunerare decentă pentru munca programatorilor care creează software open source. De fapt, banii sunt un bun echivalent cu faima și puterea.

Aha, cuvântul „bani” s-a auzit din nou! Dacă vă amintiți, primul dintre deficiențele GNU GPL despre care am discutat a fost lipsa unei scheme clare de finanțare din partea consumatorului, am ajuns din nou la el.

Este posibil să rezolvăm aceste probleme rămânând în cadrul Software-ului Liber? Da, se poate, și, mai mult, este necesar! Problema este de mult așteptată, TREBUIE rezolvată. Soluția pe care o propun se numește Copymiddle, spre deosebire de Copyright și Copyleft. Autorul acestui nume este Anton Perventsev, pentru care îi mulțumesc în mod special.

Să ne oprim aici și să ne uităm din nou la GPL. Cine este acest misterios „Tu” căruia i se acordă drepturile și responsabilitățile GPL? Folosind metoda „privirii îndeaproape”, ajungem la concluzia că acestea sunt, de fapt, trei entități diferite: PROGRAMATOR, ANTREPRENOR, UTILIZATOR. PPP, este literalmente o sfântă trinitate. :)

Să reformulam interpretarea noastră liberă a GPL, înlocuind magicul „Tu” cu adevăratul său conținut.

  1. PROGRAMATORUL poate modifica programul
  2. ANTREPRENORUL poate obtine profit prin vanzarea programului, sau desfasurarea oricarei alte activitati comerciale aferente programului, dar nesupus clauzei de utilizare. În același timp, El este obligat să-l distribuie împreună cu codurile sursă

Cu alte cuvinte, PROGRAMATORUL are dreptul de a programa, UTILIZATORUL are dreptul de a folosi, ANTREPRENORUL are dreptul de a câștiga bani. Fabrici pentru muncitori, pământ pentru țărani! Socialismul în formă pură. În țara noastră, ideile socialismului de astăzi sunt foarte discreditate, dar socialismul este ceea ce umanitatea va ajunge mai devreme sau mai târziu, desigur, dacă nu își rupe picioarele pe parcurs :). Să încercăm acum să înțelegem cum să schimbăm GPL-ul astfel încât, păstrând LIBERTATEA pe care ne-o oferă, să introducem în el factorul de dezvoltare economică.

Soluția se sugerează de la sine. Să lăsăm UTILIZATORUL în pace, să luăm câteva drepturi de la ANTREPRENOR și să le dăm PROGRAMATORULUI. De exemplu, vom obliga ANTREPRENORUL să deducă 10% din profitul său primit din activități comerciale legate de distribuție, suport etc. programator.

Să adăugăm aici obligația de a distribui, împreună cu programul și codul acestuia, ideile care stau la baza acestuia și obținem un nou tip de licență pentru „Software liber”. L-as numi GPL+- :). Plus - în concordanță cu factorul de dezvoltare economică pe care această licență îl aduce la GPL și adevărata libertate de idei. Dezavantajul este prețul pe care îl plătim pentru el - inegalitatea juridică reciprocă a jucătorilor din noua lume juridică generată de licența GPL+-. Cu toate acestea, este clar că acesta este prețul minim pe care îl putem plăti.

Cu asta am ajuns. Aceasta este o versiune gratuită a GPL+- sau Copymiddle.

  1. PROGRAMATORUL, în calitate de autor al programului, își rezervă dreptul de autor al programului
  2. UTILIZATORUL poate folosi programul
  3. PROGRAMATORUL poate modifica programul și poate primi drepturi de autor pentru utilizarea comercială a programului
  4. UTILIZATORUL PROGRAMATOR și ANTREPRENORUL pot distribui liber programul
  5. ANTREPRENORUL poate obtine profit prin vanzarea programului, sau desfasurarea oricarei alte activitati comerciale aferente programului, dar nesupus clauzei de utilizare. În același timp, El este obligat să-l distribuie împreună cu codul sursă și ideile esențiale pentru înțelegerea structurii interne a programului. De asemenea, ANTREPRENORUL este obligat să deducă 10% (pentru certitudine) din venitul său primit din utilizarea comercială a programului către autorul acestuia.

De fapt, cred că avem nevoie de mai multe licențe asemănătoare GPL+. De fapt, GPL+-, pentru licențierea software-ului gratuit. GPDL+ este același, dar pentru documentare și texte literare, diferența este că nu puteți face modificări fără permisiunea autorului (de exemplu, opțiunile sunt posibile aici). Și, în sfârșit, este necesară o licență și mai pro-comercial GPCL+- (GP Commerce L+-) pentru a licenția programe precum jocurile pe calculator. Diferența sa față de GPL+ este că activitatea comercială a ANTREPRENORULUI va include și utilizarea programului, desigur, dacă se realizează profit. Vorbim despre folosirea jocurilor în cluburi de computere, ei fac bani din asta, așa că lăsați-i să-i dea autorului un procent. :) Desigur, jocurile pe calculator nu sunt singurul domeniu de aplicare pentru o astfel de licență.

În concluzie, aș dori să observ că multe întrebări referitoare la implementarea unui nou tip de licențiere pentru software liber rămân neclare. Aceste probleme vor fi discutate în detaliu în articolul „Ce este GPL+-?” urmati reclama :)

3 octombrie 2002 Novosibirsk.
Vladimir I. Torshin

Vladimir I. Torshin - De ce nu ar trebui să folosești GNU GPL pentru a-ți licenția programele?

Mai devreme sau mai târziu, fiecare dezvoltator se confruntă cu problema licențierii dezvoltărilor lor. Este mai mult sau mai puțin clar când este dezvoltat un produs comercial cu cod închis. Dar atunci când un dezvoltator dorește să distribuie un program, un plugin sau o bibliotecă de clasă gratuit și open source, pot apărea dificultăți, deoarece există o mulțime de licențe în natură acest fel. Acest articol are scopul de a colecta și organiza datele prin licență și de a evidenția cele mai importante lucruri.

UPD: traducerea unei mici părți din Întrebările frecvente oficiale GPL a fost publicată habrahabr.ru/blogs/Dura_Lex/45878
UPD2: lista de licențe compatibile a fost ajustată și reformulată


Dacă vorbim despre lumea licențelor „libere”, atunci pilonul și nucleul principal pot fi considerate Licența publică generală GNU (GPL). Și în acest articol aș dori să separ licențele care intră sub GNU GPL și să descriu toate celelalte care nu se încadrează în termenii acestei licențe. Prima parte a articolului va descrie GNU GPL în sine, scurta sa istorie și alte licențe care sunt similare cu aceasta. La final voi oferi un mic glosar de termeni și abrevieri.

Licență publică generală GNU

În primul rând, aș dori să explic ce este „GNU”. GNU înseamnă „GNU's not UNIX” - acesta este un acronim recursiv inventat de Richard Stallman, un celebru ideolog al software-ului liber și deschis. Acest nume a fost inventat pentru sistemul de operare pe care Stallman l-a dezvoltat în anii 80. Istoria GNU merită un articol separat, așa că voi trece direct la subiect.

GNU General Public License sau GNU Open License Agreement este o licență a cărei primă versiune datează de la 1 februarie 1989 (Wikipedia spune 1988, dar cred că data este pe originală). În prezent, există patru opțiuni de licență, numerotate în ordinea apariției.

GNU GPL v1.0

Principalele prevederi ale GNU GPL v1.0 sunt următoarele cerințe:
  • furnizarea de coduri sursă disponibile pentru studiu pentru codurile binare publicate sub această licență;
  • Moștenirea licenței în cazul modificării codului sursă, adică modificată sau combinată cu un alt cod ca urmare, trebuie să fie eliberată și sub licența GNU GPL, prin urmare, să fie disponibilă pentru modificare de către oricine.
Aceste cerințe servesc în esență unui singur scop, acela de a împiedica funcționarea legii dreptului de autor asupra software-ului cu sursă deschisă distribuită, care interzice modificarea și utilizarea codului altcuiva.

GNU GPL v2.0

A doua versiune a licenței datează din 1991 și motivul principal proclamă (conform wiki) principiul „Libertate sau Moarte”. Acest principiu este cuprins în clauzele a șaptea și a opta ale acordului:

7. Titularul de licență nu este eliberat de îndeplinirea obligațiilor în conformitate cu prezenta licență dacă, ca urmare a unei hotărâri judecătorești sau a unei declarații de încălcare a drepturilor exclusive sau ca urmare a apariției altor circumstanțe care nu au legătură directă cu încălcarea drepturilor exclusive, Titularul de licență este supus unei hotărâri judecătorești, contract sau alte temeiuri, sunt impuse obligații care contravin termenilor acestei Licențe. În acest caz, Licențiatul nu are dreptul de a distribui copii ale Programului dacă nu poate îndeplini simultan termenii acestei Licențe și obligațiile care îi sunt impuse în modul indicat mai sus. De exemplu, dacă, în conformitate cu termenii acordului de licență, sublicențiaților nu li se poate acorda dreptul de a distribui liber copii ale Programului pe care l-au achiziționat direct sau prin terți de la Licențiat, atunci, în acest caz, Licențiatul trebuie să refuze să distribuie copii ale Programului. programul.

Dacă orice prevedere a acestui alineat este considerată invalidă sau inaplicabilă în circumstanțe specifice, acest alineat se va aplica cu excluderea unei astfel de prevederi. Acest alineat se aplică în general la încetarea circumstanțelor de mai sus sau la absența acestora.

Intenția acestui paragraf nu este de a forța Licențiatul să încalce un brevet sau alte drepturi de proprietate sau să conteste validitatea unei astfel de revendicări. Unicul scop al acestei clauze este de a proteja integritatea sistemului de distribuție a software-ului gratuit, care este furnizat prin licențiere publică. Mulți oameni au contribuit cu generozitate la creație cantitate mare software care este distribuit printr-un sistem dat în speranța utilizării sale pe termen lung și consecvent. Licențiatul nu are dreptul de a forța autorul să distribuie software-ul prin acest sistem. Dreptul de a alege un sistem de distribuție software aparține exclusiv autorului acestuia.

Această clauză 7 are scopul de a defini în mod clar scopurile tuturor celorlalte prevederi ale acestei Licențe.

8. În cazul în care distribuția și/sau utilizarea Programului în anumite țări este limitată de acorduri în domeniul brevetelor sau drepturilor de autor, deținătorul inițial al drepturilor de autor care distribuie Programul în condițiile acestei Licențe are dreptul de a limita aria de distribuție a Programul, indicând numai acele state pe teritoriul cărora este permisă distribuirea Programelor fără restricții datorate unor astfel de acorduri. În acest caz, o astfel de indicație în legătură cu teritoriile anumitor state este recunoscută ca una dintre condițiile prezentei Licențe.

După cum puteți vedea, motivul principal este următorul principiu: Programul nu trebuie distribuit decât dacă utilizatorul final își poate exercita pe deplin dreptul de a-l modifica și distribui sub aceeași licență.

GNU Lesser GPL v2.1

Această versiune a licenței datează din 1999 și conține o diferență uriașă față de licența GNU GPL obișnuită: destinată bibliotecilor, licența le permite să fie utilizate în software proprietar. De exemplu, bibliotecile GNU C sunt distribuite sub licența GNU Lesser GPL v2.1, astfel încât dezvoltatorii terți să le poată utiliza în software-ul lor, gratuit sau comercial.

GNU GPL v3.0

Cea mai recentă versiune a GPL până în prezent, care a fost lansată în 2007. Modificările aduse licenței au fost menite să protejeze utilizatorii de licență de procese legate de brevete; acum creatorii programului nu pot da în judecată utilizatorul. GPL 3.0 interzice aplicarea licenței pentru software care nu poate fi eludat de anumite legi și directive (Legea Digital Millennium Copyright și Directiva Uniunii Europene privind drepturile de autor). Adică, nu puteți elibera sub o licență niciun software care intră în domeniul de aplicare al acestor directive. Astfel, GPL 3.0 asigură că orice software lansat sub licența sa poate fi modificat, ocolit sau schimbat în mod liber.

În plus, GPL 3.0 combate fenomenul de „tivoizare”, unde dispozitivul pe care este instalat software-ul cu licență GPL nu vă permite să îl modificați din diverse motive. GPL v3.0 interzice personalizarea produselor de larg consum (lăsând posibilitatea virusizării dispozitivelor medicale și a altor dispozitive critice).

Împreună cu GPL 3.0 a fost lansat și versiune actualizata GNU Lesser GPL 3.0, care continuă să se distingă prin faptul că permite utilizarea bibliotecilor gratuite în software-ul proprietar.

Compatibilitate

Multe licențe repetă practic principiile stabilite în GPL și diferă, în principiu, doar prin faptul că sunt acceptate de organizații comerciale sau de altă natură. Mai jos voi încerca să rezum astfel de licențe sub anumite versiuni GPL. Compatibilitatea înseamnă că părțile individuale ale software-ului au o licență tip compatibil poate fi lansat în combinație cu părți GPL și sub o licență GPL.

Compatibil numai cu licențe GPL 3.0

GNU Affero General Public License (AGPL) v3 - conține o clauză care precizează că utilizatorii care interacționează cu programul prin intermediul rețelei ar trebui să poată obține și coduri sursă;
Licență Apache, versiunea 2.0;
Licență comunitară educațională 2.0;
Licență de proiect Freetype;
Licență publică Microsoft (Ms-PL);
Licență XFree86 1.1;

Licențe compatibile GNU GPL (ambele versiuni v2 și v3)

Licență artistică 2.0;
Licența pentru baze de date Berkeley (alias Licența pentru produse software Sleepycat);
Boost Software License;
Licență BSD modificată;
CeCILL versiunea 2;
Licență generală Cryptix;
Eiffel Forum License, versiunea 2 - Versiuni anterioare nu erau compatibile;
Licență de expat;
licență FreeBSD;
Licența iMatix Standard Function Library;
Licență independentă de grup JPEG;
licență imlib2;
Licență Intel Open Source;
Licență ISC;
Licență NCSA/University of Illinois Open Source;
Licență Netscape Javascript;
Licență OpenLDAP, versiunea 2.7;
Licență Perl 5 și mai jos;
Domeniu public;
Licențe Python 2.0.1, 2.1.1 și versiuni mai noi;
licenta Ruby;
Standard ML of New Jersey Copyright License;
Unicode, Inc. Acord de licență pentru fișiere de date și software;
Notificare și licență pentru software W3C;
Licență X11 - uneori numită în mod eronat licență MIT.

Licențe compatibile GPL mai mici

Licență eCos versiunea 2.0.

Dicţionar

GNU este un acronim recursiv pentru GNU's Not Unix;
GNU GPL - Acord de licență deschisă GNU;
Software-ul proprietar este software care are limitări în utilizare și nu este deschis pentru modificare, cu alte cuvinte „software non-free”;

) a fost publicat în sfârșit pe 29 iunie 2007. Deși au existat multe discuții despre licență de la apariția primei schițe, nu mulți oameni au vorbit despre beneficiile pe care le oferă dezvoltatorilor. Am publicat acest ghid pentru a completa acest lucru. decalaj. Vom începe cu o scurtă reîmprospătare despre software-ul liber, copyleft și obiectivele GPL. Apoi vom analiza modificările majore ale licenței pentru a vedea cum avansează aceste obiective și beneficiază dezvoltatorii.

Bazele GPL

Nimeni nu ar trebui să fie restricționat de software-ul pe care îl folosește. Există patru libertăți pe care fiecare utilizator ar trebui să le aibă:

  • libertatea de a utiliza software-ul în orice scop,
  • libertatea de a schimba software-ul pentru a se potrivi nevoilor dvs.,
  • libertatea de a partaja software-ul cu prietenii și vecinii tăi și
  • libertatea de a împărtăși schimbările pe care le faci.

Când un program oferă utilizatorilor toate aceste libertăți, îl numim software liber.

Dezvoltatorii care scriu software îl pot lansa în conformitate cu termenii GNU GPL. Când o vor face, va fi software gratuit și va rămâne software gratuit, indiferent cine schimbă sau distribuie programul. Numim acest lucru copyleft: software-ul are drepturi de autor, dar în loc să folosim acele drepturi pentru a restricționa utilizatorii, așa cum o face software-ul proprietar, le folosim pentru a ne asigura că fiecare utilizator are libertate.

Actualizăm GPL pentru a-și proteja copyleft-ul de a fi subminat de evoluțiile legale sau tehnologice. Cea mai recentă versiune protejează utilizatorii de trei amenințări recente:

Versiunea 3 are, de asemenea, o serie de îmbunătățiri pentru a face licența mai ușor de utilizat și de înțeles pentru toată lumea. Dar chiar și cu toate aceste modificări, GPLv3 nu este o licență radical nouă, ci este o evoluție a versiunii anterioare. Deși mult text s-a schimbat, o mare parte clarifică pur și simplu ceea ce a spus GPLv2. Având în vedere acest lucru, haideți să revizuim schimbările majore din GPLv3 și să vorbim despre modul în care acestea îmbunătățesc licența pentru utilizatori și dezvoltatori.

Neutralizarea legilor care interzic software-ul liber – dar nu interzic DRM

Probabil că sunteți familiarizat cu Digital Restrictions Management (DRM) de pe DVD-uri și alte medii. Probabil că sunteți familiarizat și cu legile care fac ilegal să scrieți propriile instrumente prin aceste restricții, cum ar fi Digital Millennium Copyright Act și Directiva Uniunii Europene privind drepturile de autor. Nimeni nu ar trebui să vă poată împiedica să scrieți codul dorit, iar GPLv3 vă protejează acest drept.

Este întotdeauna posibil să utilizați codul GPL pentru a scrie software care implementează DRM. Cu toate acestea, dacă cineva face asta cu cod protejat de GPLv3, secțiunea 3 spune că sistemul nu va fi considerat o măsură eficientă de „protecție” tehnologică. Aceasta înseamnă că dacă dacă spargi DRM-ul, vei fi liber să-ți distribui propriul software care face asta și nu vei fi amenințat de DMCA sau de legile similare.

Ca de obicei, GNU GPL nu restricționează ceea ce fac oamenii în software; doar îi oprește să-i restricționeze pe alții.

Protejarea dreptului dvs. de a mânui

Tivoizarea este o încercare periculoasă de a restrânge libertatea utilizatorilor: dreptul de a modifica software-ul dvs. va deveni lipsit de sens dacă niciunul dintre computerele dvs. nu vă permite să faceți acest lucru. GPLv3 oprește tivoizarea solicitând distribuitorului să vă furnizeze orice informații sau date sunt necesare pentru instalarea modificărilor. software-ul de pe dispozitiv. Acesta poate fi la fel de simplu ca un set de instrucțiuni sau poate include date speciale, cum ar fi chei criptografice sau informații despre cum să ocoliți o verificare a integrității hardware-ului. Va depinde de modul în care a fost proiectat hardware-ul, dar indiferent de ce informații aveți nevoie, trebuie să le puteți obține.

Această cerință este limitată în domeniul de aplicare. Distribuitorilor li se permite în continuare să utilizeze chei criptografice în orice scop și li se va cere să dezvăluie o cheie numai dacă aveți nevoie de ea pentru a modifica software-ul GPL de pe dispozitivul pe care vi l-au oferit. Proiectul GNU însuși folosește GnuPG pentru a dovedi integritatea tuturor software-ul de pe site-ul său FTP, iar măsurile de acest fel sunt benefice pentru utilizatori.GPLv3 nu împiedică oamenii să folosească criptografie, nu ne-am dori. Oprește doar oamenii să-și ia drepturile pe care ți le oferă licența, fie prin legea brevetelor, prin tehnologie sau prin orice alte mijloace.

Protecție mai puternică împotriva amenințărilor legate de brevete

În cei 17 ani de când a fost publicată GPLv2, peisajul brevetelor de software s-a schimbat considerabil, iar licențele pentru software liber au dezvoltat noi strategii pentru a le rezolva. GPLv3 reflectă și aceste modificări. Ori de câte ori cineva transmite software acoperit de GPLv3 pe care l-a scris sau modificat, trebuie să furnizeze fiecărui destinatar toate licențele de brevet necesare pentru a-și exercita drepturile pe care le acordă GPL. În plus, dacă orice licențiat încearcă să folosească un proces de brevet pentru a împiedică un alt utilizator să își exercite aceste drepturi, licența acestuia va fi reziliată.

Ceea ce înseamnă asta pentru utilizatori și dezvoltatori este că vor putea lucra cu software acoperit de GPLv3, fără să-și facă griji că un colaborator disperat va încerca să-i dea în judecată pentru încălcarea brevetelor mai târziu. Cu aceste modificări, GPLv3 oferă utilizatorilor săi mai multe apărări împotriva agresiunii brevetului. decât orice altă licență de software liber.

Clarificarea compatibilității cu licența

Dacă ai găsit un cod și ai vrut să-l încorporezi într-un proiect GPL, GPLv2 a spus că licența pentru celălalt cod nu avea voie să aibă restricții care nu erau deja în GPLv2. Atâta timp cât acesta a fost cazul, am spus că licența este compatibilă cu GPL.

Cu toate acestea, unele licențe aveau cerințe care nu erau cu adevărat restrictive, pentru că erau atât de ușor de respectat. De exemplu, unele licențe spun că nu vă dau permisiunea de a utiliza anumite mărci comerciale. Aceasta nu este chiar o restricție suplimentară: dacă acea clauză nu ar exista, tot nu ați avea permisiunea de a utiliza marca comercială. Am spus întotdeauna că acele licențe sunt compatibile și cu GPLv2.

Acum, GPLv3 dă în mod explicit tuturor permisiunea de a folosi cod care are cerințe ca acesta. Acești termeni noi ar trebui să ajute la lămurirea neînțelegerilor cu privire la ce licențe sunt compatibile cu GPL, de ce este și ce poți face cu codul compatibil GPL.

Noi licențe compatibile

Pe lângă clarificarea regulilor despre licențele care sunt deja compatibile cu GPL, GPLv3 este, de asemenea, nou compatibil cu alte câteva licențe. Licența Apache 2.0 este un prim exemplu. O mulțime de software gratuit grozav sunt disponibile sub această licență, cu comunități puternice în jurul acestuia. Sperăm că această schimbare în GPLv3 va stimula mai multă cooperare și partajare în cadrul liber comunitatea software. Tabelul de mai jos ajută la ilustrarea unor relații comune de compatibilitate între diferite licențe de software liber:

Săgețile care indică de la o licență la alta indică faptul că prima licență este compatibilă cu a doua. Acest lucru este adevărat chiar dacă urmați mai multe săgeți pentru a trece de la o licență la alta; deci, de exemplu, licența ISC este compatibilă cu GPLv3. GPLv2 este compatibil cu GPLv3 dacă programul vă permite să alegeți „orice versiune ulterioară” a GPL, ceea ce este cazul pentru majoritatea software-ului lansat sub această licență. Această diagramă nu este cuprinzătoare (consultați pagina noastră de licențe pentru o listă mai completă a licențelor compatibile cu GPLv2 și GPLv3), dar ilustrează clar că GPLv3 este compatibil cu aproape tot ce este GPLv2, și apoi cu altele.

GNU Affero GPL versiunea 3 a fost, de asemenea, adusă în fold. Affero GPL original a fost conceput pentru a se asigura că toți utilizatorii unei aplicații web vor putea primi sursa acesteia. Versiunea 3 GNU Affero GPL extinde acest obiectiv: este aplicabilă tuturor software-ului interactiv în rețea, deci va funcționa bine și pentru programe precum serverele de jocuri. Prevederea suplimentară este, de asemenea, mai flexibilă, astfel încât, dacă cineva utilizează sursa cu AGPL într-o aplicație fără o interfață de rețea, va trebui să furnizeze sursa doar în același fel în care GPL a cerut întotdeauna. Făcând aceste două licențe compatibile, dezvoltatorii de software interactiv în rețea vor putea să-și consolideze copyleft-ul, construind în continuare pe corpul matur de cod GPL disponibil pentru ei.

Mai multe moduri pentru dezvoltatori de a furniza sursa

Una dintre cerințele fundamentale ale GPL este că atunci când distribuiți cod obiect utilizatorilor, trebuie să le oferiți și o modalitate de a obține sursa. GPLv2 v-a oferit câteva modalități de a face acest lucru, iar GPLv3 le păstrează intacte cu unele clarificări. De asemenea, vă oferă noi modalități de a furniza sursa atunci când transmiteți cod obiect printr-o rețea. De exemplu, atunci când găzduiți cod obiect pe un web sau server FTP, puteți furniza pur și simplu instrucțiuni care le spun vizitatorilor cum să obțină sursa de la un server terță parte. Datorită acestei noi opțiuni, îndeplinirea acestei cerințe ar trebui să fie mai ușoară pentru mulți distribuitori mici care fac doar câteva modificări la corpurile mari de surse.

Noua licență facilitează, de asemenea, transmiterea codului obiect prin BitTorrent. În primul rând, persoanele care pur și simplu descarcă sau introduc torrent-ul sunt scutite de cerințele licenței pentru transmiterea software-ului. Apoi, oricine pornește torrent-ul poate furniza sursa pur și simplu spunând altor utilizatori torrent unde este disponibil pe un server de rețea publică.

Aceste noi opțiuni ajută la menținerea GPL în conformitate cu standardele comunității pentru sursa de oferte, fără a îngreuna obținerea utilizatorilor.

Mai puțină sursă de distribuit: excepție de biblioteci de sistem noi

Ambele versiuni ale GPL vă cer să furnizați toată sursa necesară pentru a construi software-ul, inclusiv biblioteci de suport, scripturi de compilare și așa mai departe. De asemenea, ei trag linie la Bibliotecile de sistem: nu trebuie să furnizați sursa pentru anumite componente de bază ale sistemului de operare, cum ar fi biblioteca C.

GPLv3 a ajustat definiția Bibliotecii de sistem pentru a include software care poate să nu vină direct cu sistemul de operare, dar pe care se poate aștepta în mod rezonabil să îl aibă toți utilizatorii software-ului. De exemplu, acum include și bibliotecile standard ale limbajelor de programare comune, cum ar fi Python și Ruby.

Noua definiție precizează, de asemenea, că puteți combina software-ul GPL cu biblioteci de sistem incompatibile cu GPL, cum ar fi biblioteca C OpenSolaris, și să le distribuiți pe amândouă împreună. Aceste modificări vor face viața mai ușoară distribuitorilor de software gratuit care doresc să ofere aceste combinații pentru utilizatorii lor.

O licență globală

GPLv2 vorbește foarte mult despre „distribuție” – atunci când partajați programul cu altcineva, îl distribuiți. Licența nu spune niciodată ce este distribuția, deoarece termenul a fost împrumutat din legea drepturilor de autor din Statele Unite. Ne așteptam ca judecătorii să caute acolo pentru definiție. Cu toate acestea, am aflat mai târziu că legile privind drepturile de autor din alte țări folosesc același cuvânt, dar îi dau semnificații diferite. Din acest motiv, un judecător dintr-o astfel de țară ar putea analiza GPLv2 diferit decât un judecător din Statele Unite.

GPLv3 folosește un termen nou, „transmite” și oferă o definiție pentru acel termen. „Transmite” are același sens pe care l-am intenționat pentru „distribuie”, dar acum că acest lucru este explicat direct în licență, ar trebui să fie ușor pentru oamenii de pretutindeni să înțeleagă ce am vrut să spunem. Există și alte modificări minore de-a lungul licenței, care vor ajuta, de asemenea, să se asigure că aceasta este aplicată în mod consecvent în întreaga lume.

Când regulile sunt încălcate: o cale lină spre conformitate

Conform GPLv2, dacă ați încălcat licența în vreun fel, drepturile dumneavoastră s-au pierdut automat și definitiv. Singura modalitate de a le recupera a fost să depună o petiție deținătorului drepturilor de autor. Deși o apărare puternică împotriva încălcărilor este valoroasă, această politică poate provoca o mare bătaie de cap atunci când cineva a încălcat din greșeală regulile. Cererea tuturor deținătorilor de drepturi de autor pentru o restaurare oficială a licenței ar putea fi împovărătoare și costisitoare: o distribuție tipică GNU/Linux se bazează pe munca a mii de oameni.

GPLv3 oferă o scutire pentru un comportament bun: dacă încălcați licența, vă veți recupera drepturile odată ce opriți încălcarea, cu excepția cazului în care un deținător al drepturilor de autor vă contactează în termen de 60 de zile. După ce primiți o astfel de notificare, puteți avea drepturile pe deplin. restabilit dacă ați încălcat prima dată și corectați încălcarea în termen de 30 de zile. În caz contrar, puteți rezolva problema de la caz la caz cu deținătorii drepturilor de autor care v-au contactat, iar drepturile dvs. vor fi restaurate ulterior.

Conformitatea cu GPL a fost întotdeauna prioritatea principală a FSF Compliance Lab și a altor grupuri care aplică licența în întreaga lume. Aceste modificări asigură faptul că conformitatea rămâne prioritatea principală pentru agenții de aplicare și oferă incurajatorilor să se conformeze.

Cel mai recent și cel mai mare

Unele dintre aceste schimbări probabil vi se par mai puțin importante decât altele. Este în regulă. Fiecare proiect este diferit și are nevoie de lucruri diferite față de licența sa. Dar șansele sunt că unele dintre aceste îmbunătățiri vă vor ajuta pe dvs. și munca dvs.

Și luate în ansamblu, toate aceste upgrade-uri reprezintă ceva mai mult: am făcut un copyleft mai bun. Face mai mult pentru a proteja libertatea utilizatorilor, dar permite și mai multă cooperare în comunitatea software-ului liber. Dar actualizarea licenței este doar o parte a sarcinii: pentru ca oamenii să obțină beneficiile pe care le oferă, dezvoltatorii trebuie să folosească GPLv3 pentru ei. proiecte, de asemenea. Prin lansarea propriului dvs. software sub noua licență, toți cei care se ocupă de acesta - utilizatori, alți dezvoltatori, distribuitori, chiar și avocați - vor beneficia. Sperăm că veți folosi GPLv3 pentru următoarea versiune.

Dacă doriți să aflați mai multe despre actualizarea proiectului dvs. la GPLv3, Laboratorul de conformitate FSF vă va ajuta cu plăcere. Pe site-ul nostru, puteți găsi instrucțiuni de bază pentru utilizarea licenței și întrebări frecvente care abordează preocupările comune pe care oamenii le au despre Dacă situația dvs. este mai complicată decât atât, vă rugăm să ne contactați și vom face tot ce putem pentru a vă ajuta cu tranziția. Împreună, putem contribui la protejarea libertății pentru toți utilizatorii.