Kako izbrati Open Source licenco za RAD okvir na GitHubu

V tem članku bomo nekoliko govorili o avtorskih pravicah, predvsem pa o izbiri proste licence za RAD okvir. IONDV. Okvir in za odprtokodne produkte na njeni osnovi. Povedali bomo o dovoljevalni licenci Apache 2.0, o tem, kar nas je pripeljalo do nje, in s kakšnimi rešitvami smo se srečali v procesu.

Postopek izbire licence je precej zamuden in do njega je treba pristopiti že dobro informirano, in če niste srečni imetnik pravne izobrazbe, se vam odpira neurejeno polje informacij o raznolkih prostih licencah. Osnovno, kar je treba storiti, je oblikovati vrsto omejevalnih meril. V postopku razprave in razumevanja boste s svojo ekipo lahko razumeli, kaj želite dovoliti uporabnikom vašega produkta in kaj prepovedati. Ko imate že nek opis, je treba to nalagati na obstoječe licence in izpostaviti tisto, kjer se je največ točk ujemalo. Zveni preprosto, a v resnici, običajno tudi po razpravi ostajajo vprašanja.

Kako izbrati Open Source licenco za RAD okvir na GitHubu

Najprej — povezava na choosealicense.com, koristna spletna stran, ki smo jo aktivno uporabljali. Še posebej bodite pozorni na primerjalno tabelo licenc po 13 osnovnih merilih. Naj bo z vami angleščina in potrpljenje.

Muke izbire

Začnimo s splošnimi znaki licenc za prosto programsko opremo.PSO pomeni izključno svobodno licenco, ki ne omejuje komercialne in nekomercialne distribucije po modelu. Open CoreZato, ko svoje programske opreme pod prosto licenco ne morete popolnoma omejiti pri prenosu, distribuciji in prodaji s tretjimi osebami, se je treba na to le moralno pripraviti.

Prosta licenca uporabniku daje pravico, da sam sodeluje v obratnem razvoju programske opreme ali jo spremeni z drugimi dostopnimi načini. Večina licenc ne dovoljuje preimenovanja produkta ali izvajanja kakršnih koli manipulacij, ki bi spreminjale pravice avtorja ali/ali lastnika sistema.

Glavna vprašanja, ki so nas zanimala, glede prostih licenc so bila:

  1. Spremembe, vnesene v programsko opremo, morajo biti zabeležene in nimajo nobene zveze s pravnikov lastnikom sistema?
  2. Ime derivativne programske opreme se ne sme ujemati z imenom programske opreme imetnika pravic?
  3. Ali je mogoče spremeniti licenco za vse nove različice na drugo, vključno s proprietary licenco?

Po podrobnem pregledu seznama najbolj pogostih licenc, smo izbrali nekaj, ki smo jih natančneje preučili. Potencialne licence za IONDV. Framwork so bile: GNU GPLv3, Apache 2.0, MIT in MPL. MIT Smo skoraj takoj izključili MIT, kajti to je permissive non-copyleft licenca, ki omogoča uporabo, spreminjanje in distribucijo kode skoraj na vsak način, kar nam ni ustrezalo, saj smo želeli, da licenca ureja odnose med imetnikom pravic in uporabnikom. Večina manjših projektov na GitHubu je objavljena prav pod MIT licenco ali njenimi različicami. Licenca je zelo kratka, edina prepoved je navajanje avtorstva ustvarjalca programske opreme.

Naslednja je bila licenca MPL 2.0. Opravičujem se, do nje nismo hitro prišli, ampak smo jo hitro izključili po podrobnejšem pregledu, saj je njen glavni pomanjkljivost ta, da se licenca ne uporablja za celoten projekt, temveč za posamezne datoteke. Poleg tega, če uporabnik spremeni datoteko, je ne more spremeniti. V resnici, ne glede na to, kako prizadeven si pri spreminjanju open-source projekta, ga ne moreš monetizirati zaradi take licence. To se sicer ne nanaša na imetnika pravic.

Podobna težava se pojavi tudi pri licenci GNU GPLv3. Zahteva, da vsaka datoteka ostane pod njo. GNU GPL je copyleft licenca, ki zahteva, da so izvorne kode izpeljanih del odprte in ostanejo pod to licenco. To pomeni: če prepišete dve vrstice kode, boste prisiljeni zabeležiti svoje spremembe in ob nadaljnji uporabi ali distribuciji ohraniti kodo pod GNU GPL. V tem primeru je to omejitveni dejavnik za uporabnika našega projekta, ne za nas. Ampak sprememba GPL na katerokoli drugo licenco je prepovedana, celo znotraj različic GPL. Na primer, če spremenite LGPL (nadgradnja GPL) na GPL, poti nazaj k LGPL ne bo. In ta točka je bila odločilna pri glasovanju proti.

Na splošno je naš izbor sprva nagibal k GPL3 ravno zbog širenja modifikovanog koda pod istom licencom. Mislili smo da ćemo tako zaštititi svoj proizvod, ali smo uvideli manje rizike u Apache 2.0. Prema Free Software Foundation, GPLv3 je kompatibilan sa Apache License v2.0, što znači da uvek postoji mogućnost da se promeni licenca sa Apache License v2.0 na GPL v3.0.

Apache 2.0

Apache 2.0 — uravnotežena dozvoljavajuća licenca sa naglaskom na autorskim pravima. Ovo su neki odgovori koje je dala na pitanja koja nas zanimaju. Da li izmene u softveru moraju biti dokumentovane i nemaju nikakve veze sa nosiocem prava na sistem? Da, sve izmene moraju biti dokumentovane i mi ne snosimo odgovornost ni za izvorni kod, ni za izmenjeni. Datoteka s izmenama treba da bude priložena kodu u koji ste te izmene uneli. Da li ime derivatnog softvera može biti isto kao ime softvera nosioca prava? Da, derivatni softver treba da se objavi pod drugim imenom i drugim robnim znakom, ali uz navođenje autorstva nosioca prava. Da li se licenca može menjati za bilo koje nove verzije na drugu, uključujući i na proprijatnu? Da, možemo izdavati pod različitim licencama, Apache 2.0 ne ograničava primenu bilo kojih nekomercijalnih i komercijalnih licenci.

Takođe, kada izdavate nove proizvode na osnovu otvorenog koda pod Apache 2.0 ili proizvode dodatne funkcionalnosti, nije obavezno koristiti istu licencu. Ispod možete pogledati sliku sa uslovima i ograničenjima licence Apache 2.0.

Kako izbrati Open Source licenco za RAD okvir na GitHubu

Licenca postavlja zahtev za čuvanjem i navođenjem autorskih prava i licence pod kojom se softver izdaje. Obavezno prisustvo copyright notice sa imenom nosioca prava i licencom štiti prava prvobitnog autora softvera, jer čak i ako bude preimenovano, dato ili prodato pod drugom licencom, znak autora ostaje. Za to se može koristiti i datoteka NOTICE i priložiti je ili u izvorni kod ili u dokumentaciju projekta.

Sva naša proizvoda puštamo u otvoreni pristup na GitHub-u pod licencom Apache 2.0, osim IONDV. War archive, čiji je izvorni kod u aprilu ove godine objavljen pod licencom GPLv3 na GitHub-u od strane Dalekog Istoka Centra za socijalne tehnologije. Trenutno, pored samog frameworka і його modulov so bili objavljeni aplikacije napravljenih na frameworku. Na Habru smo već pisali o Sistem za upravljanje projektima in Register povezav.

Tehnične podrobnosti o okviru

IONDV. Framework – odprtokodni okvir na node.js za ustvarjanje visoko nivojskih spletnih aplikacij na osnovi metapodatkov, ki ne zahteva resnih programerskih veščin.

Osnova funkcionalnosti aplikacije je register podatkov – modul Registri. To je ključni modul, zasnovan za delo s podatki na osnovi struktur metapodatkov – vključno z upravljanjem projektov, programov, dogodkov in še več. V projektu se uporablja tudi modul portala za prikaz poljubnih predlog podatkov – v tem se nahaja sprednji del registra arhivskih zadev.

Za SGBD se uporablja MongoDb – v njej so shranjene nastavitve aplikacije, metapodatki in sami podatki.

Kako uporabiti licenco v svom projektu?

Dodajte datoteko LICENSE s tekstom licence v repozitorij vašega projekta in voilà, projekt je zaščiten z Apache 2.0. Potrebno je navesti imetnika pravic, to je obvestilo o avtorskih pravicah. To lahko storite v izvorni kodi ali v datoteki NOTICE (besedilna datoteka, ki navaja vse knjižnice, licencirane pod Apache licenco skupaj z imeni njihovih ustvarjalcev). Samo datoteko postavite bodisi v izvorno kodo bodisi v dokumentacijo, ki se porazdeli skupaj z delom. Pri nas to izgleda takole:

Copyright © 2018 LLC „ION DV“.
Licencirano pod Apache licenco, različica 2.0

Besedilo Apache licence 2.0

Apache licenca
Različica 2.0, januar 2004
http://www.apache.org/licenses/

Pogoji in določila za uporabo, reproduciranje in distribucijo

  1. Definicije.

    „Licenca“ pomeni pogoje in določila za uporabo, reproduciranje
    in distribucijo, kot so opredeljeni v odstavkih 1 do 9 tega dokumenta.

    „Licencodajalec“ pomeni lastnika avtorskih pravic ali subjekt, ki ga pooblašča
    lastnik avtorskih pravic, ki podeljuje licenco.

    „Pravna oseba“ pomeni združitev delujočega subjekta in vseh
    drugih subjektov, ki nadzorujejo, so nadzorovani ali so pod skupnim
    nadzorom s tem subjektom. Za namene te definicije
    „nadzor“ pomeni (i) moč, neposredno ali posredno, da povzroči
    usmeritev ali upravljanje takšnega subjekta, ne glede na pogodbo ali
    kako drugače, ali (ii) lastništvo petdeset odstotkov (50 %) ali več
    od izdanih delnic, ali (iii) koristno lastništvo takega subjekta.

    „Vi“ (ali „Vaš“) pomeni posameznika ali pravno osebo
    ki uporablja dovoljenja, podeljena s to licenco.

    „Izvorna“ oblika pomeni preferirano obliko za spremembe,
    vključno, vendar ne omejeno na izvorno kodo programske opreme, dokumentacijo
    in konfiguracijske datoteke.

    „Objektna“ oblika pomeni katerokoli obliko, ki nastane zaradi mehanične
    transformacije ali prevajanja izvorne oblike, vključno, vendar ne omejeno
    na skompilirano objektno kodo, generirano dokumentacijo,
    in konverzije v druge vrste medijev.

    „Delo“ pomeni avtorsko delo, ne glede na to, ali v izvorni ali
    objektni obliki, na voljo pod licenco, kot je navedeno z
    obvestilom o avtorskih pravicah, ki je vključeno v ali priloženo delu
    (primer je naveden v dodatku spodaj).

    „Izvedena dela“ pomeni kakršno koli delo, ne glede na to, ali v izvorni ali objektni obliki
    oblik, ki temelji na (ali izhaja iz) Dela in za katerega
    so uredniške spremembe, pripombe, razširitve ali druge spremembe
    predstavljajo kot celoto izvirno avtorsko delo. Za namene
    tega Licenca, Izpeljana Dela ne vključujejo del, ki ostajajo
    ločljiva od, ali zgolj povezujejo (ali vezano po imenu) na vmesnike
    Dela in Izpeljanih Del tega.

    «Prispevek» pomeni katerokoli avtorsko delo, vključno
    z izvirno različico Dela in kakršnimi koli spremembami ali dodatki
    temu Delu ali Izpeljanih Delom, ki je namenoma
    predloženo Licencodajalcu za vključitev v Delo s strani imetnika avtorskih pravic
    ali posameznika ali pravne osebe, pooblaščenega, da predloži v imenu
    imetnika avtorskih pravic. Za namene te definicije, «predloženo»
    pomeni katerokoli obliko elektronske, verbalne ali pisne komunikacije, ki se pošlje
    Licencodajalcu ali njegovim predstavnikom, vključno, vendar ne omejeno na
    komunikacijo na elektronskih poštnih seznamih, sistemih za nadzor izvorne kode,
    in sistemih za sledenje težavam, ki jih upravlja, ali v imenu,
    Licencodajalec za namen razpravljanja in izboljšanja Dela, vendar
    izključuje komunikacijo, ki je očitno označena ali drugače
    določena pisno s strani imetnika avtorskih pravic kot «Ni Prispevek.»

    «Pridružitelj» pomeni Licencodajalca in katerokoli posameznika ali pravno osebo,
    v imenu katerega je bil Prispevek prejet s strani Licencodajalca
    in nato vključeno v Delo.

  2. Podelitev Licence za Avtorsko Pravo. Ob upoštevanju pogojev in določil
    te Licenca, vsak Pridružitelj s tem daje Vam večno,
    svetovno, neizključna, brezplačna, nepreklicna
    licenco za avtorsko pravo za reproduciranje, pripravo Izpeljanih Del,
    javno prikazovanje, javno izvajanje, podlicenciranje in distribucijo
    Dela in takih Izpeljanih Del v Izvorni ali Objektni obliki.

  3. Podelitev Licenca za Patente. Ob upoštevanju pogojev in določil
    te Licenca, vsak Pridružitelj s tem daje Vam večno,
    svetovno, neizključna, brezplačna, nepreklicna
    (razen kot je navedeno v tej sekciji) licenca za patente za izdelavo, imeti izdelano,
    uporabljati, ponuditi za prodajo, prodati, uvoziti in drugače prenesti Delo,
    kjer se ta licenca uporablja samo za tiste patentne zahteve, ki jih je mogoče
    licencirati odtakega Pridružitelja, ki so nujno kršene s strani njihovih
    Prispevkov samih ali v kombinaciji s svojimi Prispevki
    z Delom, na katerega so bili ti Prispevki predloženi. Če Vi
    začnete patentne obravnave proti katerikoli enoti (vključno z
    cross-claim ali counterclaim v tožbi) in trdite, da Delo
    ali Prispevek, vključen znotraj Dela, predstavlja neposredno
    ali pomožno kršitev patenta, potem katere koli patentne licence
    dane Vam pod to Licenco za to Delo prenehajo veljati
    od datuma, ko se takšno tožbo vloži.

  4. Ponovna distribucija. Lahko reproducirate in distribuirate kopije
    Dela ali Izpeljanih Del v katerikoli medij, z ali brez
    sprememb, in v Izvorni ali Objektni obliki, pod pogojem, da Vi
    izpolnete naslednje pogoje:

    (a) Morate dati vsem drugim prejemnikom Dela ali
    Izpeljanih Del kopijo te Licence; in

    (b) Morate poskrbeti, da bodo vse spremenjene datoteke nosile opazne obvestila
    o tem, da ste spremenili datoteke; in

    (c) Morate obdržati, v Izvorni obliki vseh Izpeljanih Del,
    ki jih distribuirate, vsa obvestila o avtorskih pravicah, patenti, blagovne
    znamke in
    podatki iz Izvorne oblike Dela,
    izključujoč tista obvestila, ki se ne nanašajo na noben del

    Izpeljanih Del; in
    (d) Če Delo vključuje datoteko «OBVESTILO» kot del njegovega
    distribucije, potem morajo katerikoli Izpeljanih Del, ki jih distribuirate,
    vključevati berljivo kopijo obvestil o pričanju, ki so vsebovana
    v takšni datoteki OBVESTILO, izključujoč tista obvestila, ki se ne
    nanašajo na noben del Izpeljanih Del, na vsaj enem
    iz naslednjih mest: znotraj datoteke OBVESTILO, distribuirane
    kot del Izpeljanih Del; znotraj Izvorne oblike ali
    dokumentacije, če so zagotovljeni skupaj z Izpeljanimi Deli; ali,
    v prikazu, ki ga generirajo Izpeljana Dela, če in kdajkoli se obvestila tretjih oseb običajno pojavijo. Vsebine
    vsebina datoteke NOTICE je zgolj informativna in
    ne spreminjajte licence. Lahko dodate svoje lastne pripombe o
    avtorskih pravicah v izpeljanih delih, ki jih distribuirate, poleg
    ali kot dodatek k besedilu NOTICE iz dela, pod pogojem,
    da dodatne pripombe o avtorstvu ne morejo biti razumljene
    kot sprememba licence.

    Lahko dodate svoje lastne izjave o avtorskih pravicah na
    svoje spremembe in
    omogočite dodatne ali druge licenčne pogoje in določila
    za uporabo, reprodukcijo ali distribucijo vaših sprememb ali
    za katera koli taka izpeljana dela kot celota, pod pogojem, da vaša
    uporaba, reprodukcija in distribucija dela sicer izpolnjujejo

  5. pogojne določbe te licence.
    Predložitev prispevkov. Razen če izrecno navedete drugače,
    vsak prispevek, ki ga namerno predložite za vključitev v delo
    licencorju, je pod pogojem in določili
    te licence, brez kakršnih koli dodatnih pogojev ali določil.
    Ne glede na zgoraj navedeno, nič v tej določbi ne prekliče ali spremeni
    določb katere koli ločene licenčne pogodbe, ki ste jo morda sklenili

  6. z licencorjem v zvezi s takimi prispevki.
    Blagovne znamke. Ta licenca ne daje dovoljenja za uporabo
    trgovskih imen, blagovnih znamk, storitvenih znamk ali imen izdelkov licencorja,
    razen če je to potrebno za razumne in običajne uporabe pri opisu

  7. izvora dela ter reprodukciji vsebine datoteke NOTICE.
    Odziv na garancijo. Razen če je to zahtevano z veljavno zakonodajo ali
    dogovorjeno pisno, licencor zagotavlja delo (in vsak
    prispevek omogoča svoje prispevke) na osnovi »TAKŠNE KOT SO«
    BREZ GARANCIJ ALI POGOJEV KAKRŠNEKOLI VRSTE, bodisi izrecnih bodisi
    implicitnih, vključno, brez omejitev, kakršnih koli garancij ali pogojev
    lastništva, odsotnosti kršitev, prodajnosti ali ustreznosti za
    DOLGO PRVO NAMEN. Sami ste odgovorni za določitev
    primernosti uporabe ali ponovne distribucije dela in prevzamete morebitna

  8. risika v zvezi z uveljavljanjem dovoljenj po tej licenci.
    Omejitev odgovornosti. V nobenem primeru in pod ničemer pravnim teoretičnem
    principu, bodisi v škodi (vključno z malomarnostjo), pogodbi ali drugače,
    razen če je to zahtevano z veljavno zakonodajo (kot so namerno in hudo
    malomarne dejanja) ali dogovorjeno pisno, ne sme biti noben prispevek
    odgovoren za vas za škodo, vključno z neposrednimi, posrednimi, posebnimi,
    nekaterimi ali kasnejšimi škodami katere koli vrste, ki izhajajo iz
    te licence ali iz uporabe ali nezmožnosti uporabe dela (vključno z
    ampak ne omejeno na škodo zaradi izgube dobrega imena,
    ustavljanja dela, okvare računalnika ali okvare, ali kakršna koli in vse
    druge komercialne škode ali izgube), tudi če je bil tak prispevek

  9. obveščen o možnosti takih škod.
    Sprejemanje garancije ali dodatne odgovornosti. Pri ponovni distribuciji
    dela ali njegovih izpeljanih del lahko izberete,
    in zaračunate strošek za sprejem podpore, garancije, odškodnine,
    ali drugih obveznosti glede odgovornosti in/ali pravic v skladu s to
    licenco. Vendar pa ob sprejemu takih obveznosti delujete le
    v lasten imenu in na lastno odgovornost, ne v imenu
    kateregakoli drugega prispevka, in le če se strinjate, da odškodnino,
    obrnete in zaščitite vsak prispevek pred kakršno koli odgovornostjo
    ali zahtevki, ki jih izrecno uveljavlja tak prispevek zaradi

    vašega sprejemanja garancije ali dodatne odgovornosti.

    KONEC POGOJEV IN DOLOČIL

    PRILOGA: Kako uporabiti Apache License na svoje delo.
    Za uporabo Apache License na svojem delu priložite naslednje
    standardno obvestilo, pri čemer so polja, ki so vključena v oglate kvadrate «[]»,
    zamenjana z vašimi identifikacijskimi podatki. (Ne vključujte
    kvadratov!) Besedilo naj bo vključeno v ustrezno
    sintakso komentarja za datotečni format. Prav tako priporočamo, da
    se imenuje datoteka ali razred ter opredelitev namena vključita na
    isto «tiskano stran» kot obvestilo o avtorskih pravicah za lažjo

    identifikacijo v arhivih tretjih oseb. Copyright [yyyy] [ime lastnika avtorskih pravic]

    Licenciran pod Apache Licencom, Verzija 2.0 (dalje «Licenca»);
    ne smete koristiti ovu datoteku osim u skladu sa Licencom.
    Kopiju Licence možete dobiti na

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

    Osim ako to ne zahteva važeći zakon ili nije dogovoreno pisano, softver
    distribuiran pod Licencom se distribuiše na osnovu «AS IS»,
    BEZ GARANCIJA ILI USLOVA bilo koje vrste, bilo izričitih ili podrazumevanih.
    Pogledajte Licencu za specifičan jezik koji reguliše dozvole i
    ograničenja pod Licencom.

Licenca = ugovor

Slobodna licenca, iako je slobodna, ne dopušta potpunu slobodu i već smo naveli primere ograničenja. Birajte licencu uzimajući u obzir kako svoje interese, tako i interese korisnika, jer je otvoreni softver namenjen upravo njemu. Korisnik projekta treba da percipira licencu kao svojevrsni ugovor između njega i nosioca prava, pa pre nego što preduzmete bilo kakve radnje sa izvorim kodom, pažljivo proučite ograničenja koja vam projektna licenca nameće.

Nadamo se da smo malo rasvetlili temu licenci i da, uprkos složenosti pitanja, ne bi trebala biti prepreka na vašem putu u Open Source. Razvijajte svoj projekat i ne zaboravite na prava, svoja i tuđa.

Koristne poveznice

Na kraju, evo nekoliko korisnih resursa koji su nam pomogli u potrazi za informacijama o postojećim licencama i odabiru najprikladnije za naše ciljeve:

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster