How to Choose an Open Source License for a RAD Framework on GitHub

V tomto článku sa trošku porozprávame o autorskom práve, ale predovšetkým o výbere voľnej licencie pre RAD framework. IONDV. Framework a pre open-source produkty založené na ňom. Povieme o permissívnej licencií, Apache 2.0o tom, čo nás k nej priviedlo a s akými rozhodnutiami sme sa stretli v procese.

Proces výberu licencie je pomerne pracný a vyžaduje si už určité znalosti, a ak nie ste šťastným vlastníkom právneho vzdelania, otvára sa pred vami neorané pole informácií o rôznych voľných licenciách. Hlavné, čo je potrebné urobiť, je zostaviť rad obmedzujúcich kritérií. Počas diskutovania a zamýšľania s vaším tímom sa môžete dozvedieť, čo chcete používateľom vášho produktu povoliť a čo zakázať. Keď už máte nejaký popis, je potrebné ho aplikovať na existujúce licencie a vybrať tú, pri ktorej sa najviac bodov zhoduje. Znie to síce jednoducho, ale v skutočnosti po diskusii obvykle zostáva veľa otázok.

How to Choose an Open Source License for a RAD Framework on GitHub

Najprv – odkaz na choosealicense.com, užitočnú stránku, ktorú sme aktívne používali. Zvlášť si všímajte porovnávaciu tabuľku licencií podľa 13 základných kritérií. Nech je s vami angličtina a trpezlivosť.

Múky výberu

Začneme s obvyklými znakmi licencií pre voľný softvér.Voľný softvér predpokladá výlučne voľnú licenciu, ktorá neobmedzuje komerčné a nekomerčné šírenie podľa modelu. Open CoreTým pádom, ak publikujete softvér pod voľnou licenciou, nemôžete úplne obmedziť jeho prenášanie, šírenie a predaj tretími stranami a na to sa musíte len morálne pripraviť.

Voľná licencia poskytuje používateľovi právo zúčastniť sa na spätnom vývoji softvéru alebo ho inak zmení dostupnými spôsobmi. Väčšina licencií neumožňuje premenovať produkt alebo vykonávať s ním akékoľvek manipulácie, ktoré by menili práva autora a/alebo vlastníka systému.

Hlavné otázky, ktoré nás zaujímali o voľných licenciách, spočívali v:

  1. Zmeny vykonané v softvéri musia byť zaznamenané a nemajú žiadny vzťah k nositeľovi práv na systém?
  2. Názov odvodeného softvéru by sa nemal zhodovať s názvom softvéru vlastníka práv?
  3. Je možné zmeniť licenciu na inú, vrátane proprietárnej, pre všetky nové verzie?

Po dôkladnom preskúmaní zoznamu najbežnejších licencií sme vybrali niekoľko, ktoré sme podrobnejšie preskúmali. Potenciálne licencie pre IONDV. Framwork boli: GNU GPLv3, Apache 2.0, MIT a MРL. MIT takmer okamžite sme vylúčili, ide o povolenú nekopyleft licenciu, ktorá povoľuje používanie, modifikáciu a šírenie kódu takmer akýmikoľvek spôsobmi, a tento variant nás neuspokojoval, chceli sme, aby licencia upravovala vzťahy medzi vlastníkom práv a používateľom. Väčšina menších projektov na GitHube je zverejnená práve pod licenciou MIT alebo jej rôznymi variáciami. Samotná licencia je veľmi krátka a z obmedzení obsahuje iba požiadavku na uvedenie autorstva tvorcu softvéru.

Nasledujúca licencia bola MPL 2.0. Musím priznať, že sme k nej neprišli hneď, ale po podrobnejšom štúdiu sme ju rýchlo vylúčili, pretože jej hlavným nedostatkom je to, že licencia sa vzťahuje nie na celý projekt, ale na jednotlivé súbory. Okrem toho, ak používateľ zmení súbor, nemôže zmeniť licenciu. V praxi, bez ohľadu na to, akú námahu by ste venovali zmene open source projektu, nemôžete ho monetizovať z dôvodu tejto licencie. Toto sa mimochodom netýka vlastníka práv.

Podobný problém sa objavuje aj pri licencii GNU GPLv3. Vyžaduje, aby každý súbor ostal pod ňou. GNU GPL je kopyleft licencia, ktorá vyžaduje, aby zdrojové kódy odvozených diel zostali otvorené a ostávali pod touto licenciou. Teda: prepísaním dvoch riadkov kódu budete nútení zafixovať svoje zmeny a pri ďalšom používaní alebo šírení udržiavať kód pod GNU GPL. V tomto prípade je to obmedzujúci faktor pre používateľa nášho projektu, a nie pre nás. Ale zmena GPL na akúkoľvek inú licenciu je zakázaná, dokonca aj v rámci verzií GPL. Napríklad, ak by ste zmenili LGPL (nadstavba nad GPL) na GPL, neexistuje cesta späť k LGPL. A tento bod bol rozhodujúci v hlasovaní proti.

Celkovo sa náš výber od začiatku prikláňal k GPL3 presne kvôli rozšíreniu modifikovaného kódu pod rovnakou licenciou. Mysleli sme si, že týmto zabezpečíme svoj produkt, ale videli sme menej rizík pri Apache 2.0. Podľa Free Software Foundation je GPLv3 kompatibilná s Apache License v2.0, to znamená, že vždy existuje možnosť zmeniť licenciu z Apache License v2.0 na GPL v3.0.

Apache 2.0

Apache 2.0 — vyvážená povolená licencia zameraná na autorské práva. Tu sú odpovede na otázky, ktoré nás zaujímali. Zmeny v softvéri musia byť zaznamenané a nemajú nič spoločné s vlastníkom systému? Áno, všetky zmeny musia byť zdokumentované a nenesieme zodpovednosť ani za pôvodný kód, ani za zmenený. Súbor so zmenami by mal byť priložený ku kódu, do ktorého ste tieto zmeny urobili. Názov odvodeného softvéru by nemal zodpovedať názvu softvéru vlastníka? Áno, odvozený softvér by mal vychádzať pod iným názvom a pod inou obchodnou známkou, ale s uvedením autorstva vlastníka.

Taktiež pri uvádzaní nových produktov založených na otvorenom kóde pod Apache 2.0 alebo produktov s doplnkovou funkčnosťou nie je nevyhnutné používať tú istú licenciu. Nižšie si môžete pozrieť obrázok s podmienkami a obmedzeniami licencie Apache 2.0.

How to Choose an Open Source License for a RAD Framework on GitHub

Licencia vyžaduje zachovanie a zmienku o autorských právach a licencii, pod ktorou sa softvér vydáva. Povinné je mať oznámenie o autorských práve s menom vlastníka a licenciou chráni práva pôvodného autora softvéru, pretože aj keď bude premenovaný, prenesený alebo predaný pod inou licenciou, meno autora zostane. Na tento účel je tiež možné použiť súbor NOTICE a priložiť ho buď k zdrojovému kódu, alebo do dokumentácie projektu.

Vydávame do otvoreného prístupu na GitHub všetky naše produkty pod licenciou Apache 2.0, okrem IONDV. War archive, ktorého zdrojový kód bol v apríli tohto roku publikovaný pod licenciou GPLv3 na GitHub Dálnovýchodným centrom sociálnych technológií. V súčasnosti okrem samotného frameworku a jeho modulov boli publikované aplikácie urobené na frameworku. Na habre sme už písali o Systéme riadenia projektov a o Registrácia spojenia.

Technické detaily o frameworku

IONDV. Framework – open-source framework na node.js pre vytváranie pokročilých webových aplikácií na základe metadát, ktorý nevyžaduje vážne programátorské zručnosti.

Základom funkčnosti aplikácie je registračný modul – modul Registrátor. Je to kľúčový modul určený na prácu s údajmi na základe štruktúr metadát – vrátane správy projektov, programov, podujatí a ďalších. V projekte sa tiež používa modul portálu na zobrazenie ľubovoľných šablón údajov – na ňom je realizované rozhranie registra archívnych záležitostí.

Pre databázu sa používa MongoDb – v nej sa ukladajú aj nastavenia aplikácie, metadáta a samotné údaje.

Ako aplikovať licenciu na svoj projekt?

Pridajte súbor LICENSE s textom licencie do repozitára svojho projektu a voilà, projekt je pod ochranou Apache 2.0. Je potrebné uviesť vlastníka práv, to je oznámenie o copyrightu. Urobiť to môžete v zdrojovom kóde alebo v súbore NOTICE (textový súbor, ktorý uvádza všetky knižnice licencované pod licenciou Apache spolu s menami ich autorov). Samotný súbor by mal byť buď v zdrojovom kóde, alebo v dokumentácii, ktorá sa distribuuje spolu s dielom. U nás to vyzerá takto:

Copyright © 2018 LLC «ION DV».
Licencované podľa Licencie Apache, verzia 2.0

Text licencie Apache 2.0

Licencia Apache
Verzia 2.0, január 2004
http://www.apache.org/licenses/

PODMIENKY A USTANOVENIA PRE POUŽITIE, REPRODUKCIOU A DISTRIBÚCIU

  1. Definície.

    «Licencia» znamená podmienky a ustanovenia pre použitie, reprodukciu,
    a distribúciu, ako sú definované v oddieloch 1 až 9 tohto dokumentu.

    «Licencovateľ» znamená vlastníka autorských práv alebo subjekt oprávnený
    vlastníkom autorských práv, ktorý udeľuje Licenciu.

    «Právnická osoba» znamená súčasť jednajúceho subjektu a všetky
    iné subjekty, ktoré kontrolujú, sú kontrolované alebo sú pod spoločnou
    kontrolou s týmto subjektom. Na účely tejto definície
    «kontrolovať» znamená (i) moc, priamu alebo nepriamu, spôsobovať
    riadenie alebo vedenie takého subjektu, či už na základe zmluvy alebo
    inak, alebo (ii) vlastníctvo päťdesiatich percent (50%) alebo viac z
    nevybavených akcií, alebo (iii) prospešné vlastníctvo takého subjektu.

    «Vy» (alebo «Váš») znamená jednotlivca alebo právnickú osobu
    využívajúcu povolenia udelené touto Licenciou.

    «Zdroj» forma znamená preferovanú formu na vykonávanie úprav,
    vrátane, ale nie obmedzené na softvér zdrojový kód, dokumentáciu
    zdroj a konfiguračné súbory.

    «Objekt» forma znamená akúkoľvek formu výslednú z mechanickej
    transformácie alebo prekladu zdrojovej formy, vrátane, ale
    nie obmedzené na kompilovaný objektový kód, generovanú dokumentáciu,
    a konverzií na iné typy médií.

    «Dielo» znamená dielo autorstva, či už v zdrojovej alebo
    objektovej forme, sprístupnené na základe Licencie, ako je uvedené v
    oznámení o autorských právach, ktoré je zahrnuté do alebo pripojené k dielu
    (príklad je poskytnutý v dodatku nižšie).

    «Derivačné dielo» znamená akékoľvek dielo, či už v zdrojovej alebo objektovej
    forme, ktoré je založené na (alebo odvodené od) Diela a pre ktoré
    redakčné revízie, anotácie, vysvetlenia alebo iné úpravy
    predstavujú ako celok pôvodné dielo autorského práva. Na účely
    tejto Licencie, Derivátové Diela nebudú zahŕňať diela, ktoré zostávajú
    oddeliteľné od, alebo iba odkazujú (alebo spájajú menom) na rozhrania
    Diela a Derivátové Diela z neho.

    «Príspevok» znamená akékoľvek autorské dielo, vrátane
    pôvodnej verzie Diela a akýchkoľvek úprav alebo dodatkov
    k tomu Dielu alebo Derivátovým dielam, ktoré sú úmyselne
    predložené Licencovateľovi na zaradenie do Diela majiteľom autorských práv
    alebo jednotlivcom alebo právnickou osobou oprávnenou predložiť v mene
    majiteľa autorských práv. Na účely tejto definície «predložené»
    znamená akúkoľvek formu elektronickej, ústnej alebo písomnej komunikácie zaslanej
    Licencovateľovi alebo jeho zástupcom, vrátane, ale nie obmedzene na
    komunikáciu na elektronických mailing listoch, systémoch správy zdrojového kódu,
    a systémoch sledovania problémov, ktoré spravuje alebo v mene
    Licencovateľ s cieľom diskutovať a zlepšovať Dielo, ale
    s vylúčením komunikácie, ktorá je zjavne označená alebo inak
    určená písomne majiteľom autorských práv ako «Nie príspevok.»

    «Prispievateľ» znamená Licencovateľa a akúkoľvek osobu alebo právnickú osobu
    v mene ktorej bol Príspevok prijatý Licencovateľom a
    následne začlenený do Diela.

  2. Poskytnutie Licencie na Autorské Právo. S ohľadom na podmienky a ustanovenia
    tejto Licencie každý Prispievateľ týmto udeľuje Vám trvalú,
    celosvetovú, nevýhradnú, bezplatnú, bezpoplatkovú, neodvolateľnú
    licenciu na autorské právo na reprodukciu, prípravu Derivátových Diel,
    verejné zobrazenie, verejné vykonávanie, sublicencovanie a distribúciu
    Diela a takých Derivátových Diel v Zdrojovej alebo Objektovej forme.

  3. Poskytnutie Licencie na Patent. S ohľadom na podmienky a ustanovenia
    tejto Licencie každý Prispievateľ týmto udeľuje Vám trvalú,
    celosvetovú, nevýhradnú, bezplatnú, bezpoplatkovú, neodvolateľnú
    (s výnimkou uvedenej v tejto sekcii) licenciu na patent na výrobu,
    môcť vyrobiť, používať, ponúkať na predaj, predávať, importovať,
    a inak prenášať Dielo, kde sa taká licencia aplikuje iba na tie
    patentové nároky, ktoré sú licencovateľné
    takýmto Prispievateľom, ktoré sú nevyhnutne porušené ich
    Príspevkom (y) samostatne alebo kombináciou ich Príspevkov
    s Dielom, ku ktorému boli tie Príspevky predložené. Ak vy
    zasadíte patentový súdny spor proti akejkoľvek entite (vrátane
    protivzťahu alebo protinávrhu v žalobe) tvrdí, že Dielo
    alebo Príspevok zahrnutý v Diele predstavuje priamu
    alebo prispievateľskú patentovú infrakciu, potom akékoľvek patentové licencie
    udelene Vám na základe tejto Licencie pre to Dielo zaniknú

  4. v deň, kedy bol taký súdny spor podaný.
    Redistribúcia. Môžete reprodukovať a distribuovať kópie Diela
    alebo Derivátových Diel v akomkoľvek médiu, s alebo bez
    úprav a v Zdrojovej alebo Objektovej forme, za predpokladu, že

    splníte nasledujúce podmienky:
    (a) Musíte poskytnúť akýmkoľvek iným príjemcom Diela alebo

    Derivátových Diel kópiu tejto Licencie; a
    (b) Musíte spôsobiť, aby akékoľvek upravené súbory obsahovali výrazné oznámenia

    oznamujúce, že ste zmenili súbory; a
    (c) Musíte si zachovať, v Zdrojovej forme akýchkoľvek Derivátových Diel
    ktoré distribujete, všetky autorské, patentové, ochranné známky a
    oznámenia o atribúcii z Zdrojovej formy Diela,
    s výnimkou tých oznámení, ktoré sa netýkajú žiadnej časti

    Derivátových Diel; a
    (d) Ak Dielo zahŕňa textový súbor «NOTICE» ako súčasť jeho
    distribúcie, potom akékoľvek Derivátové Diel, ktoré distribujete, musia
    obsahovať čitateľnú kópiu oznámení o atribúcii obsiahnutých
    v takom súbore NOTICE, s výnimkou tých oznámení, ktoré sa netýkajú
    žiadnej časti Derivátových Diel, na minimálne jednom
    z nasledujúcich miest: v textovom súbore NOTICE distribuovanom
    ako súčasť Derivátových Diel; v Zdrojovej forme alebo
    dokumentácii, ak je poskytnutá spolu s Derivátovými Diel; alebo,
    v zobrazení generovanom Derivátovými Diel, ak a
    kdekoľvek sa takéto oznámenia tretích strán zvyčajne objavujú. Obsah
    nepoužívajte Licenciu. Môžete pridať vlastný atribút
    oznámenia v Derivovaných Prácach, ktoré distribuujete, spolu s
    alebo ako prílohu k textu OZNÁMENIA z Diela, za predpokladu,
    že tieto dodatočné atribútové oznámenia nemôžu byť interpretované
    ako zmena Licencie.

    Môžete pridať vlastné vyhlásenie o autorských právach k vašim zmenám a
    môžete poskytnúť ďalšie alebo odlišné licenčné podmienky a ustanovenia
    na použitie, reprodukciu alebo distribúciu vašich zmien, alebo
    na akékoľvek také Derivované Dielo ako celok, za predpokladu, že vaše použitie,
    reprodukcia a distribúcia Diela inak vyhovuje
    podmienkam uvedeným v tejto Licencii.

  5. Predloženie príspevkov. Pokiaľ výslovne neuvádzate inak,
    každý príspevok úmyselne predložený na zahrnutie do Diela
    od vás licencovateľu bude podliehať podmienkam tejto
    Licencie, bez akýchkoľvek dodatočných podmienok.
    Napriek vyššie uvedenému, nič tu nezrušuje ani nemodifikuje
    podmienky akejkoľvek samostatnej licenčnej dohody, ktorú ste mohli uzatvoriť
    s licencovateľom ohľadom takýchto príspevkov.

  6. Obchodné známky. Táto Licencia neudelená povolenie na používanie obchodných
    názvov, ochranných známok, služobných známok alebo názvov produktov licencovateľa,
    okrem prípadu, ak je to potrebné na rozumné a obvyklé použitie pri opise
    pôvodu Diela a reprodukovaní obsahu súboru OZNÁMENIE.

  7. Zrieknutie sa záruky. Pokiaľ nie je vyžadované platným zákonom alebo
    dohodnuté písomne, licencovateľ poskytuje Dielo (a každý
    prispievateľ poskytuje svoje Príspevky) na "JAK JE" BAZE,
    BEZ ZÁROKOV ALEBO PODMIENOK AKÉHOKOĽVEK DRUHU, buď výslovných alebo
    implicite, vrátane, bez obmedzenia, akýchkoľvek záruk alebo podmienok
    O NÁZVE, NEPORUŠENÍ, OBCHODOVATELNOSTI alebo VHODNOSTI NA
    URČITÝ ÚČEL. Ste výhradne zodpovední za posúdenie
    primeranosti použitia alebo redistribúcie Diela a preberáte akékoľvek
    riziká spojené s využívaním povolení podľa tejto Licencie.

  8. Obmedzenie zodpovednosti. V žiadnom prípade a pod žiadnou právnou teóriou,
    či už v delikte (vrátane nedbanlivosti), zmluve alebo inak,
    pokial to nie je vyžadované platným zákonom (ako sú úmyselné a hruboko neprijateľné
    činy) alebo dohodnuté písomne, nemôže byť žiadny prispievateľ
    zodpovedný za vás za škody, vrátane akýchkoľvek priamych, nepriamych, špeciálnych,
    nepriamych alebo následných škôd akéhokoľvek druhu vznikajúcich v dôsledku tejto
    Licencie alebo z používania alebo neschopnosti používať Dielo (vrátane, ale bez obmedzenia, škôd za stratu dobrého mena,
    zastavenie práce, zlyhanie počítača alebo poruchu, alebo akékoľvek a všetky
    iných komerčných škôd alebo strát), aj keď takýto prispievateľ
    bol informovaný o možnosti takýchto škôd.
    Akceptovanie záruky alebo dodatočnej zodpovednosti. Pri redistribúcii

  9. Diela alebo Derivovaných Diel z toho, môžete sa rozhodnúť ponúknuť,
    a účtovať poplatok za prijatie podpory, záruky, náhrady,
    alebo iné zodpovednostné povinnosti a/alebo práva v súlade s touto
    Licenciou. Avšak, pri akceptácii takýchto povinností môžete konať iba
    vo svojom vlastnom mene a na svoju vlastnú zodpovednosť, nie v mene
    žiadneho iného prispievateľa, a len pokiaľ súhlasíte s odškodnením,
    obrana a ochrana každého prispievateľa pred akoukoľvek zodpovednosťou
    vzniknutou, alebo nárokmi vznesenými proti takému prispievateľovi z dôvodu
    vašej akceptácie akejkoľvek takejto záruky alebo dodatočnej zodpovednosti.
    KONIEC PODMIENOK A URČENÍ

    PRÍLOHA: Ako aplikovať Apache Licenciu na vašu prácu.

    Ak chcete aplikovať Apache Licenciu na svoju prácu, priložte nasledujúcu

    štandardnú poznámku, pričom polia uzavreté v zátvorkách «[]»
    nahradíte svojimi vlastnými identifikačnými údajmi. (Nezahrňte
    zátvorky!) Text by mal byť uzavretý v príslušnej
    syntaxe komentára pre formát súboru. Odporúčame tiež, aby bol
    názov súboru alebo triedy a opis účelu zahrnutý na
    rovnakú «tlačenú stránku» ako upozornenie o autorských právach na jednoduchšiu
    identifikáciu v rámci archívov tretích strán.
    Autorské práva [yyyy] [meno vlastníka autorských práv]

    Licencované pod Apache Licenciou, verzia 2.0 ("Licencia");

    Licencované podľa licencie Apache, verzia 2.0 (ďalej len „Licencia“);
    Tento súbor môžete používať iba v súlade s licenciou.
    Kópiu licencie môžete získať na

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

    Pokračovanie podľa platného zákona alebo dohodnuté písomne, softvér
    distribuovaný na základe licencie je distribuovaný na základe «AS IS»,
    BEZ ZÁRUK A PODMIENOK AKÉHOKOĽVEK DRUHU, či už výslovných alebo implicitných.
    Pozrite si licenciu pre konkrétny jazyk, ktorý upravuje povolenia a
    obmedzenia podľa licencie.

Licencia = zmluva

Voľná licencia, hoci je voľná, neumožňuje bezbrehú slobodu a už sme uviedli príklady obmedzení. Vyberte si licenciu s ohľadom na vaše záujmy, ako aj na záujmy používateľa, pretože otvorený softvér je presne pre neho. Používateľ projektu by mal vnímať licenciu ako určité zmluvné dojednanie medzi ním a držiteľom práv, preto pred vykonávaním akýchkoľvek opatrení na zdrojovom kóde dôkladne preskúmajte obmedzenia, ktoré vám licencia projektu nariaďuje.

Dúfame, že sme trošku osvetlili tému licencií a aj napriek zložitosti tejto otázky by sa nemala stať prekážkou na vašej ceste do Open Source. Rozvíjajte svoj projekt a nezabúdajte na práva, svoje aj cudzích.

Užitočné odkazy

Na záver niekoľko užitočných zdrojov, ktoré nám pomohli pri hľadaní informácií o existujúcich licenciách a výbere najvhodnejších pre naše ciele:

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster