Kako odabrati Open Source licencu za RAD okvir na GitHubu

U ovom članku malo ćemo razgovarati o autorskim pravima, ali prvenstveno o izboru slobodne licence za RAD okvir. IONDV. Okvir i za open-source proizvode na njegovoj osnovi. Pričaćemo o dozvoljavajućoj licenci Apache 2.0, o tome što nas je dovelo do nje i s kojim se rešenjima suočavamo tokom procesa.

Proces izbora licence prilično je zahtevan i trebalo bi mu pristupiti nakon što se mnogo pročita, a ako niste srećni vlasnik pravnog obrazovanja, pred vama se otvara neistraženo polje informacija o raznolikim slobodnim licencama. Glavno što treba učiniti je sastaviti niz ograničavajućih kriterijuma. Tokom rasprave i razmišljanja, vi i vaš tim moći ćete da razumete šta želite da dozvolite korisnicima vašeg proizvoda, a šta zabranite. Kada već imate neki opis, potrebno je da ga primenite na postojeće licence i istaknete onu gde se najveći broj stavki poklapa. Zvuči, naravno, jednostavno, ali u stvarnosti, obično čak i nakon rasprave ostaju pitanja.

Kako odabrati Open Source licencu za RAD okvir na GitHubu

Prvo — link na choosealicense.com, korisnu stranicu koju smo aktivno koristili. Posebno obratite pažnju na uporednu tabelu lica za 13 osnovnih kriterija. Neka je engleski s vama i strpljenja.

Muke izbora

Počnimo sa opštim znakovima licenci za slobodni softver.Slobodni softver подразumeva isključivo slobodnu licencu koja ne ograničava komercijalnu i nekomercijalnu distribuciju prema modelu Open Core. Shodno tome, postavljanjem softvera pod slobodnom licencom ne možete potpuno ograničiti njegov prenos, distribuciju i prodaju trećim stranama, a na to se treba samo moralno pripremiti.

Slobodna licenca daje korisniku pravo da sam učestvuje u obrnutoj izradi softvera ili ga menja na druge dostupne načine. Većina licenci ne dozvoljava preimenovanje proizvoda ili izvođenje bilo kakvih manipukacija koje menjaju prava autora ili/iz vlasnika sistema.

Osnovna pitanja koja su nas zanimala o slobodnim licencama bila su:

  1. Da li unesene izmene u softver moraju biti zabeležene i nemaju nikakve veze sa nosiocem prava sistema?
  2. Da li ime derivativnog softvera ne sme biti isto kao ime softvera nosioca prava?
  3. Može li se licenca za sve nove verzije promijeniti na drugu, uključujući i proprietarnu?

Pažljivo smo pregledali popis najčešćih licenci i odabrali nekoliko koje smo razmatrali detaljnije. Potencijalne licence za IONDV. Framwork bile su: GNU GPLv3, Apache 2.0, MIT i MPL. MIT Pre gotovo odmah smo isključili, to je dozvoljena copyleft licenca koja dozvoljava korištenje, modifikaciju i distribuciju koda gotovo kako god želite, a takva opcija nije nam odgovarala; željeli smo da licenca regulira odnose između nositelja prava i korisnika. Većina ne tako velikih projekata na GitHubu objavljena je upravo pod MIT ili njegovim različitim varijacijama. Sama licenca je vrlo kratka, a od zabrana samo navodjenje autorstva stvoritelja softvera.

Sljedeća je bila licenca MPL 2.0. Moram priznati da nismo odmah došli do nje, ali nakon detaljnijeg proučavanja brzo smo je isključili jer je njen glavni nedostatak taj što se licenca ne primjenjuje na cijeli projekt, već na pojedinačne datoteke. Osim toga, ako korisnik promijeni datoteku, ne može promijeniti licencu. U praksi, kako god se trudili promijeniti open source projekt, nećete moći monetizirati zbog takve licence. To se, usput, ne odnosi na nositelja prava.

Sličan problem postoji i s licencom GNU GPLv3. Ona zahtijeva da svaka datoteka ostane pod njom. GNU GPL je copyleft licenca koja zahtijeva da izvorni kodovi derivatnih radova ostanu otvoreni i pod istom licencom. Drugim riječima, ako prepišete dvije linije koda, bit ćete prisiljeni zabilježiti svoje promjene i, u daljnjoj upotrebi ili distribuciji, zadržati kod pod GNU GPL. U ovakvom slučaju, to predstavlja ograničavajući faktor za korisnika našeg projekta, a ne za nas. No, promjena GPL na bilo koju drugu licencu je zabranjena, čak i unutar verzija GPL. Na primjer, ako promijenite LGPL (proširenje GPL) na GPL, povratka na LGPL više neće biti. I ova točka bila je odlučujuća u glasovanju protiv.

U cjelini, naš odabir u početku je bio sklon GPL3 točno zbog raspodjele modificiranog koda pod istom licencom. Mislili smo da ćemo time zaštititi svoj proizvod, ali smo u Apache 2.0 vidjeli manje rizika. Prema Free Software Foundation, GPLv3 je kompatibilan s Apache License v2.0, što znači da postoji mogućnost promjene licence s Apache License v2.0 na GPL v3.0.

Apache 2.0

Apache 2.0 — uravnotežena dozvoljavajuća licenca s naglaskom na autorska prava. Evo na koja pitanja je odgovorila. Mora li se svaki podneseni izmijenjeni softver dokumentirati i nema li veze s vlasnikom sustava? Da, sve izmjene moraju biti dokumentirane i ne snosimo odgovornost ni za izvorni kod, ni za promijenjeni. Datoteka s izmjenama mora se priložiti kodu u koji ste te izmjene unijeli. Mora li ime derivatnog proizvoda biti različito od imena proizvoda vlasnika? Da, derivatni proizvod mora imati drugo ime i drugi zaštitni znak, ali s naznakom autorstva vlasnika prava. Može li se licenca za nove verzije promijeniti na drugu, uključujući i vlasničku? Da, može se izdavati pod različitim licencama, Apache 2.0 ne sprečava korištenje bilo kakvih nekomercijalnih i komercijalnih licenci.

Također, kada izdajemo nove proizvode temeljene na otvorenom kodu pod Apache 2.0 ili dodatnim funkcionalnostima, nije nužno koristiti istu licencu. Ispod možete vidjeti sliku s uvjetima i ograničenjima licence Apache 2.0.

Kako odabrati Open Source licencu za RAD okvir na GitHubu

Licenca postavlja zahtjev za očuvanjem i spominjanjem autorskih prava i licence pod kojom se softver izdaje. Obavezno je prisustvo copyright notice s imenom vlasnika prava i licencijom štiti prava izvornog autora softvera, jer čak i ako bude preimenovano, predano ili prodano pod drugom licencom, znak autora ostat će. Također se može koristiti datoteka NOTICE i priložiti je ili u izvorni kod ili u dokumentaciju projekta.

Sva naša proizvoda izdana su kao otvoreni izvor na GitHubu pod licencom Apache 2.0, osim IONDV. War archive, čiji je izvorni kod objavljen u travnju ove godine pod licencom GPLv3 na GitHubu od strane Dalekoistočnog centra društvenih tehnologija. Trenutno, osim samog okvira i njegov modula objavljeni su aplikacije napravljenih na frameworku. Na Habri smo već pričali o Sustavu upravljanja projektima i o Registar povezanosti.

Tehnički detalji o okviru

IONDV. Framework – open-source okvir na node.js za izradu visokorazinskih web aplikacija na temelju metapodataka, koji ne zahtijeva ozbiljne vještine programiranja.

Osnova funkcionalnosti aplikacije je registar podataka – modul Registri. To je ključni modul, namijenjen izravnom radu s podacima temeljenim na strukturama metapodataka – uključujući vođenje projekata, programa, događanja i slično. Također, u projektu se koristi modul portala za prikazivanje proizvoljnih predložaka podataka – na njemu je implementiran front-end registra arhivskih spisa.

Za SDB se koristi MongoDb – u njemu se čuvaju i postavke aplikacije, metapodaci i sami podaci.

Kako primijeniti licencu na svoj projekt?

Dodajte datoteku LICENSE s tekstom licence u repozitorij svog projekta i voilà, projekt je pod zaštitom Apache 2.0. Treba navesti nositelja prava, to je izjava o autorskim pravima. To se može učiniti u izvornom kodu ili u datoteci NOTICE (tekstualna datoteka koja navodi sve biblioteke licencirane pod Apache licencom zajedno s imenima njihovih autora). Samu datoteku stavite ili u izvorni kod ili u dokumentaciju koja se distribuira zajedno s radom. Tako to izgleda kod nas:

Copyright © 2018 LLC «ION DV».
Licensed under the Apache License, Version 2.0

Tekst licence Apache 2.0

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

UVJETI I ODREDBE ZA KORIŠTENJE, REPRODUKCIJU I DISTRIBUCIJU

  1. Definicije.

    «Licenca» označava uvjete korištenja, reprodukcije
    i distribucije kako je definirano u odredbama 1 do 9 ovog dokumenta.

    «Licencor» označava vlasnika autorskih prava ili entitet ovlašten od
    vlasnika autorskih prava koji dodjeljuje Licencu.

    «Pravna osoba» označava udrugu djelatne osobe i svih
    ostalih entiteta koji kontroliraju, podložni su kontroli ili su pod zajedničkom
    kontrolom tog entiteta. Za potrebe ove definicije,
    «kontrola» se odnosi na (i) moć, izravnu ili neizravnu, da uzrokuje
    upravljanje takvim entitetom, bilo ugovorom ili
    na drugi način, ili (ii) vlasništvo nad pedeset posto (50%) ili više od
    izdanih dionica, ili (iii) korisničko vlasništvo nad tim entitetom.

    «Vi» (ili «Vaši») označava pojedinca ili pravnu osobu
    koja ostvaruje prava dodijeljena ovom Licencom.

    «Izvor» oblik označava preferirani oblik za izvršenje izmjena,
    uključujući, ali ne ograničavajući se na, izvorni kod softvera, dokumentaciju
    izvor, i konfiguracijske datoteke.

    «Objekt» oblik označava bilo koji oblik proizašao iz mehaničke
    transformacije ili prijevoda Izvorno oblik, uključujući, ali
    ne ograničavajući se na, kompajlirani objektni kod, generiranu dokumentaciju,
    i konverzije u druge medijske vrste.

    «Rad» označava autorsko djelo, bilo u Izvornom ili
    Objekt obliku, dostupno pod Licencom, kako je naznačeno od
    izjave o autorskim pravima koja je uključena ili pridružena djelu
    (primjer je dan u Prilogu ispod).

    «Derivativni radovi» označava bilo koje djelo, bilo u Izvornom ili Objekt
    obliku, koje se temelji na (ili proizašlo iz) Rada i za koje
    uredničke revizije, anotacije, elaboracije ili druge izmjene
    predstavljaju, kao cjelinu, originalno autorsko djelo. U svrhe
    ove licence, Derivatna djela neće uključivati djela koja ostaju
    odvojena od, ili samo povezani (ili vezani po imenu) s sučeljima
    djela i Derivatnih djela.

    «Doprinos» označava bilo koje autorsko djelo, uključujući
    izvornu verziju djela i sve izmjene ili dodatke
    tom djelu ili Derivatnim djelima, koja se namjerno
    predaju Licencodavcu radi uključivanja u djelo od strane nositelja autorskih prava
    ili od strane pojedinca ili pravnog subjekta ovlaštenog za podnošenje u ime
    nositelja autorskih prava. U svrhu ove definicije, «predano»
    označava bilo koji oblik elektroničke, verbalne ili pisane komunikacije poslane
    Licencodavcu ili njegovim predstavnicima, uključujući, ali ne ograničavajući se na
    komunikaciju na elektroničkim mailing listama, sustavima kontrole izvornog koda,
    i sustavima praćenja problema koji se upravljaju, ili u ime
    Licencodavca radi rasprave i poboljšanja djela, ali
    započinjemo komunikaciju koja je istaknuto označena ili na drugi način
    označena u pisanom obliku od strane nositelja autorskih prava kao «Nije Doprinos.»

    «Doprinositelj» označava Licencodavca i svaku pojedinca ili pravni subjekt
    u ime koga je Doprinos primljen od strane Licencodavca i
    naknadno integriran unutar djela.

  2. Dodjela licence za autorska prava. Podložno uvjetima i odredbama ove
    licence, svaki Doprinositelj ovime dodjeljuje Vama vječnu,
    globalnu, neekskluzivnu, besplatnu, pravo-besplatnu, neopozivu
    licencu za autorska prava da reproducirate, pripremate Derivatna djela,
    javnu prikaz, javnu izvedbu, podlicencirate i distribuirate
    djelo i takva Derivatna djela u izvornoj ili objektnoj formi.

  3. Dodjela patentske licence. Podložno uvjetima i odredbama
    licence, svaki Doprinositelj ovime dodjeljuje Vama vječnu,
    globalnu, neekskluzivnu, besplatnu, pravo-besplatnu, neopozivu
    (osim kako je navedeno u ovom odjeljku) patentne licence za izradu, izraditi,
    koristiti, ponuditi na prodaju, prodati, uvoziti i na drugi način prenositi djelo,
    gdje se ova licenca odnosi samo na one patente koji se mogu licencirati
    od strane takvog Doprinositelja koji su nužno povrijeđeni njihovim
    Doprinosima ili kombinacijom njihovih Doprinos(a)
    s djelom na koje su takvi Doprinosi predani. Ako Vi
    pokrenete patentni postupak protiv bilo kojeg entiteta (uključujući
    uzajamnu tvrdnju ili protutužbu u postupku) tvrdeći da djelo
    ili Doprinos uključen unutar djela predstavlja izravno
    ili posredno kršenje patenta, tada će sve patente licences
    dodijeljene Vama pod ovom licencom za to djelo prestati važiti
    od datuma kada je takvo suđenje pokrenuto.

  4. Redistribucija. Možete reproducirati i distribuirati kopije
    djela ili Derivatnih djela u bilo kojem mediju, sa ili bez
    izmjena, i u izvornoj ili objektnoj formi, pod uvjetom da Vi
    ispunite sljedeće uvjete:

    (a) Morate dati bilo kojim drugim primateljima djela ili
    Derivatnih djela kopiju ove licence; i

    (b) Morate uzrokovati da svi izmijenjeni datoteke nose istaknute obavijesti
    koje navode da ste izmijenili datoteke; i

    © Morate zadržati, u izvornoj formi bilo kakvih Derivatnih djela
    koje distribuirate, sve obavijesti o autorskim pravima, patentima, žigovima, i
    obavijesti o atribuciji iz izvorne forme djela,
    isključujući one obavijesti koje se ne odnose na nijedan dio
    Derivatnih djela; i

    (d) Ako djelo uključuje «OBAVIJEST» tekstualnu datoteku kao dio
    njegove distribucije, tada bilo koja Derivatna djela koja distribuirate mora
    uključiti čitljivu kopiju obavijesti o atribuciji sadržanih
    unutar takve OBAVIJESTI datoteke, isključujući one obavijesti koje se ne
    odnose na nijedan dio Derivatnih djela, na najmanje jednom
    od sljedećih mjesta: unutar OBAVIJESTI tekstualne datoteke distribuirane
    kao dio Derivatnih djela; unutar izvorne forme ili
    dokumentacije, ako se pruža zajedno s Derivatom djela; ili,
    unutar prikaza generiranog od Derivatnog djela, ako i
    gdje god se takve treće strane obavijesti obično pojavljuju. Sadržaj
    OBAVIJESTI datoteke je isključivo informativne prirode i
    ne modificirajte Licencu. Možete dodati svoje vlastito priznanje
    obavijesti unutar Derivativnih djela koja distribuirate, uz
    ili kao dodatak tekstu OBAVIJESTI iz Djela, pod uvjetom
    da se takve dodatne obavijesti o priznanju ne mogu tumačiti
    kao izmjena Zakona.

    Možete dodati vlastitu izjavu o autorskim pravima svojim izmjenama i
    možete pružiti dodatne ili različite licence i uvjete
    za korištenje, reprodukciju ili distribuciju vaših izmjena, ili
    za bilo koja takva Derivativna djela kao cjelinu, pod uvjetom da vaša upotreba,
    reprodukcija i distribucija Djela inače udovoljava
    uvjetima navedenim u ovoj Licenci.

  5. Podnošenje doprinosa. Osim ako izričito ne navedete drukčije,
    bilo koji Doprinos koji ste namjerno dostavili za uključivanje u Djelo
    od vas Licencoru bit će pod uvjetima i odredbama
    ove Licencije, bez dodatnih uvjeta ili odredbi.
    Nerazmjerno gore, ništa ovdje ne smije nadmašiti ili izmijeniti
    uvjete bilo kojeg posebnog ugovora o licenci koji ste možda potpisali
    s Licencorom u vezi s takvim Doprinosima.

  6. Žigovi. Ova Licenca ne daje dozvolu za korištenje trgovačkih
    naziva, žigova, uslužnih žigova ili naziva proizvoda Licencora,
    osim kao što je potrebno za razumne i uobičajene upotrebe u opisivanju
    porijekla Djela i reproduciranju sadržaja datoteke OBAVIJEST.

  7. Odricanje od jamstva. Osim ako je to zahtijevano važećim zakonom ili
    dogovoreno u pisanom obliku, Licencor pruža Djelo (i svaki
    Doprinos pruža svoje Doprinos) na osnovi «KAKAV JEST»,
    BEZ JAMSTAVA ILI UVJETA BILO KOJE VRSTE, bilo izričitih ili
    podrazumijevanih, uključujući, bez ograničenja, bilo kakva jamstva ili uvjete
    VLASNIŠTVA, NEPOZNAČENJA, PRODAJNOSTI ili ODGOVARAJUĆA UPOTREBA.
    Potpuno ste odgovorni za određivanje
    prikladnosti korištenja ili redistribucije Djela i preuzimate sve
    rizike povezane s vašim korištenjem dozvola prema ovoj Licenci.

  8. Ograničenje odgovornosti. U nijednom slučaju i prema nijednoj pravnoj teoriji,
    bilo u deliktu (uključujući nemar), ugovoru ili na drugi način,
    osim ako to zahtijeva važeći zakon (kao što su namjerni i očigledno
    nemarni postupci) ili je dogovoreno u pisanom obliku, nijedan Doprinositelj ne smije
    biti odgovoran za vas za štetu, uključujući bilo kakve izravne, neizravne, posebne,
    pomoćne ili posljedične štete bilo kakvog karaktera koje proizlaze kao
    rezultat ove Licencije ili iz korištenja ili nemogućnosti korištenja
    Djela (uključujući, ali ne ograničavajući se na štete za gubitak dobrih odnosa,
    zaustavljanje rada, kvarove ili neispravnosti računala, ili bilo kakve i sve
    druge komercijalne štete ili gubitke), čak i ako je takav Doprinositelj
    bio upozoren na mogućnost takvih šteta.

  9. Prihvaćanje jamstva ili dodatne odgovornosti. Dok redistribuirate
    Djelo ili Derivativna djela toga, možete odabrati ponuditi,
    i naplatiti naknadu za, prihvaćanje podrške, jamstva, odštete,
    ili druge obveze i/ili prava koja su u skladu s ovom
    Licencijom. Međutim, prihvaćanjem takvih obveza, možete djelovati samo
    na svoj vlastiti račun i na svoju isključivu odgovornost, a ne u ime
    bilo kojeg drugog Doprinositelja, a samo ako se složite s odštetom,
    obrana i oslobađanje svakog Doprinositelja od bilo koje odgovornosti
    nastale zbog, ili potraživanja podnesenih protiv, takvog Doprinositelja zbog
    vašeg prihvaćanja bilo kakvih takvih jamstava ili dodatnih odgovornosti.

    KRAJ UVJETA I ODREDBI

    DODATAK: Kako primijeniti Apache licencu na svoje djelo.

    Da biste primijenili Apache licencu na svoje djelo, priložite sljedeću
    standardnu obavijest, s poljima unutar zagrada «[]»
    zamijenjenima vašim vlastitim identifikacijskim informacijama. (Ne uključujte
    zagrade!) Tekst bi trebao biti obuhvaćen odgovarajućom
    sintaksom komentara za format datoteke. Također preporučujemo da se
    uključuje naziv datoteke ili klase i opis svrhe na
    istom «otisnutom listu» kao i obavijest o autorskim pravima radi lakše
    identifikacije unutar arhiva trećih strana.

    Autorska prava [yyyy] [ime vlasnika autorskih prava]

    Licencirano pod Apache Licencom, Verzija 2.0 (»Licenca»);
    Ne smijete koristiti ovu datoteku osim u skladu s licencom.
    Možete dobiti kopiju licence na

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

    Osim ako to nije zahtijevano zakonom ili dogovoreno pisano, softver
    distribuiran pod licencom distribuira se na «KAKO JE» OSNOVI,
    BEZ GARANCIJA ILI UVJETA BILO KOJE VRSTE, bilo izričitih ili implicitnih.
    Pogledajte licencu za konkretan jezik koji regulira dozvole i
    ograničenja prema licenci.

Licenca = ugovor

Slobodna licenca, iako je slobodna, ne dopušta nezajaždu i već smo naveli nekoliko primjera ograničenja. Birajte licencu uzimajući u obzir kako svoje tako i korisničke interese, jer je otvoreni softver prvenstveno namijenjen njima. Korisnik projekta treba percepirati licencu kao svojevrsni ugovor između njega i nositelja prava, stoga prije nego što poduzmete bilo kakve radnje s izvorni kod, pažljivo proučite ograničenja koja na vas postavlja licenca projekta.

Nadamo se da smo rasvijetlili temu licenci i, unatoč složenosti pitanja, ono ne bi trebalo biti prepreka na vašem putu prema Open Source. Razvijajte svoj projekt i ne zaboravite na prava, svoja i tuđa.

Koristitne veze

Na kraju, nekoliko korisnih resursa koji su nam pomogli prilikom traženja informacija o postojećim licencama i odabiru najprikladnije za naše ciljeve:

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster