Kako izbrati odprtokodno licenco za ogrodje RAD na GitHubu

V tem članku bomo nekaj govorili o avtorskih pravicah, predvsem pa o izbiri brezplačne licence za ogrodje RAD IONDV. Okvir in za odprtokodne izdelke, ki temeljijo na njem. Povedali vam bomo o licenci za dovoljenje Apache 2.0, o tem, kaj nas je pripeljalo do tega in s kakšnimi odločitvami smo se pri tem soočili.

Postopek izbire licence je precej delovno intenziven in se ga je treba lotiti že dobro prebranega, in če niste srečni lastnik pravne izobrazbe, se pred vami odpre nedokončano polje informacij o različnih brezplačnih licencah. Glavna stvar je sestaviti več omejevalnih meril. Skozi proces razprave in razmisleka boste vi in ​​vaša ekipa lahko razumeli, kaj želite uporabnikom vašega izdelka omogočiti in kaj prepovedati. Ko že imate določen opis v rokah, ga morate preliti na obstoječe licence in izbrati tisto, kjer sovpada največje število točk. Sliši se seveda preprosto, a v resnici po navadi tudi po pogovoru ostanejo vprašanja.

Kako izbrati odprtokodno licenco za ogrodje RAD na GitHubu

Najprej povezava do selectalicense.com, uporabno spletno mesto, ki smo ga veliko uporabljali. Bodite posebno pozorni na primerjalno tabelo licence po 13 glavnih kriterijih. Naj vas spremljata angleščina in potrpežljivost.

Moka po izbiri

Začnimo s splošnimi značilnostmi licenc za brezplačno programsko opremo. Odprtokodna programska oprema pomeni izključno brezplačno licenco, ki ne omejuje komercialne in nekomercialne distribucije po modelu odprto jedro. Skladno s tem dajanje programske opreme v omrežje pod brezplačno licenco ne more popolnoma omejiti njenega prenosa, distribucije in prodaje s strani tretjih oseb, na to morate biti le psihično pripravljeni.

Brezplačna licenca daje uporabniku pravico do sodelovanja pri obratnem inženiringu programske opreme ali njene spremembe na druge razpoložljive načine. Večina licenc vam ne dovoljuje preimenovanja izdelka ali izvajanja kakršnih koli manipulacij z njim, spreminjanje pravic avtorja in/ali lastnika sistema.

Glavna vprašanja, ki so nas zanimala o brezplačnih licencah, so bila:

  1. Ali naj se spremembe programske opreme zabeležijo in nimajo nobene povezave z imetnikom avtorskih pravic sistema?
  2. Ali ne bi moralo biti ime izpeljane programske opreme enako imenu programske opreme imetnika avtorskih pravic?
  3. Ali je mogoče spremeniti licenco za katero koli novo različico v drugo, vključno z lastniško?

Po natančnem pregledu seznama najpogostejših licenc smo jih izbrali nekaj, ki smo jih podrobneje obravnavali. Potencialne licence za IONDV. Okvir so bili: GNU GPLv3, Apache 2.0, MIT in MPL. MIT skoraj takoj izključena, gre za permisivno non-copyleft licenco, ki dovoljuje uporabo, spreminjanje in distribucijo kode na skoraj vse načine, vendar s to možnostjo nismo bili zadovoljni, še vedno smo želeli, da licenca ureja razmerje med avtorskimi pravicami imetnik in uporabnik. Večina manjših projektov na GitHubu je objavljena pod licenco MIT ali njenimi različnimi različicami. Sama licenca je zelo kratka in edina prepoved je navedba avtorstva ustvarjalca programske opreme.

Naslednja je bila licenca mpl 2.0. Resda nismo takoj prišli do tega, a smo ga po podrobnejšem preučevanju hitro izločili, saj je glavna pomanjkljivost ta, da licenca ne velja za celoten projekt, ampak za posamezne datoteke. Poleg tega, če uporabnik spremeni datoteko, ne more spremeniti licence. Pravzaprav ne glede na to, kako vestno spreminjate odprtokodni projekt, ga zaradi takšne licence nikoli ne boste mogli monetizirati. Mimogrede, to ne zadeva imetnika avtorskih pravic.

Podobna težava ostaja pri licenci GNU GPLv3. Zahteva, da vse datoteke ostanejo pod njim. GNU GPL je licenca copyleft, ki zahteva, da so izpeljana dela odprtokodna in ostanejo pod isto licenco. To pomeni: s ponovnim pisanjem dveh vrstic kode boste prisiljeni potrditi svoje spremembe in med nadaljnjo uporabo ali distribucijo shraniti kodo pod GNU GPL. V tem primeru je to omejitveni dejavnik za uporabnika našega projekta in ne za nas. Toda spreminjanje GPL v katero koli drugo licenco je prepovedano, tudi znotraj različic GPL. Na primer, če spremenite LGPL (dodatek k GPL) na GPL, potem ne bo več poti nazaj na LGPL. In ta točka je bila odločilna pri glasovanju proti.

Na splošno se je naša izbira sprva nagibala k GPL3 prav zaradi distribucije spremenjene kode pod isto licenco. Mislili smo, da bomo tako lahko zaščitili naš izdelek, vendar smo v Apache 2.0 videli manj tveganj. Glede na Free Software Foundation je GPLv3 združljiv z licenco Apache v2.0, kar pomeni, da je vedno mogoče spremeniti licenco iz licence Apache v2.0 v GPL v3.0.

Apache 2.0

Apache 2.0 — uravnoteženo permisivno dovoljenje s poudarkom na avtorskih pravicah. Tukaj je odgovorov na vprašanja, ki so nas zanimala. Ali naj se spremembe programske opreme zabeležijo in nimajo nobene povezave z imetnikom avtorskih pravic sistema? Da, vse spremembe morajo biti dokumentirane in ne odgovarjamo za izvirno ali spremenjeno kodo. Datoteka s spremembami mora biti priložena kodi, v kateri ste naredili te spremembe. Ali ne bi moralo biti ime izpeljane programske opreme enako imenu programske opreme imetnika avtorskih pravic? Da, izpeljano programsko opremo je treba izdati pod drugim imenom in pod drugo blagovno znamko, vendar z navedbo imetnika avtorskih pravic. Ali je mogoče spremeniti licenco za katero koli novo različico v drugo, vključno z lastniško? Da, izdati ga je mogoče pod različnimi licencami, Apache 2.0 ne omejuje uporabe nobenih nekomercialnih in komercialnih licenc.

Tudi pri izdaji novih izdelkov, ki temeljijo na odprtokodni kodi za Apache 2.0 ali izdelkov z dodatnimi funkcionalnostmi, ni treba uporabljati iste licence. Spodaj si lahko ogledate sliko s pogoji in omejitvami licence Apache 2.0.

Kako izbrati odprtokodno licenco za ogrodje RAD na GitHubu

Licenca nalaga zahtevo po ohranjanju in omenjanju avtorskih pravic in licence, pod katero je programska oprema izdana. Obvezna razpoložljivost obvestilo o avtorskih pravicah z imenom imetnika avtorskih pravic in licenco ščiti pravice prvotnega avtorja programske opreme, saj tudi če se preimenuje, odda ali proda pod drugo licenco, bo še vedno ostal avtorski znak. Za to lahko uporabite tudi datoteko OBVESTILO in ga priložite izvorni kodi ali projektni dokumentaciji.

Vse naše izdelke objavimo javno na voljo na GitHubu pod licenco Apache 2.0, razen IONDV. Vojni arhiv, katerega izvorno kodo je pod licenco GPLv3 na GitHubu aprila letos objavil Daljovzhodni center za socialne tehnologije. Trenutno je poleg ogrodje in modulov objavljeno aplikacije narejen na ogrodju. O vozlišču smo že govorili Sistem vodenja projektov in približno Register komunikacij.

Tisti. podrobnosti o ogrodju

IONDV. Framework je odprtokodno ogrodje, ki temelji na node.js za ustvarjanje visokonivojskih spletnih aplikacij na podlagi metapodatkov, ki ne zahteva resnega programerskega znanja.

Osnova funkcionalnosti aplikacije je register podatkov – modul Register. To je ključni modul, zasnovan neposredno za delo s podatki, ki temeljijo na metapodatkovnih strukturah – tudi za upravljanje projektov, programov, dogodkov itd. Projekt uporablja tudi portalni modul za prikaz poljubnih podatkovnih predlog – implementira arhivski prednji register.

MongoDb se uporablja za DBMS - shranjuje nastavitve aplikacije, metapodatke in same podatke.

Kako uporabiti licenco za svoj projekt?

Dodajte datoteko LICENCA z besedilom licence v repozitoriju vašega projekta in voilà, projekt, zaščiten z Apache 2.0. Navesti morate imetnika avtorskih pravic, to je to obvestilo o avtorskih pravicah. To lahko storite v izvorni kodi ali v datoteki OBVESTILO (besedilna datoteka s seznamom vseh knjižnic, licenciranih pod licenco Apache, skupaj z imeni njihovih ustvarjalcev). Samo datoteko postavite v izvorno kodo ali v dokumentacijo, ki je bila razdeljena skupaj z delom. Pri nas to izgleda takole:

Avtorske pravice © 2018 ION DV LLC.
Licenciran pod licenco Apache, različica 2.0

Besedilo licence Apache 2.0

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

POGOJI ZA UPORABO, RAZMNOŽEVANJE IN DISTRIBUCIJO

  1. Opredelitve.

    "Licenca" pomeni določila in pogoje za uporabo, reprodukcijo,
    in distribucijo, kot je opredeljeno v oddelkih 1 do 9 tega dokumenta.

    "Dajalec licence" pomeni lastnika avtorskih pravic ali subjekt, ki ga pooblasti
    lastnik avtorskih pravic, ki podeljuje licenco.

    "Pravna oseba" pomeni zvezo subjekta, ki deluje in vse
    drugi subjekti, ki nadzorujejo, so pod nadzorom ali so skupni
    nadzor s to entiteto. Za namene te opredelitve:
    "nadzor" pomeni (i) moč, neposredno ali posredno, povzročiti
    vodenje ali upravljanje takega subjekta, bodisi s pogodbo ali
    drugače ali (ii) lastništvo petdeset odstotkov (50%) ali več
    delnice ali (iii) dejansko lastništvo takega podjetja.

    »Vi« (ali »Vaš«) pomeni posameznika ali pravno osebo
    izvajanje dovoljenj, ki jih daje ta licenca.

    "Izvorna" oblika pomeni prednostno obliko za spreminjanje,
    vključno z, vendar ne omejeno na izvorno kodo programske opreme, dokumentacijo
    izvorne in konfiguracijske datoteke.

    Oblika "predmeta" pomeni katero koli obliko, ki izhaja iz mehanskega
    preoblikovanje ali prevod izvorne oblike, vključno z
    ni omejena na prevedeno objektno kodo, ustvarjeno dokumentacijo,
    in pretvorbe v druge vrste medijev.

    "Delo" pomeni avtorsko delo, bodisi v viru oz
    Obrazec predmeta, ki je na voljo na podlagi licence, kot je navedeno v
    obvestilo o avtorskih pravicah, ki je vključeno v delo ali priloženo delu
    (primer je naveden v spodnjem dodatku).

    "Izpeljana dela" pomenijo katero koli delo, bodisi v viru ali predmetu
    oblika, ki temelji na (ali izhaja iz) dela in za katero je
    uredniške revizije, pripisi, izdelave ali druge spremembe
    predstavljajo kot celoto izvirno avtorsko delo. Za namene
    te licence, Izvedena dela ne vključujejo del, ki ostanejo
    ločljiv od vmesnikov, ali jih zgolj povezati (ali povezati po imenu)
    njihova dela in izpeljana dela.

    "Prispevek" pomeni vsako avtorsko delo, vključno z
    izvirna različica dela in kakršne koli spremembe ali dopolnitve
    temu delu ali izpeljanim delom, to namerno
    lastnik avtorskih pravic predložil dajalcu licence za vključitev v delo
    ali s strani posameznika ali pravne osebe, pooblaščene za predložitev v imenu
    lastnik avtorskih pravic. Za namene te opredelitve "predložen"
    pomeni kakršno koli poslano elektronsko, ustno ali pisno komunikacijo
    dajalcu licence ali njegovim zastopnikom, vključno, vendar ne omejeno na
    komunikacija na elektronskih poštnih seznamih, nadzorni sistemi izvorne kode,
    in sisteme za sledenje izdajam, ki jih upravlja ali so v njegovem imenu
    Dajalec licence za razpravo in izboljšanje dela, vendar
    razen komunikacije, ki je vidno označena ali kako drugače
    ki ga je lastnik avtorskih pravic pisno označil kot »Ni prispevek«.

    "Sodelujoči" pomeni dajalca licence in katerega koli posameznika ali pravno osebo
    v imenu katerega je dajalec prejel prispevek in
    pozneje vključena v Delo.

  2. Podelitev licence za avtorske pravice. V skladu s pogoji in določili
    te licence vam vsak sodelavec podeli trajno,
    po vsem svetu, neizključno, brezplačno, brezplačno, nepreklicno
    avtorska licenca za reprodukcijo, pripravo izpeljanih del,
    javno prikazati, javno izvesti, podlicencirati in distribuirati
    Delo in izpeljana dela v izvorni ali predmetni obliki.

  3. Podelitev patentne licence. V skladu z določili in pogoji
    te licence vam vsak sodelavec podeli trajno,
    po vsem svetu, neizključno, brezplačno, brezplačno, nepreklicno
    (razen kot je navedeno v tem oddelku) patentno dovoljenje za izdelavo,
    uporabo, ponudbo za prodajo, prodajo, uvoz in drugačno prenos dela,
    kadar takšna licenca velja samo za tiste patentne zahtevke, ki jih je mogoče kupiti
    takšnega sodelujočega, ki je s svojim kršenjem nujno kršen
    Prispevki sami ali v kombinaciji z njihovimi prispevki
    z delom, za katerega je bil tak prispevek predložen. Če ti
    uvesti patentni spor zoper kateri koli subjekt (vključno z a
    navzkrižni zahtevek ali nasprotni zahtevek v tožbi), ki navaja, da je delo
    ali Prispevek, vključen v Delo, predstavlja neposreden
    kršitev patenta ali prispevkov, potem katere koli patentne licence
    podeljena s to licenco za to delo preneha
    od datuma vložitve take tožbe.

  4. Prerazporeditev. Kopije lahko razmnožujete in distribuirate
    Delo ali izpeljana dela v katerem koli mediju, z ali brez
    sprememb in v obliki vira ali predmeta, pod pogojem, da vi
    izpolnjujejo naslednje pogoje:

    (a) Morate dati drugim prejemnikom Dela oz
    Derivative deluje kot kopija te licence; in

    (b) Poskrbeti morate, da imajo vse spremenjene datoteke vidna obvestila
    navedbo, da ste spremenili datoteke; in

    © Morate obdržati v izvorni obliki vseh izpeljank
    da distribuirate vse avtorske pravice, patente, blagovne znamke in
    obvestila o dodeljevanju iz izvorne oblike dela,
    razen tistih obvestil, ki se ne nanašajo na noben del
    izpeljana dela; in

    (d) Če delo vključuje besedilno datoteko »OBVESTILO« kot del
    distribucijo, nato pa vsa izpeljana dela, ki jih distribuirate
    vsebujejo berljivo kopijo vsebovanih obvestil o dodeljevanju
    v taki datoteki OBVESTILO, razen tistih obvestil, ki tega ne storijo
    se nanašajo na kateri koli del izpeljanih del, vsaj v enem
    na naslednjih mestih: v besedilni datoteki OBVESTILO razdeljeno
    kot del izpeljanih del; znotraj obrazca Vir oz
    dokumentacija, če je na voljo skupaj z izvedenimi deli; ali,
    znotraj prikaza, ki ga ustvarijo Izvedena dela, če in
    povsod, kjer se taka obvestila tretjih oseb običajno pojavijo. Vsebina
    datoteke NOTICE so zgolj informativne narave in
    ne spreminjajte licence. Lahko dodate lastno pripisovanje
    obvestila znotraj Izvedenih del, ki jih distribuirate
    ali kot dodatek k priloženemu besedilu OBVESTILA iz dela
    da takšnih dodatnih obvestil o dodeljevanju ni mogoče razlagati
    kot spreminjanje licence.

    Svojim spremembam lahko dodate svojo izjavo o avtorskih pravicah in
    lahko zagotovi dodatne ali drugačne licenčne pogoje
    za uporabo, reprodukcijo ali distribucijo vaših sprememb ali
    za vsa taka izvedena dela kot celoto, pod pogojem, da uporabljate,
    razmnoževanje in distribucija dela je v skladu s tem
    pogoji, navedeni v tej licenci.

  5. Predložitev prispevkov. Razen če izrecno navedete drugače,
    vsak prispevek, ki je namerno predložen za vključitev v delo
    od vas do dajalca licence bo pod določili in pogoji
    te licence, brez kakršnih koli dodatnih pogojev.
    Ne glede na zgoraj navedeno nič ne sme nadomestiti ali spremeniti
    pogoje katere koli ločene licenčne pogodbe, ki ste jo morda sklenili
    z dajalcem licence v zvezi s takšnimi prispevki.

  6. Blagovne znamke. Ta licenca ne daje dovoljenja za uporabo trgovine
    imena, blagovne znamke, storitvene znamke ali imena izdelkov dajalca licence,
    razen kadar je to potrebno za razumno in običajno uporabo pri opisovanju
    izvor dela in reprodukcija vsebine datoteke NOTICE.

  7. Zavrnitev garancije. Razen če to zahteva veljavna zakonodaja oz
    soglasje pisno daje dajalec licence delo (in vsako
    Sodelavec zagotavlja svoje prispevke) na OSNOVI »TAKŠNI, KOT SO«,
    BREZ GARANCIJ ALI KAKRŠNIHkoli POGOJEV, bodisi izrecno bodisi
    vključuje, brez omejitev, kakršna koli jamstva ali pogoje
    NASLOVA, NE KRŠITVE, PROMETNOSTI ali PRIMERNOST ZA
    POSEBNA NAMEN. Samo vi ste odgovorni za določitev
    primernost uporabe ali prerazporeditve dela in domnevati kakršno koli
    tveganja, povezana z vašim izvajanjem dovoljenj po tej licenci.

  8. Omejitev odgovornosti. V nobenem primeru in pod nobeno pravno teorijo,
    bodisi odškodninsko (vključno z malomarnostjo), pogodbo ali kako drugače,
    razen če to zahteva veljavna zakonodaja (na primer namerno in grobo
    malomarnih dejanj) ali pisni dogovor, mora biti kateri koli prispevalec
    vam odgovarja za škodo, vključno z vsemi neposrednimi, posrednimi, posebnimi,
    naključne ali posledične škode kakršnega koli značaja, ki nastane kot
    rezultat te licence ali izven uporabe ali nezmožnosti uporabe
    Delo (vključno, vendar ne omejeno na škodo zaradi izgube dobrega imena,
    ustavitev dela, okvara ali okvara računalnika ali katero koli in vse
    druge komercialne škode ali izgube), tudi če je ta sodelavec
    je bil obveščen o možnosti take škode.

  9. Sprejemanje garancije ali dodatne odgovornosti. Med prerazporeditvijo
    delo ali izpeljana dela zanje, se lahko odločite ponuditi,
    in zaračunati pristojbino za, sprejem podpore, garancijo, odškodnino,
    ali druge obveznosti in / ali pravice v skladu s tem
    Licenca. Vendar lahko pri sprejemanju takšnih obveznosti ukrepate le
    v svojem imenu in na svojo izključno odgovornost, ne v svojem imenu
    katerega koli drugega sodelujočega in le, če se strinjate, da
    zagovarjati in obdržati vsakega sodelavca neškodljivega za kakršno koli odgovornost
    ki so nastale takemu sodelujočemu ali so uveljavljane do njega z razlogom
    vašega sprejetja kakršne koli take garancije ali dodatne odgovornosti.

    KONEC POGOJEV

    DODATEK: Kako uporabiti licenco Apache za svoje delo.

    Če želite za svoje delo uporabiti licenco Apache, priložite naslednje
    standardno obvestilo s polji v oklepajih »[]«
    zamenjali z vašimi lastnimi identifikacijskimi podatki. (Ne vključi
    v oklepajih!) Besedilo je treba priložiti ustreznemu besedilu
    sintakso komentarja za obliko datoteke. Priporočamo tudi, da a
    ime datoteke ali razreda in opis namena vključiti v
    enako »natisnjeno stran« kot obvestilo o avtorskih pravicah za lažjo uporabo
    identifikacija v arhivih tretjih oseb.

    Avtorske pravice [llll] [ime lastnika avtorskih pravic]

    Licenciran pod licenco Apache, različica 2.0 (»licenca«);
    te datoteke ne smete uporabljati, razen če izpolnjujete licenco.
    Kopijo licence lahko dobite na naslovu

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

    Programska oprema ni potrebna, če to ne zahteva veljavna zakonodaja ali če je pisno dogovorjeno
    distribuirano pod licenco, se distribuira na podlagi "TAKŠEN, KOT JE",
    BREZ GARANCIJ ALI POGOJEV KAKRŠNE VRSTE, bodisi izrecne bodisi implicitne.
    Glejte licenco za določen jezik, ki ureja dovoljenja in
    omejitve iz licence.

Licenca = pogodba

Brezplačna licenca, čeprav je brezplačna, ne dopušča permisivnosti in primere omejitev smo že navedli. Pri izbiri licence upoštevajte svoje interese in interese uporabnika, saj je odprtokodna programska oprema zasnovana posebej zanj. Uporabnik projekta mora licenco dojemati kot nekakšen dogovor med njim in imetnikom avtorskih pravic, zato pred kakršnimi koli dejanji na izvorni kodi natančno preučite omejitve, ki vam jih nalaga licenca projekta.

Upamo, da smo temo licenc nekoliko osvetlili in kljub kompleksnosti problematike ne sme postati ovira na vaši poti do odprtokodnosti. Razvijte svoj projekt in ne pozabite na pravice, vaše in drugih.

Uporabne povezave

Za konec še nekaj uporabnih virov, ki so nam bili v pomoč pri iskanju informacij o obstoječih licencah in izbiri najprimernejše za naše namene:

Vir: www.habr.com

Dodaj komentar