Hvordan man vælger en Open Source-licens til RAD-rammeværket på GitHub

I denne artikel vil vi tale lidt om ophavsret, men primært om valget af en fri licens til RAD-rammeværket IONDV. Framework og til open source-produkter baseret på det. Vi vil fortælle om den tilladende licens Apache 2.0, om hvad der førte os til den og hvilke beslutninger vi stødte på i processen.

Valgprocessen for licensen er ret arbejdsom, og man bør komme til den med en vis læseforståelse, og hvis du ikke er heldig at have en juridisk uddannelse, så åbner der sig et ukendt informationsområde om forskellige frie licenser. Det vigtigste, man bør gøre, er at opstille en række begrænsende kriterier. I processen med at diskutere og overveje dette vil du og dit team kunne forstå, hvad I ønsker at tillade brugerne af dit produkt, og hvad der skal forbys. Når du allerede har en beskrivelse, skal den lægges oven på eksisterende licenser for at fremhæve den, hvor flest punkter er enige. Det lyder selvfølgelig simpelt, men i virkeligheden er der normalt stadig spørgsmål, selv efter diskussionen.

Hvordan man vælger en Open Source-licens til RAD-rammeværket på GitHub

Først - et link til choosealicense.com, en nyttig hjemmeside, som vi aktivt brugte. Vær især opmærksom på sammenligningstabellen over licenser i 13 hovedkriterier. Må engelsk og tålmodighed være med dig.

Valgets kvaler

Lad os begynde med de generelle karakteristika for licenser til fri software. FSO indebærer kun frie licenser, der ikke begrænser kommerciel og ikke-kommerciel distribution efter modellen Open Core. Derfor kan man ikke helt begrænse overførsel, distribution og salg af software under en fri licens, når man lægger den online, og man må bare forberede sig mentalt på dette.

Den frie licens giver brugeren ret til selv at deltage i reverse engineering af softwaren eller ændre den på andre tilgængelige måder. De fleste licenser tillader ikke omdøbning af produktet eller at udføre nogen manipulationer med det, der ændrer rettighederne for forfatteren og/eller ejeren af systemet.

De vigtigste spørgsmål, der interesserede os omkring frie licenser, var:

  1. Skal ændringer foretaget i softwaren dokumenteres og have ingen relation til rettighedshaveren af systemet?
  2. Må navnet på det afledte software ikke være identisk med navnet på rettighedshaverens software?
  3. Kan licensen ændres til en anden, også en proprietær, for alle nye versioner?

Efter nøje at have gennemgået listen over de mest udbredte licenser har vi valgt flere, som vi har analyseret nærmere. Potentielle licenser for IONDV. Framwork blev: GNU GPLv3, Apache 2.0, MIT og MPL. MIT Vi udelukkede næsten straks, da det er en tilladende kopi-left licens, der tillader brug, modifikation og distribution af koden næsten som man vil, og dette var ikke acceptabelt for os, da vi ønskede, at licensen skulle regulere forholdet mellem rettighedshaveren og brugeren. De fleste ikke de største projekter på GitHub er tilgængelige under MIT-licensen eller dens forskellige varianter. Selve licensen er meget kort, og den eneste forbud er angivelse af forfatteren af software.

Den næste var licensen MPL 2.0. Ærligt talt nåede vi ikke hurtigt til denne, men efter at have undersøgt den nærmere udelukkede vi den hurtigt, da den grundlæggende ulempe er, at licensen ikke gælder for hele projektet, men for enkelte filer. Derudover, hvis brugeren ændrer en fil, kan han ikke ændre licensen. I praksis, uanset hvor grundigt du ændrer et open source-projekt, vil du ikke kunne kommercialisere det på grund af en sådan licens. Dette gælder dog ikke for rettighedshaveren.

Det samme problem findes også i licensen GNU GPLv3. Det kræver, at enhver fil forbliver under den samme. GNU GPL er en kopi-left licens, der kræver, at kildekoderne til afledte arbejder er åbne og forbliver under den samme licens. Det vil sige, at efter at have omskrevet to linjer kode, bliver du tvunget til at fastsætte dine ændringer og ved videre brug eller distribution at holde koden under GNU GPL. I dette tilfælde er det en begrænsende faktor for brugeren af vores projekt, ikke for os. Men skift fra GPL til enhver anden licens er forbudt, selv inden for versioner af GPL. For eksempel, hvis du ændrer LGPL (overbygning på GPL) til GPL, vil der ikke være nogen tilbagevendende vej til LGPL. Og dette punkt var afgørende i afstemningen imod.

Generelt var vores valg oprindeligt skrånet mod GPL3 Dette skyldes spredningen af modificeret kode under den samme licens. Vi troede, at vi dermed kunne sikre vores produkt, men vi så færre risici med Apache 2.0. Ifølge Free Software Foundation er GPLv3 kompatibel med Apache License v2.0, hvilket betyder, at der altid er mulighed for at ændre licensen fra Apache License v2.0 til GPL v3.0.

Apache 2.0

Apache 2.0 — en afbalanceret tilladende licens med fokus på ophavsret. Her er de svar, den gav på de spørgsmål, der interesserede os. Skal ændringer i softwaren dokumenteres og har de ikke noget at gøre med rettighedshaveren af systemet? Ja, alle ændringer skal dokumenteres, og vi hæfter ikke for hverken kildekoden eller de ændrede versioner. Filen med ændringerne skal vedlægges den kode, hvori disse ændringer er foretaget. Må navnet på det afledte software ikke være det samme som navnet på rettighedshaverens software? Ja, det afledte software skal udgives under et andet navn og varemærke, men med angivelse af rettighedshaverens forfatterskab. Kan licensen ændres for alle nye versioner til en anden, herunder en proprietær? Ja, det er muligt at udgive under forskellige licenser, Apache 2.0 begrænser ikke anvendelsen af nogen ikke-kommercielle eller kommercielle licenser.

Derudover er det ikke obligatorisk at anvende den samme licens, når man udgiver nye produkter baseret på åben kilde under Apache 2.0 kode eller produkter med yderligere funktionalitet. Nedenfor kan du se et billede med vilkårene og begrænsningerne for Apache 2.0 licensen.

Hvordan man vælger en Open Source-licens til RAD-rammeværket på GitHub

Licensen stiller krav om bevarelse og omtale af ophavsret og licensen, under hvilken softwaren udsendes. Obligatorisk tilstedeværelse copyright notice med navnet på rettighedshaveren og licensen beskytter rettighederne for den oprindelige forfatter af softwaren, da selvom den bliver omdøbt, givet væk eller solgt under en anden licens, vil forfatternavnet stadig være til stede. For dette kan man også bruge en fil NOTICE og vedlægge den enten i kildekoden eller i dokumentationen til projektet.

Vi frigiver alle vores produkter under licensen Apache 2.0 på GitHub, bortset fra IONDV. War archive, hvis kildekode i april i år blev offentliggjort under GPLv3 licensen på GitHub af Det Fjernøstlige Center for Sociale Teknologier. På nuværende tidspunkt, udover selve af rammeværket og dets moduler er offentliggjort applikation lavet på frameworket. På Habr har vi allerede fortalt om Projektledelsessystemet og om Register for kommunikation.

Tekniske detaljer om rammeværket

IONDV. Framework – et open source framework på node.js til oprettelse af højniveau webapplikationer baseret på metadata, som ikke kræver alvorlige programmeringsevner.

Grundlaget for applikationens funktionalitet er dataregistret — modulet Registreret. Dette er et centralt modul, der er designet til at arbejde med data baseret på metadata-strukturer - herunder ledelse af projekter, programmer, arrangementer osv. Projektet gør også brug af portalmodulet til visning af vilkårlige dataskabeloner - fronten for registre med arkivsager er implementeret her.

MongoDB bruges som database — her gemmes både applikationens indstillinger, metadata og data.

Hvordan anvender man licensen på sit projekt?

Tilføj filen LICENSE med licensteksten til dit projekts repository og voilà, projektet er beskyttet af Apache 2.0. Du skal angive rettighedshaveren, som er copyright notice. Dette kan gøres i kildekoden eller i filen NOTICE (en tekstfil, der oplister alle biblioteker, der er licenseret under Apache-licensen sammen med navne på deres skabere). Filen skal placeres enten i kildekoden eller i dokumentationen, som distribueres sammen med arbejdet. Hos os ser det således ud:

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

Teksten til Apache License 2.0

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

VILKÅR OG BETINGELSER FOR BRUG, REPRODUKTION OG DISTRIBUTION

  1. Definitioner.

    «Licens» betyder betingelserne for brug, reproduktion,
    og distribution som defineret i afsnit 1 til 9 i dette dokument.

    «Licensgiver» betyder copyright-ejeren eller den enhed, der er autoriseret af
    copyright-ejeren, som giver Licensen.

    «Juridisk enhed» betyder sammenslutningen af den handlede enhed og alle
    andre enheder, der kontrollerer, kontrolleres af eller er under fælles
    kontrol med den enhed. Til formålet med denne definition
    betyder «kontrol» (i) magten, direkte eller indirekte, til at forårsage
    retningen eller ledelsen af en sådan enhed, uanset om det er ved kontrakt eller
    andet, eller (ii) ejerskab af halvtreds procent (50 %) eller mere af de
    udestående aktier, eller (iii) begunstiget ejerskab af en sådan enhed.

    «Du» (eller «Din») betyder en enkeltperson eller juridisk enhed
    som udøver de tilladelser, der gives af denne Licens.

    «Kilde» form betyder den foretrukne form for at lave ændringer,
    inklusive men ikke begrænset til softwarekildekode, dokumentations
    kilde og konfigurationsfiler.

    «Objekt» form betyder enhver form, der resulterer fra mekanisk
    transformation eller oversættelse af en kildeform, inklusive men
    ikke begrænset til kompileret objektskode, genereret dokumentation,
    og konverteringer til andre medietyper.

    «Værk» betyder et værk af forfatterskab, uanset om det er i kilde- eller
    objektform, gjort tilgængeligt under Licensen, som angivet af en
    copyright notice, der er inkluderet i eller knyttet til værket
    (et eksempel gives i appendikset nedenfor).

    «Afledte værker» betyder ethvert arbejde, uanset om det er i kilde- eller objektform,
    som er baseret på (eller afledt fra) Værket og for hvilket
    redaktionelle revisioner, annotationer, uddybninger eller andre ændringer
    repræsenterer i sin helhed et originalt værk af ophavsret. I forhold til
    denne licens skal derivative værker ikke omfatte værker, der forbliver
    adskilt fra eller blot linker (eller binder med navn) til grænsefladerne for
    værket og de derivative værker heraf.

    «Bidrag» skal betyde ethvert værk af ophavsret, herunder
    den originale version af værket og eventuelle ændringer eller tilføjelser
    til dette værk eller de derivative værker heraf, der bevidst
    indsendes til Licensgiver for inkludering i værket af ophavsretsejeren
    eller af en person eller juridisk enhed, der er autoriseret til at indsende på vegne af
    ophavsretsejeren. I denne definition betyder «indsendt»
    enhver form for elektronisk, verbal eller skriftlig kommunikation sendt
    til Licensgiver eller dens repræsentanter, herunder men ikke begrænset til
    kommunikation på elektroniske mailinglister, kildetekst kontrolsystemer,
    og issuesporingssystemer, der administreres af eller på vegne af
    Licensgiver med henblik på at diskutere og forbedre værket, men
    eksklusive kommunikation, der tydeligt er mærket eller ellers
    angivet skriftligt af ophavsretsejeren som «Ikke et Bidrag».

    «Bidragyder» skal betyde Licensgiver og enhver person eller juridisk enhed
    på hvis vegne et bidrag er modtaget af Licensgiver og
    sidenhen inkorporeret i værket.

  2. Tildeling af ophavsretlicens. Underlagt vilkårene og betingelserne for
    denne licens tildeler hver bidragyder hermed dig en evigvarende,
    verdensomspændende, ikke-eksklusiv, gratis, royalty-fri, uigenkaldelig
    ophavsretlicens til at reproducere, forberede derivative værker af,
    offentligt vise, offentligt optræde, underlicensere og distribuere
    værket og sådanne derivative værker i kilde- eller objektform.

  3. Tildeling af patentlicens. Underlagt vilkårene og betingelserne for
    denne licens tildeler hver bidragyder hermed dig en evigvarende,
    verdensomspændende, ikke-eksklusiv, gratis, royalty-fri, uigenkaldelig
    (bortset fra som angivet i denne sektion) patentlicens til at lave, få lavet,
    bruge, tilbyde til salg, sælge, importere og på anden måde overføre værket,
    hvor denne licens kun gælder for de patentkrav, der kan licensieres
    af denne bidragyder, som nødvendigvis krænkes af deres
    bidrag alene eller ved kombination af deres bidrag
    med det værk, som sådanne bidrag blev indsendt til. Hvis du
    indsætter patentsager mod nogen enhed (herunder en
    modkrav eller modkrav i en retssag), der hævder, at værket
    eller et bidrag, der er inkorporeret i værket, udgør direkte
    eller medvirkende patentkrænkelse, så skal alle patentlicenser
    givet til dig under denne licens for det værk ophøre
    fra datoen for, at sådan retssag er indgivet.

  4. Redistribution. Du må reproducere og distribuere kopier af
    værket eller de derivative værker heraf i ethvert medium, med eller uden
    ændringer og i kilde- eller objektform, forudsat at du
    opfylder følgende betingelser:

    (a) Du skal give enhver anden modtager af værket eller
    de derivative værker en kopi af denne licens; og

    (b) Du skal sørge for, at eventuelle ændrede filer bærer tydelige meddelelser
    der angiver, at du har ændret filerne; og

    (c) Du skal bevare, i kildeform af eventuelle derivative værker
    som du distribuerer, alle ophavsret, patent, varemærke og
    attribueringsmeddelelser fra kildeformen af værket,
    eksklusive de meddelelser, der ikke vedrører nogen del af
    de derivative værker; og

    (d) Hvis værket inkluderer en «BEMÆRKNING» tekstfil som en del af
    dets distribution, skal eventuelle derivative værker, som du distribuerer,
    inkludere en læsbar kopi af attribueringsmeddelelserne, der er indeholdt
    i en sådan BEMÆRKNINGSfil, eksklusive de meddelelser, der ikke vedrører
    enhver del af de derivative værker, på mindst én
    af følgende steder: inden i en BEMÆRKNINGS tekstfil distribueret
    som en del af de derivative værker; inden for kildeformen eller
    dokumentationen, hvis der medfølger det sammen med de derivative værker; eller,
    inden for en visning genereret af de derivative værker, hvis og
    hvor sådanne tredjepartsmeddelelser normalt vises. Indholdet
    af BEMÆRKNINGSfilen er kun til informationsformål og
    ændrer ikke licensen. Du kan tilføje din egen anerkendelse
    meddelelser inden for afledte værker, som du distribuerer, sideløbende
    eller som et tillæg til den NOTICE tekst, der er fra værket, forudsat
    at sådanne yderligere anerkendelsesmeddelelser ikke kan fortolkes
    som at ændre licensen.

    Du kan tilføje din egen copyright-erklæring til dine ændringer og
    kan give yderligere eller forskellige licensvilkår og betingelser
    for brug, reproduktion eller distribution af dine ændringer, eller
    for sådanne afledte værker som helhed, forudsat at din brug,
    reproduktion og distribution af værket ellers overholder
    de betingelser, der er angivet i denne licens.

  5. Indsendelse af bidrag. Medmindre du eksplicit angiver andet,
    skal ethvert bidrag, der bevidst indsendes til inkludering i værket,
    af dig til licensgiveren være under vilkårene og betingelserne for
    denne licens, uden yderligere vilkår eller betingelser.
    Ikke desto mindre skal intet heri overtrumfe eller ændre
    vilkårene i enhver separat licensaftale, du måtte have indgået
    med licensgiveren vedrørende sådanne bidrag.

  6. Varemærker. Denne licens giver ikke tilladelse til at bruge handels-
    navne, varemærker, servicemærker eller produktnavne fra licensgiveren,
    undtagen som krævet for rimelig og sædvanlig brug i beskrivelsen af
    oprindelsen af værket og reproduktion af indholdet i NOTICE-filen.

  7. Fraskrivelse af garanti. Medmindre andet kræves ved gældende lov eller
    aftales skriftligt, giver licensgiveren værket (og hver
    bidragyder giver sine bidrag) på en «SOM DEN ER» BASIS,
    uden garantier eller betingelser af nogen art, hverken udtrykkelige eller
    underforståede, herunder, men ikke begrænset til, garantier eller betingelser
    om TITEL, OVERHOLDELSE, HANDLENDE EVNE, eller EGNETHED TIL EN
    BESTEMT FORMÅL. Du er alene ansvarlig for at bestemme
    om det er passende at bruge eller redistribuere værket og påtage dig enhver
    risiko, der er forbundet med din udnyttelse af rettighederne under denne licens.

  8. Begrænsning af ansvar. Under ingen omstændigheder og under ingen juridisk teori,
    uanset om det er i erstatningsret (herunder uagtsomhed), kontrakt eller andet,
    medmindre det kræves ved gældende lov (såsom forsætlig og groft
    uagtsomme handlinger) eller aftales skriftligt, skal nogen bidragyder være
    ansvarlig over for dig for skader, herunder direkte, indirekte, særlige,
    tilfældige eller følgeskader af enhver art, der opstår som et
    resultat af denne licens eller ud af brugen af eller manglende evne til at bruge værket
    (inklusive, men ikke begrænset til, skader for tab af goodwill,
    arbejdsstandstilladelse, computerfejl eller funktionsfejl, eller alle og enhver
    andre kommercielle skader eller tab), selvom sådan bidragyder
    er blevet advaret om muligheden for sådanne skader.

  9. Accepterer garanti eller yderligere ansvar. Mens du redistribuerer
    værket eller afledte værker heraf, kan du vælge at tilbyde,
    og opkræve et gebyr for, accept af støtte, garanti, erstatning,
    eller andre ansvar og/eller rettigheder i overensstemmelse med denne
    licens. Men når du accepterer sådanne forpligtelser, kan du handle kun
    på dine egne vegne og på dit eget ansvar, ikke på vegne
    af nogen anden bidragyder, og kun hvis du accepterer at erstatte,
    forsvare og holde hver bidragyder skadesløs for ethvert ansvar
    pådraget af eller krav rejst mod sådan bidragyder på grund af
    din accept af enhver sådan garanti eller yderligere ansvar.

    SLUT PÅ VILKÅR OG BETINGELSER

    BILAG: Hvordan man anvender Apache-licensen på dit arbejde.

    For at anvende Apache-licensen på dit arbejde, vedhæft følgende
    standardmeddelelse, med felterne indeholdt i firkantede parenteser «[]»
    erstatte med dine egne identifikationsoplysninger. (Inkluder ikke
    de firkantede parenteser!) Teksten skal være indkapslet i den relevante
    kommentarsyntaks for filformatet. Vi anbefaler også, at et
    fil- eller klassens navn og beskrivelse af formålet inkluderes på den
    samme «trykte side» som copyright-meddelelsen for lettere
    identifikation i tredjepartsarkiver.

    Copyright [åååå] [navnet på copyright-ejeren]

    Licenseret under Apache-licensen, version 2.0 (den «licens»);
    Du må ikke bruge denne fil, medmindre det er i overensstemmelse med licensen.
    Du kan få en kopi af licensen på

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

    Medmindre det kræves af gældende lovgivning eller aftalt skriftligt, software
    der distribueres under licensen, distribueres på en «AS IS» BASIS,
    UDEN GARANTIER ELLER BETINGELSER AF ENHVER ART, hverken udtrykkelige eller underforståede.
    Se licensen for det specifikke sprog, der regulerer tilladelser og
    begrænsninger under licensen.

Licens = aftale

En fri licens er fri, men den tillader ikke total frihed, og vi har allerede givet eksempler på begrænsninger. Vælg licensen med tanke på både dine interesser og brugeren, fordi open source-software er designet netop til den. Brugeren af projektet bør opfatte licensen som en slags aftale mellem ham og ophavsmanden, så før du foretager dig noget med kildekoden, bør du nøje gennemgå de begrænsninger, som projektets licens pålægger dig.

Vi håber, at vi har kastet lidt lys over emnet licenser, og på trods af problemets kompleksitet bør det ikke blive en hindring for din vej ind i Open Source. Udvikl dit projekt, og glem ikke om rettighederne, dine såvel som andres.

Nyttige links

Til slut nogle nyttige ressourcer, som hjalp os med at finde information om eksisterende licenser og vælge den mest passende til vores mål:

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster