Kā izvēlēties Open Source licenci RAD ietvaram GitHub

Šajā rakstā mēs nedaudz runāsim par autortiesībām, bet galvenokārt par brīvas licenci izvēli RAD ietvaram IONDV. Ietvars un atvērtā pirmkoda produktiem uz tā bāzes. Mēs pastāstīsim par atļaujošo licenci Apache 2.0, par to, kas mūs pie tās noveda un kādas problēmas mēs saskārāmies procesā.

Licences izvēles process ir diezgan laikietilpīgs, un tam jāpienāk ar pietiekamu izpratni, un, ja jums nav laimīgas juridiskās izglītības, tad jums ir priekšā neizpētīts informācijas lauks par dažādām brīvajām licencēm. Galvenais, kas jāizdara, ir sastādīt noteiktus ierobežojošus kritērijus. Diskusiju un pārdomu procesā jūs kopā ar komandu spēsit saprast, ko vēlaties atļaut jūsu produkta lietotājiem, un ko aizliegt. Kad jums jau ir kāda apraksta versija, tā jāsalīdzina ar esošām licencēm un jāizceļ tā, kurai ir visvairāk sakritību. Protams, tas izklausās vienkārši, bet patiesībā, parasti pat pēc diskusijām, paliek jautājumi.

Kā izvēlēties Open Source licenci RAD ietvaram GitHub

Vispirms — saite uz choosealicense.com, noderīga vietne, ko mēs aktīvi izmantojām. Īpaši pievērsiet uzmanību salīdzinošajai tabulai licencēm pēc 13 galvenajiem kritērijiem. Lai angļu valoda un pacietība ir ar jums.

Izvēles mokas

Sāksim ar vispārējām pazīmēm, kas raksturīgas brīvā programmatūras. Brīvā programmēšana nozīmē īpaši brīvu licenci, kas neierobežo komerciālo un nekomerciālo izplatīšanu pēc modeļa Open Core. Tātad, izlaidot tīklā programmatūru ar brīvu licenci, nevar pilnībā ierobežot tās nodošanu, izplatīšanu un pārdošanu trešām personām, un tam ir jāsagatavojas morāli.

Brīva licence sniedz lietotājam tiesības pašam piedalīties programmatūras reversajā izstrādē vai to mainīt citos pieejamos veidos. Lielākā daļa licenču neļauj pārdēvēt produktu vai veikt ar to jebkādas manipulācijas, mainot autora vai/vai sistēmas īpašnieka tiesības.

Galvenie jautājumi, kas mūs interesēja par brīvajām licencēm, bija:

  1. Izmaiņas programmatūrā ir jāpieraksta un tie nav saistīti ar sistēmas tiesību īpašnieku?
  2. Vai atvasinātās programmatūras nosaukumam nedrīkst sakrist ar turētāja programmatūras nosaukumu?
  3. Vai ir iespējams mainīt licenci uz citu, tai skaitā uz proprietāro, jebkurām jaunām versijām?

Rūpīgi aplūkojot populārāko licenču sarakstu, mēs izvēlējāmies dažas, kuras izskatījām detalizētāk. Potenciālās licences IONDV. Framwork bija: GNU GPLv3, Apache 2.0, MIT un MPL. MIT mēs praktiski nekavējoties izslēdzām, jo tā ir atļaujoša kopileft licence, kas atļauj izmantot, modificēt un izplatīt kodu praktiski jebkādā veidā, taču šāds variants mūs neapmierināja, jo mēs vēlējāmies, lai licence regulētu attiecības starp tiesību turētāju un lietotāju. Lielākā daļa ne tik lielo projektu GitHub ir izlaisti tieši ar MIT licenci vai tās dažādām variācijām. Paša licence ir ļoti īsa, un no ierobežojumiem tikai autora norāde.

Nākamā bija licence MPL 2.0. Atzīšos, ka mēs uz to nenāca ātri, taču, izpētot to sīkāk, mēs to ātri izslēdzām, jo galvenais trūkums ir tāds, ka licence attiecas ne uz visu projektu, bet uz atsevišķiem failiem. Turklāt, ja lietotājs maina failu, viņš to mainīt nevar. Faktiski, neatkarīgi no tā, cik cītīgi tu mainīsi Open source projektu, tu tāpat to nevarēsi monetizēt tādēļ, ka šī licence. Starp citu, tas neskar tiesību turētāju.

Šāda problēma pastāv arī GPLv3 licencē. GNU GPLv3. Tā prasa, lai jebkuru failu saglabātu ar to pašu licenci. GNU GPL ir kopileft licence, kas prasa, lai atvasināti darba avota kodi paliktu atvērtiem un paliktu ar šo pašu licenci. Tas nozīmē: pārrakstot divas koda rindiņas, tu būsi spiests fiksēt savas izmaiņas un turpmāka izmantošanas vai izplatīšanas gadījumā saglabāt kodu zem GNU GPL. Šajā gadījumā tas ir ierobežojošs faktors projekta lietotājam, nevis mums. Tomēr maiņa no GPL uz jebkuru citu licenci ir aizliegta, pat iekš GPL versijām. Piemēram, ja nomainīs LGPL (paplašinājums pār GPL) uz GPL, tad ceļa atpakaļ uz LGPL vairs nebūs. Un šis punkts bija izšķirošs balsošanā pret.

Kopumā mūsu izvēle sākotnēji bija nosliecies uz GPL3 tieši tāpēc, ka tika izplatīts modificēts kods ar to pašu licenci. Mēs domājām, ka tādējādi varēsim nodrošināt savu produktu, taču redzējām mazāk risku ar Apache 2.0. Saskaņā ar Free Software Foundation, GPLv3 ir savienojama ar Apache License v2.0, tas nozīmē, ka vienmēr ir iespēja mainīt licenci no Apache License v2.0 uz GPL v3.0.

Apache 2.0

Apache 2.0 — līdzsvarota atļaujoša licence ar uzsvaru uz autortiesībām. Šeit ir atbildes uz jautājumiem, kas mūs interesēja. Izmaiņām programmatūrā jābūt dokumentētām un tām nav nekāda sakara ar sistēmas tiesību īpašnieku? Jā, visām izmaiņām jābūt dokumentētām, un mēs neuzņemamies atbildību ne par oriģinālajām, ne par modificētajām versijām. Failam ar izmaiņām jābūt pievienotam kodam, kurā šīs izmaiņas ir veiktas. Vai atvasinātās programmatūras nosaukumam jābūt atšķirīgam no tiesību īpašnieka programmatūras nosaukuma? Jā, atvasinātās programmatūras nosaukumam jābūt citam un ar citu preču zīmi, bet ar autortiesību īpašnieka norādi. Vai var mainīt licenci jaunām versijām uz citu, tostarp uz komerciālu? Jā, var izdot ar dažādām licencēm, Apache 2.0 neierobežo nekomerciālo un komerciālo licenču pielietojumu.

Turklāt, izstrādājot jaunus produktus, balstoties uz atvērtā Apache 2.0 koda vai papildu funkcionalitātes produktiem, nav obligāti jālieto tā pati license. Zemāk varat aplūkot attēlu ar Apache 2.0 licences nosacījumiem un ierobežojumiem.

Kā izvēlēties Open Source licenci RAD ietvaram GitHub

Licence pieprasījumu par autortiesību un programmatūras licencēšanas saglabāšanu un minēšanu. Obligāta prasība autortiesību paziņojums ar tiesību īpašnieka vārdu un licenci aizsargā oriģinālā autora programmatūras tiesības, jo pat ja tā tiek pārdēvēta, nodota vai pārdota ar citu licenci, autora zīme tomēr paliks. Šim mērķim var izmantot arī failu NOTICE un pievienot to gan oriģinālajā kodā, gan projekta dokumentācijā.

Mēs publicējam visus mūsu produktus atvērtā pieejamībā GitHub zem Apache 2.0 licences, izņemot IONDV. War archive, kura oriģinālais kods šī gada aprīlī tika publicēts ar GPLv3 licenci GitHub Dāleatvērto sociālo tehnoloģiju centrā. Šobrīd, papildus pašam rāmim un tā moduļus ir publicētas lietojumprogrammas izstrādātajiem uz rāmja. Mēs jau esam stāstījuši par to Habrē. Projektu vadības sistēma un par Saziņas reģistrs.

Tehniskie sīktēli par ietvaru

IONDV. Framework – atvērtā koda ietvars uz node.js, lai izveidotu augsta līmeņa mājaslapu lietotnes, kas balstītas uz metadatiem, kam nav nepieciešamas nopietnas programmēšanas prasmes.

Aplicēšanas funkcionalitāti veido datu reģistrs – Reģistra modulis. Tas ir galvenais mods, kas paredzēts tieši darbam ar datiem, pamatojoties uz metadatu struktūrām – tostarp projektu, programmu, pasākumu un citu vadību. Projektā tiek izmantots arī portāla modulis, lai parādītu pielāgotus datu veidnes – tam ir ieviests reģistra arhīvālo lietu priekšgals.

Datu bāzei tiek izmantota MongoDb – tajā tiek glabāti gan lietotnes iestatījumi, metadati, gan arī paši dati.

Kā piemērot licenci savai projekta?

Pievienojiet failu LICENSE ar licences tekstu sava projekta repozitorijā un voilà, projekts ir aizsargāts ar Apache 2.0. Ir jānorāda tiesību turētājs, tas ir autortiesību ziņojums. To var izdarīt avota kodā vai failā NOTICE (teksta fails, kurā uzskaitītas visas bibliotēkas, kas licencētas saskaņā ar Apache licenci kopā ar to veidotāju vārdiem). Pašu failu novietojiet vai nu avota kodā, vai dokumentācijā, kas tiek izplatīta kopā ar darbu. Mums tas izskatās šādi:

Copyright © 2018 SIA «ION DV».
Licencēts saskaņā ar Apache Licenci, Versija 2.0

Apache Licences 2.0 teksts

Apache Licence
2.0. versija, 2004. gada janvāris
http://www.apache.org/licenses/

LIETOŠANAS, REPRODUKCIJAS UN IZPLATĪŠANAS NOSACĪJUMI

  1. Definīcijas.

    «Licence» nozīmē nosacījumus un prasības lietošanai, reprodukcijai
    un izplatīšanai, kā definēts šī dokumenta 1. līdz 9. nodaļā.

    «Licencētājs» nozīmē autortiesību īpašnieku vai personu, kuru pilnvarojis
    autortiesību īpašnieks, kas piešķir Licenci.

    «Juriskonsults» nozīmē aktīvās vienības apvienojumu un visas
    pārējās vienības, kas kontrolē, ir kontrolētas vai atrodas kopējā
    kontrolē ar šo vienību. Šī definīcija ietver,
    ka «kontrole» nozīmē (i) spēju, tiešu vai netiešu, radīt
    norādījumus vai pārvaldību tādai vienībai, vai nu ar līgumu vai
    citādi, vai (ii) piecdesmit procentu (50%) vai vairāk
    izcilo akciju, vai (iii) tiesību īpašumu šādai vienībai.

    «Jūs» (vai «Jūsu») nozīmē personu vai Juriskonsultu
    izmantot atļaujas, kas piešķirtas ar šo Licenci.

    «Avots» forma nozīmē vēlamos modificēšanas veidus,
    iekļaujot, bet neierobežojoties ar programmatūras avota kodu, dokumentāciju
    avotu un konfigurācijas failiem.

    «Objekts» forma nozīmē jebkuru formu, kas rodas mehāniskas
    transformācijas vai tulkošanas procesā no Avota formas, tostarp, bet
    neierobežojoties līdz kompilētiem objektu kodiem, ģenerētai dokumentācijai,
    un konversijām uz citiem mediju veidiem.

    «Darbs» nozīmē autoru darbu, neatkarīgi no Avota vai
    Objekta formas, pieejamu saskaņā ar Licenci, kā norādīts ar
    autortiesību ziņojumu, kas tiek iekļauts vai pievienots darbam
    (piemērs ir sniegts zemāk esošajā Pielikumā).

    «Atvasinātie darbi» nozīmē jebkuru darbu, neatkarīgi no Avota vai Objekta
    forma, kas balstās uz (vai izriet no) Darba un kurai ir
    redakcionālas izmaiņas, piezīmes, paplašinājumi vai citas izmaiņas
    pārstāv, kopumā, oriģinālu autordarbu. Šīs Licences nolūkiem
    Atvasināti darbi nenozīmē darbus, kas paliek
    šķirti no, vai vienkārši saista (vai nosauc) ar Darba interfeisiem,
    un Atvasinātiem darbiem.

    «Ieguldījums» nozīmē jebkuru autordarbu, tostarp
    oriģinālo Darba versiju un jebkādas izmaiņas vai papildinājumus
    tam Darbam vai tam atvasinātiem darbiem, kas ir apzināti
    iesniegti Licencētājam, lai iekļautu Darbā, autortiesību īpašnieka
    vai personas vai Juridiskās personas, kas ir pilnvarota iesniegt autortiesību
    īpašnieka vārdā. Šīs definīcijas nolūkiem «iesniegts»
    nozīmē jebkādu elektronisku, verbālu vai rakstisku komunikāciju nosūtītu
    Licencētājam vai tā pārstāvjiem, tostarp, bet neierobežojot ar
    komunikāciju elektroniskajos pasta sarakstos, avota kodu kontroļu sistēmās,
    un problēmu izsekošanas sistēmās, kuras pārvalda, vai Licencētāja vārdā,
    ar mērķi apspriest un uzlabot Darbu, bet
    izslēdzot komunikāciju, kas ir acīmredzami atzīmēta vai citādi
    norādīta rakstiski ar autortiesību īpašnieku kā «Nav ieguldījums».

    «Līdzautors» nozīmē Licencētāju un jebkuru personu vai Juridisku personu
    līdz, kuras vārdā Ieguldījums ir saņemts no Licencētāja un
    pēc tam iekļauts Darbā.

  2. Autortiesību licences piešķiršana. Pamatojoties uz šīs Licences nosacījumiem,
    katrs Līdzautors šeit piešķir Jums mūžīgu,
    vispasaules, neekskluzīvu, bezmaksas, bezatlīdzības, neatgriezenisku
    autortiesību licenci reproducēt, sagatavot atvasinātos darbus,
    publiski demonstrēt, publiski izpildīt, sublicencēt un izplatīt
    Darbam un šādiem atvasinātiem darbiem avota vai objekta formā.

  3. Patentlicences piešķiršana. Pamatojoties uz šīs Licences nosacījumiem
    katrs Līdzautors šeit piešķir Jums mūžīgu,
    vispasaules, neekskluzīvu, bezmaksas, bezatlīdzības, neatgriezenisku
    (izņemot kā norādīts šajā sadaļā) patentlicence izgatavot, izgatavot,
    lietot, piedāvāt pārdošanai, pārdot, importēt un citādi nodot Darbu,
    kur šī licence attiecas tikai uz tiem patentu prasījumiem, kurus var licencēt
    tādā veidā, ka tiek nodarīts kaitējums tikai viņu
    Ieguldījumiem vai kombinācijai ar to, kurai tāds Ieguldījums ir iesniegts. Ja Jūs
    sākat patentu tiesvedību pret jebkuru personu (ieskaitot
    priekšlikumu vai pretpriekšlikumu prasību tiesas procesa ietvaros), apgalvojot, ka Darbs
    vai Ieguldījums, kas iekļauts Darbā, ir tiešo
    vai līdzdalības patentu pārkāpumu, tad jebkuras patentu licences
    piekļuve jums saskaņā ar šo licenci attiecībā uz to darbu izbeidzas
    no dienas, kad šāda tiesvedība ir ierosināta.
    Atkārtota izplatīšana. Jūs varat reproducēt un izplatīt kopijas

  4. Darbam vai atvasinātiem darbiem jebkurā vidē, ar vai bez
    izmaiņām, un avota vai objekta formā, ar nosacījumu, ka jūs
    ievērojat šādas prasības:
    (a) Jums ir jādod ikvienam citam Darba vai

    Atvasinātu darbu saņēmējam šo licenci; un
    (b) Jums ir jānodrošina, lai jebkuras modificētās failu versijas nesošas

    izteikti paziņojumi, kas norāda, ka Jūs esat mainījis failus; un
    © Jums ir jāievēro, avota formā jebkādā atvasinātajā darbā

    ko Jūs izplatāt, visus autortiesību, patentu, preču zīmju un
    atsauces paziņojumus no avota formas Darba,
    izslēdzot tos paziņojumus, kas neattiecas uz jebkuru daļu
    atvasinātajiem darbiem; un
    (d) Ja Darbā ir «ZIŅOJUMA» teksta fails kā daļa no tā

    izplatīšanas, tad jebkuri atvasinātie darbi, kurus Jūs izplatāt, ir
    jāiekļauj lasāma kopija atsauces paziņojumiem, kas iekļauti
    šādā ZIŅOJUMA failā, izslēdzot tos paziņojumus, kas neattiecas
    uz jebkuru daļu no atvasinātajiem darbiem, vismaz vienā
    no šādām vietām: iekļaujot ZIŅOJUMA teksta failā, kas izplatīts
    kā daļa no atvasinātajiem darbiem; iekļaujot avota formā vai
    dokumentācijā, ja tā ir sniegta kopā ar atvasinātajiem darbiem; vai,
    iekļaujot displejā, ko ģenerē atvasinātie darbi, ja un
    kur šādas trešo personu atsauces parasti parādās. Saturs
    kur parasti parādās šādi trešo pušu paziņojumi. Saturs
    Paziņojuma faila informācija ir paredzēta tikai informatīviem mērķiem un
    neatbilstoši modificēt licenci. Jūs varat pievienot savu atribūciju
    norādījumus atvasinātiem darbiem, kurus jūs nododat tālāk, kopā
    vai kā pielikumu paziņojuma tekstam no darba, ar nosacījumu,
    ka šie papildu atribūcijas norādījumi nevar tikt uzskatīti
    par licences grozījumu.

    Jūs varat pievienot savu autortiesību paziņojumu savām izmaiņām un
    varat nodrošināt papildu vai atšķirīgas licences noteikumus un nosacījumus
    izmantot, reproducēt vai izplatīt jūsu izmaiņas vai
    visiem tādiem atvasinātiem darbiem kopumā, ar nosacījumu, ka jūsu lietojums,
    reproducēšana un izplatīšana no darba citādi atbilst
    licencē norādītajiem nosacījumiem.

  5. Pienākumi par ieguldījumiem. Ja vien jūs neapstiprināt pretēji,
    jebkurš ieguldījums, ko jūs apzināti iesniegsit darba iekļaušanai,
    licencētājam tiks nodots saskaņā ar šīs licences noteikumiem un nosacījumiem,
    bez jebkādiem papildu noteikumiem vai nosacījumiem.
    Neskatoties uz iepriekš minēto, nekas šeit nevar pārsniegt vai grozīt
    atsevišķa licences līguma noteikumus, ko jūs varētu būt noslēguši
    ar licenci par šiem ieguldījumiem.

  6. Preču zīmes. Šī Licence nepiešķir atļauju lietot tirgus
    nosaukumus, preču zīmes, pakalpojumu zīmes vai produktu nosaukumus no Licencētāja,
    izņemot gadījumus, kad tas ir nepieciešams saprātīgai un ierastai lietošanai, lai aprakstītu
    darba izcelsmi un reproduktu paziņojuma faila saturu.

  7. Atbildības atteikšana. Ja vien to neprasa attiecīgie likumi vai
    rakstiski nav piemērots, Licencētājs nodrošina darbu (un katrs
    ieguldītājs sniedz savus ieguldījumus) uz «KĀ IR» PAMATA,
    BEZ JEBKĀDĀM GARANTIJĀM VAI NOSACĪJUMIEM, iezīmētiem vai
    ikdienas norādījumiem, tostarp, bet neaprobežojoties, ar jebkādām garantijām vai nosacījumiem
    par TITULU, NEAPSTRĪDAMĪBU, TIRDZNIECĪBAS SPĒJU vai ATBILDI
    KONKRĒTAM MĒRĶIM. Jūs esat pilnībā atbildīgs par to, lai noteiktu
    pamatotību saistībā ar darba izmantošanu vai pārnešanu un uzņemties jebkādus
    riskus, kas saistīti ar jūsu atļauju īstenošanu saskaņā ar šo licenci.

  8. Atbildības ierobežojums. Nekādā gadījumā un nevienā juridiskā teorijā,
    pat ja tas ir saistīts ar deliktu (ieskaitot nolaidību), līgumu vai citu,
    ja vien to neprasa attiecīgie likumi (piemēram, tīša un smaga
    nolaidība) vai rakstiski neesat piekritis, nevienam ieguldītājam nav
    jāatbild jums par zaudējumiem, tostarp jebkādiem tiešiem, netiešiem, īpašiem,
    nejaušiem vai sekām, kas radušās kā
    rezultātā no šīs licences vai izletot vai nespējot izmantot
    darbu (tostarp, bet neierobežojoties ar zaudējumiem par labklājības zudumu,
    darba pārtraukšanu, datora kļūmi vai traucējumiem vai jebkādu un visu
    citu komerciālo zaudējumu vai zudumu), pat ja šāds ieguldītājs
    ir bijis informēts par šādu zaudējumu iespēju.

  9. Garantijas pieņemšana vai papildu atbildība. Izplatot
    darbu vai atvasinātus darbus, jūs varat izvēlēties piedāvāt,
    un iekasēt maksu par, atbalsta, garantijas, atlīdzināšanas pieņemšanu,
    vai citu atbildības pienākumu un/vai tiesību piedāvāšanu saskaņā ar šo
    licenci. Tomēr, pieņemot šādus pienākumus, jūs varat rīkoties tikai
    savā vārdā un uz savu pašu atbildību, nevis citu ieguldītāju vārdā,
    un tikai tad, ja jūs piekrītat atlīdzināt,
    aizstāvēt un pasargāt katru ieguldītāju no jebkādām saistībām
    vai prasībām, kuras pret tādu ieguldītāju izvirza, jo
    jūs pieņemāt kādu tādu garantiju vai papildu atbildību.

    TERMINU UN NOSACĪJUMU GALA

    PIELIKUMS: Kā pielietot Apache licenci savam darbam.

    Lai pielietotu Apache licenci savam darbam, pievienojiet sekojošo
    standarta paziņojumu, kurā laukumi ir iekļauti kvadrātiekavās «[]»
    aizvietoti ar jūsu identifikācijas informāciju. (Neiekļaujiet
    iekavās!) Tekstam jābūt iekļautam atbilstošajā
    komentāra sintaksē faila formātā. Mēs arī ieteicams, lai
    faila vai klases nosaukums un mērķa apraksts tiktu iekļauti tajā pašā «drukātajā lapā»
    kā autortiesību paziņojums, lai vieglāk
    identificētu trešo pušu arhīvos.

    Autortiesības [gads] [autortiesību īpašnieka nosaukums]

    Licencēts saskaņā ar Apache License, Version 2.0 (tā «Licenze»);
    jūs nedrīkstat izmantot šo failu, izņemot gadījumus, kad tas atbilst Licencei.
    Licenci var iegūt šeit:

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

    Ja vien to neprasa piemērojamie likumi vai tas nav rakstiski saskaņots, programmatūra
    kas izplatīta saskaņā ar Licenci, tiek izplatīta uz «KĀ IR» BAZES,
    BEZ JEBKĀDĀM GARANTIJĀM VAI NOSACĪJUMIEM, gan izteiktām, gan netiešām.
    Skatiet Licenci, lai iegūtu konkrētu valodu, kas regulē atļaujas un
    ierobežojumus Licencē.

Licencija = līgums

Brīva licencija, lai gan tā ir brīva, neļauj bezgalību un mēs jau esam snieguši piemērus ierobežojumiem. Izvēlieties licenci, ņemot vērā gan savas intereses, gan lietotāju, jo atvērtais programmatūras kods ir paredzēts tieši viņam. Projekta lietotājam jāuztver licence kā noteikta veida līgums starp viņu un tiesību īpašnieku, tādēļ pirms veikt jebkādas darbības ar avota kodu, uzmanīgi iepazīstieties ar ierobežojumiem, kurus uzliek projektu licence.

Ceram, ka esam nedaudz izgaismojuši licenču tēmu un, neskatoties uz jautājuma sarežģītību, tas nevajadzētu būt šķērslim jūsu ceļā uz Atvērtā Koda pasauli. Attīstiet savu projektu un neaizmirstiet par tiesībām – savām un citu.

Noderīgas saites

Beigās daži noderīgi resursi, kas mums palīdzēja meklēt informāciju par pastāvošajām licencēm un izvēlēties vispiemērotāko mūsu mērķiem:

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster