Hur man vÀljer en Open Source-licens för RAD-ramverk pÄ GitHub

I den hÀr artikeln kommer vi att prata lite om upphovsrÀtt, men mestadels om valet av en fri licens för RAD-ramverket IONDV. Ramverk och för open-source-produkter baserade pÄ det. Vi kommer att berÀtta om den tillÄtande licensen Apache 2.0, vad som ledde oss till den och vilka lösningar vi stötte pÄ under processen.

Processen att vÀlja licens Àr ganska arbetskrÀvande och bör nÀrmas med en rimlig mÀngd litteratur, och om du inte Àr lycklig Àgare av en juridisk utbildning, sÄ ligger en oöverskÄdlig mÀngd information om olika fria licenser framför dig. Det viktigaste du bör göra Àr att sÀtta upp ett antal begrÀnsande kriterier. I processen av diskussion och reflektion kan ditt team förstÄ vad ni vill tillÄta anvÀndare av er produkt att göra och vad ni vill förbjuda. NÀr ni har en beskrivning i handen Àr det dags att jÀmföra den med existerande licenser och identifiera den dÀr flest punkter matchar. Det lÄter enkelt, men i verkligheten kvarstÄr ofta frÄgor Àven efter diskussion.

Hur man vÀljer en Open Source-licens för RAD-ramverk pÄ GitHub

Först — en lĂ€nk till choosealicense.com, en nyttig webbplats som vi anvĂ€nde flitigt. SĂ€rskilt bör ni lĂ€gga mĂ€rke till jĂ€mförelsetabellen av licenser enligt 13 grundlĂ€ggande kriterier. MĂ„ engelskan och tĂ„lamodet vara med er.

Valets plÄgor

Vi börjar med allmÀnna kÀnnetecken för licenser för fri programvara. FPS innebÀr uteslutande en fri licens som inte begrÀnsar kommersiell och icke-kommersiell spridning enligt modellen Open Core. DÀrmed, genom att publicera programvara under en fri licens kan man inte helt begrÀnsa dess överföring, spridning och försÀljning av tredje part, och man mÄste vara mentalt förberedd pÄ detta.

En fri licens ger anvÀndaren rÀtt att delta i omvÀnd utveckling av programvaran eller förÀndra den med andra tillgÀngliga metoder. De flesta licenser tillÄter inte att man byter namn pÄ produkten eller utför nÄgon manipulation som Àndrar upphovsmannens eller/och systemÀgarens rÀttigheter.

De huvudsakliga frÄgor vi var intresserade av angÄende fria licenser handlade om:

  1. Ändringar i programvaran mĂ„ste dokumenteras och har ingen relation till systemets rĂ€ttighetsinnehavare?
  2. Namn pÄ den hÀrledda programvaran fÄr inte vara detsamma som rÀttighetsinnehavarens programvarunamn?
  3. Är det möjligt att Ă€ndra licensen för alla nya versioner till en annan, Ă€ven till en proprietĂ€r licens?

Efter att noggrant ha granskat listan över de mest populÀra licenserna har vi valt ut nÄgra som vi har granskat mer detaljerat. Potentiella licenser för IONDV. Framverk var: GNU GPLv3, Apache 2.0, MIT och MPL. MIT Vi uteslöt nÀstan omedelbart den, eftersom det Àr en tillstÄndslisens utan copyleft-bestÀmmelser som tillÄter anvÀndning, modifiering och distribution av koden nÀstan som man vill, vilket inte passade oss; vi ville att licensen skulle reglera relationen mellan rÀttighetsinnehavaren och anvÀndaren. De flesta av de mindre projekten pÄ GitHub publiceras under MIT-licensen eller dess olika varianter. Licensen i sig Àr mycket kort och den enda begrÀnsningen Àr att skaparen av programvaran ska anges.

Den nĂ€sta licensen var MPL 2.0. Ärligt talat kom vi inte omedelbart till den, men efter att ha studerat den noggrant uteslöt vi den snabbt, eftersom den stora nackdelen Ă€r att licensen inte gĂ€ller för hela projektet, utan för enskilda filer. Dessutom, om anvĂ€ndaren Ă€ndrar en fil, kan de inte Ă€ndra licensen. Faktum Ă€r att oavsett hur flitigt du Ă€ndrar ett Open Source-projekt, sĂ„ kommer du inte att kunna monetisera det pĂ„ grund av en sĂ„dan licens. Detta gĂ€ller för övrigt inte rĂ€ttighetsinnehavaren.

Ett liknande problem kvarstÄr ocksÄ i licensen GNU GPLv3. Den krÀver att varje fil stannar under densamma. GNU GPL Àr en copyleft-licens som krÀver att kÀllkoden för hÀrledda verk ska vara öppen och stanna under samma licens. Med andra ord: genom att skriva om tvÄ rader kod kommer du att tvingas dokumentera dina Àndringar och vid vidare anvÀndning eller distribution behÄlla koden under GNU GPL. I det hÀr fallet Àr det en begrÀnsande faktor för anvÀndaren av vÄrt projekt, inte för oss. Men att byta frÄn GPL till vilken annan licens som helst Àr förbjudet, Àven inom versionerna av GPL. Till exempel om man byter LGPL (en uppsÀttning över GPL) till GPL, sÄ finns det ingen vÀg tillbaka till LGPL. Och denna punkt var avgörande i omröstningen emot.

Överlag lutade vĂ„rt val ursprungligen Ă„t GPL3 just pĂ„ grund av spridningen av modifierad kod under samma licens. Vi trodde att vi dĂ€rigenom kunde skydda vĂ„r produkt, men vi sĂ„g mindre risker med Apache 2.0. Enligt Free Software Foundation Ă€r GPLv3 kompatibel med Apache License v2.0, vilket innebĂ€r att det alltid finns möjlighet att byta licens frĂ„n Apache License v2.0 till GPL v3.0.

Apache 2.0

Apache 2.0 — en balanserad permissiv licens med fokus pĂ„ upphovsrĂ€tt. HĂ€r Ă€r de svar den gav pĂ„ vĂ„ra frĂ„gor. Ska modifieringar av mjukvaran dokumenteras och har inget med rĂ€ttighetsinnehavaren att göra? Ja, alla Ă€ndringar mĂ„ste dokumenteras och vi tar inte ansvar för varken kĂ€llkoden eller de modifierade versionerna. En fil med Ă€ndringar ska bifogas till den kod dĂ€r dessa Ă€ndringar har gjorts. Ska namnet pĂ„ den hĂ€rledda mjukvaran skilja sig frĂ„n namnet pĂ„ rĂ€ttighetsinnehavarens programvara? Ja, den hĂ€rledda mjukvaran ska ges ett annat namn och varumĂ€rke, men med angivande av rĂ€ttighetsinnehavarens upphovsrĂ€tt. Kan licensen Ă€ndras för nya versioner till en annan, inklusive en proprietĂ€r? Ja, det gĂ„r att ge ut under olika licenser, Apache 2.0 begrĂ€nsar inte anvĂ€ndningen av nĂ„gra kommersiella och icke-kommersiella licenser.

Även nĂ€r nya produkter baseras pĂ„ öppen kĂ€llkod under Apache 2.0 eller produkter med tillĂ€ggsfunktionalitet behöver man inte anvĂ€nda samma licens. Nedan kan du se en bild med villkoren och begrĂ€nsningarna för licensen Apache 2.0.

Hur man vÀljer en Open Source-licens för RAD-ramverk pÄ GitHub

Licensen stÀller krav pÄ att upphovsrÀtt och licens ska bevaras och nÀmnas under vilken mjukvaran ges ut. Obligatoriskt krav copyright notice med namnet pÄ rÀttighetsinnehavaren och licensen skyddar rÀttigheterna för den ursprungliga programvaruförfattaren, eftersom Àven om det byter namn, ges bort eller sÀljs under en annan licens, sÄ kommer rÀttighetsinnehavarens namn att kvarstÄ. För detta kan man ocksÄ anvÀnda filen NOTICE och bifoga den antingen i kÀllkoden eller i dokumentationen till projektet.

Vi publicerar alla vĂ„ra produkter öppet pĂ„ GitHub under licensen Apache 2.0, förutom IONDV. War archive, vars kĂ€llkod publicerades under GPLv3-licensen pĂ„ GitHub av Östra Malmöns sociala teknikcentrum i april i Ă„r. För nĂ€rvarande, förutom sjĂ€lva ramverket och dess moduler som offentlig domĂ€n ( applikationen gjorda pĂ„ ramverket. PĂ„ HabrĂ© har vi redan berĂ€ttat om Projektledningssystem och om Register över samband.

Tekniska detaljer om ramverket

IONDV. Framework – en öppen kĂ€llkodsramverk pĂ„ node.js för att skapa högkvalitativa webbaserade applikationer baserade pĂ„ metadata, utan krav pĂ„ avancerade programmeringskunskaper.

KĂ€rnfunktionaliteten i applikationen bestĂ„r av ett databasregister – Registreringsmodulen. Det Ă€r en nyckelmodul som Ă€r avsedd för arbete med data baserat pĂ„ metadata strukturer – inklusive projekt, program, evenemang och mer. Projektet anvĂ€nder Ă€ven portalmodulen för att visa anpassade datamallar – fronten för registret över arkiverade Ă€renden Ă€r implementerat dĂ€r.

För databashanteraren anvĂ€nds MongoDb – hĂ€r lagras bĂ„de applikationens instĂ€llningar, metadata och sjĂ€lva datan.

Hur tillÀmpar jag licensen pÄ mitt projekt?

LÀgg till filen LICENSE med licensvillkoren i ditt projekts repository och voilà, projektet Àr skyddat av Apache 2.0. Du mÄste ange upphovsrÀttsinnehavaren, det Àr copyright notice. Detta kan göras i kÀllkoden eller i filen NOTICE (textfil som listar alla bibliotek licensierade under Apache-licensen tillsammans med deras skapare). SjÀlva filen ska placeras antingen i kÀllkoden eller i den dokumentation som distribueras tillsammans med arbetet. Det ser ut som följande:

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

Texten i Apache License 2.0

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

VILLKOR FÖR ANVÄNDNING, ÅTERPRODUKTION OCH DISTRIBUTION

  1. Definitioner.

    »Licens« ska betyda villkoren för anvÀndning, reproduktion,
    och distribution som definieras av avsnitt 1 till 9 i detta dokument.

    »Licensgivare« ska betyda upphovsrÀttsinnehavaren eller en enhet som Àr godkÀnd av
    upphovsrÀttsinnehavaren som ger Licensen.

    »Juridisk person« ska betyda unionen av den verkstÀllande enheten och alla
    andra enheter som kontrollerar, kontrolleras av, eller Àr under gemensam
    kontroll med den enheten. För syftet med denna definition
    betyder »kontroll« (i) makten, direkt eller indirekt, att orsaka
    styrning eller ledning av sÄdan enhet, vare sig genom avtal eller
    annars, eller (ii) Àgande av femtio procent (50%) eller mer av de
    utstÄende aktier eller (iii) fördelaktigt Àgande av sÄdan enhet.

    »Du« (eller »Ditt«) ska betyda en individ eller juridisk person
    som utövar de rÀttigheter som beviljas av denna Licens.

    »KÀlla« form ska betyda den föredragna formen för att göra Àndringar,
    inklusive men inte begrÀnsat till mjukvarukÀllkod, dokumentations
    kÀlla och konfigurationsfiler.

    »Objekt« form ska betyda alla former som hÀrrör frÄn mekanisk
    transformering eller översÀttning av en kÀllaform, inklusive men
    inte begrÀnsat till kompilerad objektkod, genererad dokumentation,
    och konverteringar till andra mediatyper.

    »Verk« ska betyda det konstverk, vare sig i kÀlla- eller
    objektform, som görs tillgÀngligt under Licensen, som anges av en
    upphovsrÀttsanmÀrkning som ingÄr i eller Àr bifogad till verket
    (ett exempel ges i bilagan nedan).

    »Deriverade verk« ska betyda alla verk, oavsett om de Àr i KÀlla eller Objekt
    form, som Àr baserat pÄ (eller hÀrlett frÄn) Verket och för vilket
    redaktionella Àndringar, anmÀrkningar, förklaringar eller andra modifieringar
    representerar, som helhet, ett originalverk av upphovsrÀtt. För syften
    med denna Licens, ska Derivatinverk inte inkludera verk som förblir
    separabla frÄn, eller bara lÀnkar (eller binder vid namn) till grÀnssnitten av,
    Verket och Derivatinverk dÀrav.

    «Bidrag» ska betyda varje verk av upphovsrÀtt, inklusive
    den ursprungliga versionen av Verket och eventuella modifieringar eller tillÀgg
    till det Verket eller Derivatinverk dÀrav, som medvetet
    skickas till Licensgivaren för inkludering i Verket av upphovsrÀttsinnehavaren
    eller av en individ eller juridisk person som Àr behörig att skicka pÄ uppdrag av
    upphovsrÀttsinnehavaren. För syften med denna definition, «skickat»
    betyder varje form av elektronisk, verbal eller skriftlig kommunikation som sÀnds
    till Licensgivaren eller dess representanter, inklusive men inte begrÀnsat till
    kommunikation pÄ elektroniska e-postlistor, system för kÀllkodskontroll,
    och issuespÄrningssystem som hanteras av, eller Ä Licensgivarens vÀgnar,
    för att diskutera och förbÀttra Verket, men
    exkluderar kommunikation som tydligt Àr markerad eller pÄ annat sÀtt
    angiven skriftligen av upphovsrÀttsinnehavaren som «Inte ett Bidrag.»

    «Bidragsgivare» ska betyda Licensgivaren och varje individ eller juridisk person
    Ä vars vÀgnar ett Bidrag har mottagits av Licensgivaren och
    som dÀrefter inkorporerats i Verket.

  2. ÖverlĂ„telse av upphovsrĂ€ttslös. Med förbehĂ„ll för villkoren i
    denna Licens, ger varje Bidragsgivare hÀrmed till Dig en evig,
    global, icke-exklusiv, kostnadsfri, royaltyfri, oÄterkallelig
    upphovsrÀttslös till att Äterskapa, förbereda Derivatinverk av,
    offentligt visa, offentligt framföra, sublicensiera och distribuera Verket
    och sÄdana Derivatinverk i KÀlla eller Objektform.

  3. ÖverlĂ„telse av patentlicens. Med förbehĂ„ll för villkoren i
    denna Licens, ger varje Bidragsgivare hÀrmed till Dig en evig,
    global, icke-exklusiv, kostnadsfri, royaltyfri, oÄterkallelig
    (utom vad som anges i denna sektion) patentlicens för att göra, lÄta göra,
    anvÀnda, erbjuda att sÀlja, sÀlja, importera och pÄ annat sÀtt överföra Verket,
    dÀr sÄdan licens endast gÀller för de patentkrav som kan licensieras
    av sÄdan Bidragsgivare som nödvÀndigtvis krÀnks av deras
    Bidrag ensam eller i kombination med deras Bidrag
    med Verket till vilket sÄdana Bidrag lÀmnades. Om Du
    inleder patenttvist mot nÄgon enhet (inklusive en
    motkrav eller motkrav i en rÀttegÄng) som pÄstÄr att Verket
    eller ett Bidrag som inkorporerats i Verket utgör direkt
    eller medverkande patentkrÀnkning, ska alla patentlicenser
    som beviljas Dig under denna Licens för Verket upphöra
    frÄn och med det datum dÄ sÄdan tvist vÀcktes.

  4. Återdistribution. Du kan Ă„terskapa och distribuera kopior av
    Verket eller Derivatinverk dÀrav i vilket medium som helst, med eller utan
    modifieringar, och i KÀlla eller Objektform, förutsatt att Du
    uppfyller följande villkor:

    (a) Du mÄste ge alla andra mottagare av Verket eller
    Derivatinverk en kopia av denna Licens; och

    (b) Du mÄste se till att alla modifierade filer har framtrÀdande meddelanden
    som anger att Du har Àndrat filerna; och

    (c) Du mÄste behÄlla, i KÀllaformen av alla Derivatinverk
    som Du distribuerar, alla upphovsrÀtts-, patent-, varumÀrkes- och
    erkÀnnandemeddelanden frÄn KÀllaformen av Verket,
    exklusive sÄdana meddelanden som inte rör nÄgon del av
    Derivatinverken; och

    (d) Om Verket inkluderar en «NOTICE» textfil som en del av sin
    distribution, dÄ mÄste alla Derivatinverk som Du distribuerar
    inkludera en lÀsbar kopia av erkÀnnandemeddelandena som finns
    i den textfilen «NOTICE», exklusive sÄdana meddelanden som inte
    rör nÄgon del av Derivatinverken, pÄ minst ett
    av följande stÀllen: inom en textfil «NOTICE» distribuerad
    som en del av Derivatinverken; inom KĂ€llaform eller
    dokumentation, om sÄdan tillhandahÄlls tillsammans med Derivatinverken; eller,
    inom en visning som genereras av Derivatinverken, om och
    dÀr sÄdana tredje parts meddelanden normalt visas. InnehÄllet
    NOTIS-filen Àr endast för informationsÀndamÄl och
    Àndra inte licensen. Du kan lÀgga till din egen attribution
    notiser inom hÀrledda verk som du distribuerar, bredvid
    eller som ett tillÀgg till TEXTEN i NOTISEN frÄn verket, förutsatt
    att sÄdana ytterligare attributionnotiser inte kan tolkas
    som en Àndring av licensen.

    Du kan lÀgga till ditt eget upphovsrÀttsuttalande till dina Àndringar och
    kan erbjuda ytterligare eller olika licensvillkor och förutsÀttningar
    för anvÀndning, reproduktion eller distribution av dina Àndringar, eller
    för sÄdana hÀrledda verk som helhet, förutsatt att din anvÀndning,
    reproduktion och distribution av verket i övrigt följer
    villkoren som anges i denna licens.

  5. InlÀmning av bidrag. Om du inte uttryckligen anger nÄgot annat,
    ska alla bidrag avsiktligt lÀmnade för inkludering i verket
    av dig till Licensgivaren ske under villkoren och förutsÀttningarna för
    denna licens, utan nÄgra ytterligare villkor eller förutsÀttningar.
    Oavsett ovanstÄende ska inget hÀrigenom överordna eller Àndra
    villkoren i nÄgot separat licensavtal som du kan ha undertecknat
    med Licensgivaren angÄende sÄdana bidrag.

  6. VarumÀrken. Denna licens ger inte tillstÄnd att anvÀnda varumÀrkena,
    varumÀrkesskyltarna, tjÀnstemÀrkena eller produktnamnen frÄn Licensgivaren,
    utöver vad som krÀvs för rimlig och sedvanlig anvÀndning vid beskrivning av
    ursprunget av verket och reproduktion av innehÄllet i NOTIS-filen.

  7. Friskrivning av garanti. SÄvida det inte krÀvs av tillÀmplig lag eller
    överenskommits skriftligen, tillhandahÄller Licensgivaren verket (och varje
    bidragsgivare tillhandahĂ„ller sina bidrag) pĂ„ en «SOM DET ÄR» BAS,
    UTAN GARANTIER ELLER VILLKOR AV NÅGOT SLAG, varken uttryckliga eller
    underförstÄdda, inklusive, utan begrÀnsning, eventuella garantier eller villkor
    för TITEL, INTE INBLANDNING, SÄLJBARHET eller LÄMPLIGHET FÖR EN
    SÄRSKILD PÅLITLIGANDE. Du Ă€r ensam ansvarig för att avgöra
    lÀmpligheten av att anvÀnda eller Äterdistribuera verket och Äta dig alla
    risker förenade med din utövning av rÀttigheter enligt denna licens.

  8. BegrÀnsning av ansvar. Under inga omstÀndigheter och under ingen juridisk teori,
    oavsett om det Àr i skadestÄnd (inklusive vÄrdslöshet), avtal eller annat,
    sÄvida det inte krÀvs av tillÀmplig lag (sÄsom avsiktliga och grovt
    vÄrdslösa handlingar) eller överenskommits skriftligen, ska nÄgon bidragsgivare
    vara ansvarig gentemot dig för skador, inklusive nÄgra direkta, indirekta, sÀrskilda,
    tillfÀlliga eller följdskador av nÄgot slag som uppstÄr som en
    resultat av denna licens eller av anvÀndning eller oförmÄga att anvÀnda verket
    (inklusive men inte begrÀnsat till skador för förlust av goodwill,
    arbetsstopp, datorkrasch eller fel, eller alla andra
    kommersiella skador eller förluster), Àven om sÄdan bidragsgivare
    har informerats om möjligheten av sÄdana skador.

  9. Accepterande av garanti eller ytterligare ansvar. Vid omdistribution av
    verket eller hÀrledda verk dÀrav, kan du vÀlja att erbjuda,
    och ta ut en avgift för, acceptans av stöd, garanti, ersÀttning,
    eller andra ansvarsförpliktelser och/eller rÀttigheter som överensstÀmmer med detta
    licens. Men vid acceptans av sÄdana förpliktelser fÄr du endast agera
    för din egen rÀkning och pÄ ditt eget ansvar, inte pÄ uppdrag
    av nÄgon annan bidragsgivare, och endast om du gÄr med pÄ att ersÀtta,
    försvara och hÄlla varje bidragsgivare skadeslös för alla
    ansvar som ÄlÀggs, eller krav som görs mot, sÄdan bidragsgivare pÄ grund av
    din acceptans av sÄdan garanti eller ytterligare ansvar.

    SLUTET AV VILLKOR OCH FÖRUTSÄTTNINGAR

    BILAGA: Hur man tillÀmpar Apache-licensen pÄ sitt arbete.

    För att tillÀmpa Apache-licensen pÄ ditt arbete, fÀst följande
    mallnotis, med fÀlten inneslutna i hakparenteser «[]»
    ersatta med din egen identifierande information. (Inkludera inte
    hakparenteserna!) Texten bör vara innesluten i lÀmplig
    kommentarssyntax för filformatet. Vi rekommenderar ocksÄ att en
    fil- eller klassnamn och beskrivning av syftet inkluderas pÄ samma «tryckta sida»
    som upphovsrÀttsnotisen för enklare
    identifiering inom tredje parts arkiv.

    UpphovsrÀtt [ÄÄÄÄ] [namn pÄ upphovsrÀttsinnehavaren]

    Licensierad under Apache License, Version 2.0 ("Licensen");
    du fÄr inte anvÀnda den hÀr filen utom i enlighet med Licensen.
    Du kan fÄ en kopia av Licensen pÄ

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

    Om inte annat krÀvs av tillÀmplig lag eller avtalas skriftligt, sÄ distribueras programvara
    som distribueras under Licensen pĂ„ en "SOM DET ÄR" GRUND,
    UTAN GARANTIER ELLER VILLKOR AV NÅGOT SLAG, varken uttryckliga eller underförstĂ„dda.
    Se Licensen för den specifika sprÄkregleringen av rÀttigheter och
    begrÀnsningar enligt Licensen.

Licens = avtal

En öppen licens Àr fri, men den tillÄter inte total frihet och vi har redan gett exempel pÄ begrÀnsningar. VÀlj licens med hÀnsyn till bÄde dina egna intressen och anvÀndarens, eftersom öppen programvara Àr avsedd för denne. AnvÀndaren av projektet bör betrakta licensen som ett slags avtal mellan denne och rÀttighetsinnehavaren, sÄ innan du gör nÄgra ÄtgÀrder med kÀllkoden, studera noggrant de begrÀnsningar som licensen ÄlÀgger dig.

Vi hoppas att vi har belyst Ă€mnet licenser nĂ„got och att, trots frĂ„gans komplexitet, det inte ska bli ett hinder pĂ„ din vĂ€g i Öppen KĂ€llkod. Utveckla ditt projekt och glöm inte bort rĂ€ttigheterna, bĂ„de dina och andras.

Nyttiga lÀnkar

Till slut nÄgra anvÀndbara resurser som hjÀlpte oss i vÄr informationssökning om befintliga licenser och för att vÀlja den mest lÀmpliga för vÄra mÄl:

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster