Kiel elekti Malfermfontan permesilon por la RAD-kadro en GitHub

En ĉi tiu artikolo ni parolos iomete pri kopirajto, sed ĉefe pri elekto de libera permesilo por la kadro RAD IONDV. Kadro kaj por malfermkodaj produktoj bazitaj sur ĝi. Ni rakontos al vi pri la permesilo Apache 2.0, pri kio kondukis nin al ĝi kaj kiajn decidojn ni alfrontis en la procezo.

La procezo de elektado de permesilo estas sufiĉe laborintensa kaj devus esti alirita jam bone legita, kaj se vi ne estas feliĉa posedanto de jura edukado, tiam malfermiĝas antaŭ vi senĉesa kampo de informoj pri diversaj liberaj permesiloj. La ĉefa afero estas ellabori kelkajn limigajn kriteriojn. Tra la procezo de diskuto kaj pripensado, vi kaj via teamo povos kompreni, kion vi volas permesi al uzantoj de via produkto kaj kion malpermesi. Kiam vi jam havas certan priskribon en viaj manoj, vi devas supermeti ĝin sur la ekzistantaj permesiloj kaj elekti tiun, kie la plej granda nombro da poentoj koincidas. Ĝi sonas simple, kompreneble, sed reale, kutime eĉ post diskuto, demandoj restas.

Kiel elekti Malfermfontan permesilon por la RAD-kadro en GitHub

Unue, ligo al elektilicense.com, utila retejo, kiun ni vaste uzis. Atentu specialan al kompara tablo licencoj laŭ 13 ĉefaj kriterioj. La angla kaj pacienco estu kun vi.

La agonio de elekto

Ni komencu per la ĝeneralaj karakterizaĵoj de permesiloj por libera programaro. Malferma fonto programaro implicas ekskluzive liberan permesilon, kiu ne limigas komercan kaj nekomercan distribuadon laŭ la modelo Malfermu Kernon. Sekve, meti programaron en la reto sub liberan permesilon ne povas tute limigi ĝian translokigon, dissendon kaj vendon de triaj partioj, kaj vi nur bezonas esti mense preparita por tio.

Senpaga permesilo donas al la uzanto la rajton partopreni en inversa inĝenierado de la programaro aŭ ŝanĝi ĝin laŭ aliaj disponeblaj manieroj. Plej multaj permesiloj ne permesas al vi renomi la produkton aŭ fari ajnajn manipuladojn kun ĝi, ŝanĝante la rajtojn de la aŭtoro kaj/aŭ posedanto de la sistemo.

La ĉefaj demandoj, pri kiuj ni interesiĝis pri liberaj permesiloj, estis:

  1. Ĉu ŝanĝoj faritaj al la programaro devus esti registritaj kaj havi neniun rilaton al la aŭtorrajtoposedanto de la sistemo?
  2. Ĉu la nomo de la derivita programaro ne estu la sama kiel la nomo de la programaro de la posedanto de la kopirajto?
  3. Ĉu eblas ŝanĝi la permesilon por iuj novaj versioj al alia, inkluzive de proprieta?

Post zorge rigardi la liston de la plej oftaj permesiloj, ni elektis plurajn, kiujn ni konsideris pli detale. Eblaj permesiloj por IONDV. Kadro estis: GNU GPLv3, Apache 2.0, MIT kaj MPL. MIT preskaŭ tuj ekskludita, ĉi tio estas permesema ne-kopyleft permesilo, kiu permesas la uzadon, modifon kaj distribuon de la kodo preskaŭ ajna maniero, sed ni ne estis feliĉaj kun ĉi tiu opcio, ni ankoraŭ volis, ke la permesilo reguligu la rilaton inter la kopirajto. posedanto kaj la uzanto. La plej multaj el la pli malgrandaj projektoj sur GitHub estas publikigitaj sub la MIT-licenco aŭ ĝiaj diversaj varioj. La permesilo mem estas tre mallonga, kaj la nuraj malpermesoj estas indiki la aŭtorecon de la programaro kreinto.

Poste estis la permesilo mpl 2.0. Verdire, ni ne tuj venis al ĝi, sed studinte ĝin pli detale, ni rapide ekskludis ĝin, ĉar la ĉefa malavantaĝo estas, ke la permesilo validas ne por la tuta projekto, sed por individuaj dosieroj. Krome, se la uzanto ŝanĝas la dosieron, li ne povas ŝanĝi la permesilon. Fakte, kiom ajn diligente vi ŝanĝas Malfermfontan projekton, vi neniam povos moneti ĝin pro tia permesilo. Cetere, ĉi tio ne koncernas la posedanton de kopirajto.

Simila problemo daŭras kun la permesilo GNU GPLv3. Ĝi postulas, ke iu ajn dosiero restu sub ĝi. La GNU GPL estas copyleft-licenco kiu postulas ke derivitaj verkoj estu malfermfonte kaj restu sub la sama permesilo. Tio estas: reverkante du liniojn de kodo, vi estos devigita fari viajn ŝanĝojn kaj, dum plua uzo aŭ distribuado, konservi la kodon sub la GNU GPL. En ĉi tiu kazo, ĉi tio estas limiga faktoro por la uzanto de nia projekto, kaj ne por ni. Sed ŝanĝi la GPL al iu ajn alia permesilo estas malpermesita, eĉ ene de GPL-versioj. Ekzemple, se vi ŝanĝas LGPL (aldonaĵo al la GPL) al la GPL, tiam ne estos vojo reen al la LGPL. Kaj ĉi tiu punkto estis decida en voĉdonado kontraŭ ĝi.

Ĝenerale, nia elekto komence klinis al GPL3 ĝuste pro la distribuo de la modifita kodo sub la sama permesilo. Ni pensis, ke tiel ni povus sekurigi nian produkton, sed ni vidis malpli da riskoj en Apache 2.0. Laŭ la Free Software Foundation, GPLv3 estas kongrua kun la Apache License v2.0, tio signifas, ke ĉiam eblas ŝanĝi la permesilon de la Apache License v2.0 al la GPL v3.0.

Apache 2.0

Apache 2.0 — ekvilibra permesilo kun emfazo de kopirajto. Jen la respondoj, kiujn ŝi donis al la demandoj, kiuj interesis nin. Ĉu ŝanĝoj faritaj al la programaro devus esti registritaj kaj havi neniun rilaton al la aŭtorrajtoposedanto de la sistemo? Jes, ĉiuj ŝanĝoj devas esti dokumentitaj kaj ni ne respondecas pri la originala kodo aŭ la modifita. La dosiero kun la ŝanĝoj devas esti alfiksita al la kodo en kiu vi faris ĉi tiujn ŝanĝojn. Ĉu la nomo de la derivita programaro ne estu la sama kiel la nomo de la programaro de la posedanto de la kopirajto? Jes, derivita programaro devus esti liberigita sub malsama nomo kaj sub malsama varmarko, sed kun indiko de la posedanto de la kopirajto. Ĉu eblas ŝanĝi la permesilon por iuj novaj versioj al alia, inkluzive de proprieta? Jes, ĝi povas esti liberigita sub malsamaj permesiloj, Apache 2.0 ne limigas la uzon de iuj nekomercaj kaj komercaj permesiloj.

Ankaŭ, kiam vi publikigas novajn produktojn bazitajn sur malferma fontkodo por Apache 2.0 aŭ produktoj kun plia funkcieco, ne necesas uzi la saman permesilon. Malsupre vi povas vidi bildon kun la kondiĉoj kaj limigoj de la permesilo Apache 2.0.

Kiel elekti Malfermfontan permesilon por la RAD-kadro en GitHub

La permesilo trudas postulon konservi kaj mencii kopirajtojn kaj la permesilon sub kiu la programaro estas liberigita. Deviga havebleco kopirajta avizo kun la nomo de la posedanto de la aŭtorrajto kaj licenco protektas la rajtojn de la origina aŭtoro de la programaro, ĉar eĉ se ĝi estas renomita, fordonita aŭ vendita sub malsama permesilo, la marko de la aŭtoro ankoraŭ restos. Vi ankaŭ povas uzi la dosieron por ĉi tio NOTU kaj aligu ĝin aŭ al la fontkodo aŭ al la projektdokumentaro.

Ni liberigas ĉiujn niajn produktojn publike disponeblajn en GitHub sub la permesilo Apache 2.0, krom IONDV. Militarkivo, kies fontkodo estis publikigita sub la permesilo GPLv3 sur GitHub en aprilo de ĉi tiu jaro fare de la Malproksima Orienta Centro por Sociaj Teknologioj. Nuntempe, krom la kadro kaj lia moduloj eldonita apps farita sur la kadro. Pri la nabo ni jam parolis Projekt-administra sistemo kaj pri Registro de komunikado.

Tiuj. detaloj pri la kadro

IONDV. Framework estas malfermfonta kadro bazita sur node.js por krei altnivelajn TTT-aplikaĵojn bazitajn sur metadatenoj, kiu ne postulas seriozajn programajn kapablojn.

La bazo de la funkcieco de la aplikaĵo estas la registro de datumoj - la modulo Registro. Ĉi tio estas ŝlosila modulo desegnita rekte por labori kun datumoj bazitaj sur metadatumaj strukturoj - inkluzive por la administrado de projektoj, programoj, eventoj, ktp. La projekto ankaŭ uzas portalan modulon por montri arbitrajn datumajn ŝablonojn - ĝi efektivigas la arkivan antaŭan registron.

MongoDb estas uzata por la DBMS - ĝi konservas aplikaĵajn agordojn, metadatenojn kaj la datumojn mem.

Kiel apliki permesilon al via projekto?

Aldonu dosieron PERMESILO kun la licenca teksto en la deponejo de via projekto kaj voilà, projekto protektita de Apache 2.0. Vi devas indiki la posedanton de kopirajto, jen ĝi avizo pri kopirajto. Ĉi tio povas esti farita en la fontkodo aŭ en dosiero NOTU (tekstdosiero listiganta ĉiujn bibliotekojn licencitajn sub la Apache-licenco kune kun la nomoj de iliaj kreintoj). Metu la dosieron mem aŭ en la fontkodon aŭ en la dokumentaron distribuitan kune kun la verko. Por ni aspektas jene:

Kopirajto © 2018 ION DV LLC.
Licencite sub la Apache-Licenco, Versio 2.0

Licenca teksto de Apache 2.0

Permeso Apache
Versio 2.0, januaro 2004
http://www.apache.org/licenses/

KONDiĉOJ KAJ KONDIĈOJ POR UZO, REPRODUKTO, KAJ DISTRIBUO

  1. Difinoj.

    "Licenco" signifas la kondiĉojn por uzo, reproduktado,
    kaj dissendo kiel difinita de Sekcioj 1 ĝis 9 de ĉi tiu dokumento.

    "Licenciganto" signifas la aŭtorrajtoposedanton aŭ enton rajtigita de
    la kopirajta posedanto, kiu donas la Permesilon.

    "Leĝa Ento" signifas la kuniĝon de la aganta ento kaj ĉio
    aliaj entoj, kiuj regas, estas regataj de aŭ estas oftaj
    kontrolu kun tiu ento. Por la celoj de ĉi tiu difino,
    "kontrolo" signifas (i) la potencon, rektan aŭ nerektan, kaŭzi la
    direkto aŭ administrado de tia ento, ĉu per kontrakto aŭ
    alie, aŭ (ii) posedo de kvindek procentoj (50%) aŭ pli de la
    elstaraj akcioj, aŭ (iii) utila proprieto de tia ento.

    "Vi" (aŭ "Via") signifas individuon aŭ Laŭleĝan Enton
    ekzercante permesojn donitajn de ĉi tiu Permesilo.

    "Fonto" formo signifas la preferatan formon por fari modifojn,
    inkluzive sed ne limigitan al programara fontkodo, dokumentado
    fonto, kaj agordaj dosieroj.

    "Objekta" formo signifas ajnan formon rezultantan de mekanika
    transformo aŭ traduko de Fonta formo, inkluzive de sed
    ne limigita al kompilita objektokodo, generita dokumentaro,
    kaj konvertiĝoj al aliaj amaskomunikiloj.

    "Verko" signifas la verkon de aŭtoreco, ĉu en Fonto aŭ
    Objektoformo, disponigita sub la Permesilo, kiel indikite per
    kopirajta avizo, kiu estas inkluzivita aŭ ligita al la verko
    (ekzemplo estas donita en la Malsupra Apendico).

    "Derivaj Verkoj" signifas ajnan verkon, ĉu en Fonto aŭ Objekto
    formo, kiu baziĝas sur (aŭ devenas de) la Laboro kaj por kiu la
    redaktaj revizioj, komentarioj, ellaboroj aŭ aliaj modifoj
    reprezenti, entute, originalan aŭtoran verkon. Por la celoj
    de ĉi tiu Permesilo, Derivaĵoj ne inkluzivas verkojn, kiuj restas
    apartigebla de, aŭ simple ligi (aŭ ligi per nomo) al la interfacoj de,
    la Verko kaj Derivaĵoj de ĝi.

    "Kontribuo" signifas ajnan verkon de aŭtoreco, inkluzive
    la originala versio de la Verko kaj iuj ajn modifoj aŭ aldonoj
    al tiu Verko aŭ Derivaĵoj de ĝi, tio estas intence
    submetita al Licencanto por enigo en la Verkon de la kopirajtulo
    aŭ de individuo aŭ Jura Instanco rajtigita submetiĝi nome de
    la posedanto de la kopirajto. Por la celoj de ĉi tiu difino, "submetita"
    signifas ĉian ajn senditan elektronikan, vortan aŭ skriban komunikadon
    al la Licencanto aŭ ĝiaj reprezentantoj, inkluzive sed ne limigite al
    komunikado en retpoŝtaj listoj, sistemoj de kontrola fontkodo,
    kaj eldonas spurajn sistemojn, administritajn de aŭ nome de la
    Licencanto por diskuti kaj plibonigi la Laboron, sed
    ekskluzive de komunikado videble markita aŭ alimaniere
    indikite skribe de la posedanto de la kopirajto kiel "Ne Kontribuo".

    "Kontribuanto" signifas Licencanton kaj ajnan individuon aŭ Juran Enton
    nome de kiu Kontribuanto ricevis de Licencanto kaj
    poste enkorpigita en la Laboro.

  2. Donado de Kopirajto-Licenco. Subjekto al la terminoj kaj kondiĉoj de
    ĉi tiun Permesilon, ĉiu Kontribuanto ĉi-pere donas al Vi eternan,
    tutmonde, ne ekskluzive, senpage, senpage, nerevokebla
    kopirajta licenco por reprodukti, prepari Derivaĵojn de,
    publike montri, publike plenumi, sublicenci kaj distribui la
    Laboro kaj tiaj Derivaĵoj en Fonto aŭ Objekto.

  3. Donado de Patenta Licenco. Subjekto al la terminoj kaj kondiĉoj de
    ĉi tiun Permesilon, ĉiu Kontribuanto ĉi-pere donas al Vi eternan,
    tutmonde, ne ekskluzive, senpage, senpage, nerevokebla
    (krom kiel dirite en ĉi tiu sekcio) patenta licenco fari, fari,
    uzi, oferti vendi, vendi, importi kaj alimaniere transdoni la Laboron,
    kie tia licenco validas nur por tiuj patentaj asertoj rajtigeblaj
    de tia Kontribuanto nepre malobservata de ili
    Kontribuo (j) sola aŭ per kombinaĵo de ilia (j) Kontribuo (j)
    kun la Laboro al kiu tia Kontribuo (j) estis submetita. Se vi
    starigi patentan proceson kontraŭ iu ajn ento (inkluzive de
    krucpostulo aŭ kontraŭpostulo en proceso) asertante ke la Laboro
    aŭ Kontribuo enmetita en la Verkon konsistigas rektan
    aŭ kontribua patenta malobservo, tiam iuj patentaj licencoj
    donita al Vi sub ĉi tiu Permesilo por tiu Laboro finiĝos
    ekde la dato kiam tia proceso estas registrita.

  4. Redistribuo. Vi povas reprodukti kaj distribui kopiojn de la
    Verko aŭ Derivaĵoj de ĝi en iu ajn rimedo, kun aŭ sen
    modifoj, kaj en Fonto aŭ Objekto, kondiĉe ke Vi
    plenumu la jenajn kondiĉojn:

    (a) Vi devas doni iujn ajn aliajn ricevantojn de la Laboro aŭ
    Derivaĵoj Verkas kopion de ĉi tiu Permesilo; kaj

    (b) Vi devas igi ajnajn modifitajn dosierojn porti elstarajn avizojn
    deklarante ke Vi ŝanĝis la dosierojn; kaj

    © Vi devas reteni, en la Fonta formo de iuj Derivaĵoj
    ke Vi distribuas ĉiujn kopirajtojn, patentojn, varmarkojn kaj
    atribuaj avizoj de la Fonta formo de la Laboro,
    ekskludante tiujn avizojn, kiuj ne apartenas al iu ajn parto de
    la Derivaĵoj; kaj

    (d) Se la Verko inkluzivas tekstdosieron "AVIZO" kiel parto de ĝi
    distribuo, tiam ĉiuj Derivaĵoj, kiujn Vi distribuas, devas
    inkluzivi legeblan kopion de la enhavitaj avizoj
    ene de tia AVISO-dosiero, ekskludante tiujn avizojn kiuj ne faras
    apartenas al iu ajn parto de la Derivaĵoj, en almenaŭ unu
    el la sekvaj lokoj: ene de AVISO tekstdosiero distribuita
    kadre de la Derivaĵoj; ene de la fonta formo aŭ
    dokumentado, se provizite kune kun la Derivaĵoj; aŭ,
    ene de ekrano generita de la Derivaĵoj, se kaj
    kie ajn tiaj triaj avizoj kutime aperas. La enhavo
    de la AVISO-dosiero estas nur por informaj celoj kaj
    ne modifas la Permesilon. Vi rajtas aldoni Vian propran atribuon
    rimarkojn ene de Derivaĵoj, kiujn Vi distribuas kune
    aŭ kiel aldonaĵo al la AVIZA teksto de la Verko, provizita
    ke tiaj aldonaj atribuaj avizoj ne povas esti interpretataj
    kiel modifi la Permesilon.

    Vi povas aldoni Vian propran kopirajtan deklaron al Viaj modifoj kaj
    povas provizi aldonajn aŭ malsamajn licencajn kondiĉojn
    por uzo, reproduktado aŭ distribuado de Viaj modifoj, aŭ
    por tiaj Derivaj Verkoj entute, kondiĉe de Via uzo,
    reproduktado, kaj distribuado de la Verko alie konformas
    la kondiĉoj indikitaj en ĉi tiu Permesilo.

  5. Prezento de Kontribuoj. Krom se Vi eksplicite deklaras alie,
    iu ajn Kontribuo intence submetita al inkludo en la Laboron
    de Vi al la Licencanto devas esti laŭ la kondiĉoj de
    ĉi tiun Permesilon, sen aldonaj kondiĉoj.
    Malgraŭ ĉi-supre, nenio ĉi tie anstataŭas aŭ modifas
    la kondiĉojn de iu ajn aparta licenca interkonsento, kiun vi eble plenumis
    kun Licencanto pri tiaj Kontribuoj.

  6. Varmarkoj. Ĉi tiu Permesilo ne donas permeson uzi la komercon
    nomoj, varmarkoj, servaj markoj aŭ produktaj nomoj de la Licencinto,
    krom kiel necese por racia kaj kutima uzo en priskribado de la
    origino de la Verko kaj reproduktanta la enhavon de la NOTICO-dosiero.

  7. Malgarantio de Garantio. Krom se postulas aplikebla leĝo aŭ
    konsentite skribe, Licencanto provizas la Verkon (kaj ĉiun
    Kontribuanto provizas siajn Kontribuojn) laŭ "KIEL ESTAS",
    SEN GARANTIOJ KAJ KONDIĈOJ DE IU AJN speco, ĉu esprimaj ĉu
    implicita, inkluzive, sen limigo, iajn garantiojn aŭ kondiĉojn
    de TITOLO, NE-MALRAVADO, VENDEblo aŭ TA ,GECO POR A
    PARTIKULA CELO. Vi estas la sola respondeca por determini la
    taŭgeco uzi aŭ redistribui la Verkon kaj supozi iun ajn
    riskoj asociitaj kun Via ekzerco de permesoj sub ĉi tiu Permesilo.

  8. Limigo de Respondeco. En neniu okazo kaj sub neniu jura teorio,
    ĉu en delikto (inkluzive neglektemon), kontrakto aŭ alimaniere,
    krom se postulata de aplikebla juro (kiel intenca kaj krude
    neglektemaj agoj) aŭ konsentite skribe, ĉu iu Kontribuanto devas esti
    respondeca al Vi pro damaĝoj, inkluzive de ajna rekta, nerekta, speciala,
    incidentaj aŭ konsekvencaj damaĝoj de iu ajn karaktero estiĝanta kiel
    rezulto de ĉi tiu Permesilo aŭ pro la uzo aŭ nekapablo uzi la
    Laboro (inkluzive sed ne limigite al damaĝoj pro perdo de bonvolo,
    laborĉesigo, komputila misfunkcio aŭ misfunkcio, aŭ ĉiuj kaj ĉiuj
    aliaj komercaj damaĝoj aŭ perdoj), eĉ se tia Kontribuanto
    estis informita pri la ebleco de tiaj damaĝoj.

  9. Akceptante Garantion aŭ Plian Respondecon. Dum redistribuo
    la Verkon aŭ Derivaĵojn de ĝi, Vi povas elekti oferti,
    kaj pagigi kotizon por, akcepto de subteno, garantio, kompenso,
    aŭ aliaj respondecaj devoj kaj / aŭ rajtoj kongruaj kun ĉi tio
    Permesilo. Tamen, akceptante tiajn devojn, Vi povas agi nur
    je via propra nomo kaj je via sola respondeco, ne nome
    de iu ajn alia Kontribuanto, kaj nur se Vi konsentas kompensi,
    defendi kaj teni ĉiun Kontribuanton sendanĝera por ia ajn respondeco
    kaŭzita de aŭ asertoj asertitaj kontraŭ tia Kontribuanto laŭ kialo
    pri tio, ke vi akceptas tian garantion aŭ aldonan respondecon.

    Fino de la reguloj kaj kondiĉoj

    APENDICO: Kiel apliki la Apache-Permesilon al via laboro.

    Por apliki la Apache-Permesilon al via laboro, aldonu la jenon
    kaldrona avizo, kun la kampoj enfermitaj per krampoj "[]"
    anstataŭigita per viaj propraj identigaj informoj. (Ne inkluzivi
    la krampoj!) La teksto estu enfermita en la taŭga
    komenta sintakso por la dosierformato. Ni ankaŭ rekomendas ke a
    dosiero aŭ klasnomo kaj priskribo de celo estu inkluzivitaj sur la
    sama "presita paĝo" kiel la kopirajta avizo por pli facile
    identigo ene de triaj arkivoj.

    Kopirajto [yyyy] [nomo de posedanto de kopirajto]

    Licencite sub la Apache-Licenco, Versio 2.0 (la "Licenco");
    vi ne rajtas uzi ĉi tiun dosieron krom konforme al la Permesilo.
    Vi povas akiri kopion de la Permesilo ĉe

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

    Krom se postulata de aplikebla juro aŭ konsentita skribe, programaro
    distribuita sub la Licenco estas distribuita laŭ "KIEL ESTAS",
    SEN GARANTIOJ KAJ KONDiĉOJ DE IU AJN speco, ĉu eksplicitaj ĉu implicitaj.
    Vidu la Permesilon por la specifaj lingvaj regaj permesoj kaj
    limigoj sub la Permesilo.

License = kontrakto

Senpaga permesilo, kvankam ĝi estas senpaga, ne permesas permeson kaj ni jam donis ekzemplojn de limigoj. Elektu permesilon konsiderante kaj viajn interesojn kaj tiujn de la uzanto, ĉar malfermkoda programaro estas desegnita specife por li. La uzanto de la projekto devus percepti la permesilon kiel specon de interkonsento inter li kaj la posedanto de la kopirajto, do antaŭ ol fari ajnajn agojn pri la fontkodo, zorge studu la limigojn truditaj al vi de la licenco de la projekto.

Ni esperas, ke ni iom lumigis la temon de licencoj kaj, malgraŭ la komplekseco de la afero, ĝi ne faru obstaklo sur via vojo al Malferma Kodo. Disvolvu vian projekton kaj ne forgesu pri la rajtoj, viaj kaj aliaj.

utilaj ligoj

Fine, kelkaj utilaj rimedoj, kiuj helpis nin serĉante informojn pri ekzistantaj permesiloj kaj elektante la plej taŭgan por niaj celoj:

fonto: www.habr.com

Aldoni komenton