Hvordan velge en åpen kildekode-lisens for RAD-rammeverket på GitHub

I denne artikkelen skal vi snakke litt om opphavsrett, men hovedsakelig om å velge en gratis lisens for RAD-rammeverket IONDV. Rammeverk og for åpen kildekode-produkter basert på det. Vi vil fortelle deg om tillatelseslisensen Apache 2.0, om hva som førte oss til det og hvilke beslutninger vi sto overfor i prosessen.

Prosessen med å velge en lisens er ganske arbeidskrevende og bør tilnærmes allerede godt lest, og hvis du ikke er en lykkelig eier av en juridisk utdannelse, åpner det seg et ukjent felt med informasjon om ulike gratis lisenser for deg. Det viktigste er å utarbeide en rekke begrensende kriterier. Gjennom prosessen med diskusjon og refleksjon vil du og teamet ditt kunne forstå hva du vil tillate brukere av produktet ditt og hva du skal forby. Når du allerede har en viss beskrivelse i hendene, må du legge den over på de eksisterende lisensene og velge den der det største antallet poeng sammenfaller. Det høres selvfølgelig enkelt ut, men i virkeligheten, vanligvis selv etter diskusjon, gjenstår spørsmål.

Hvordan velge en åpen kildekode-lisens for RAD-rammeverket på GitHub

Først en lenke til selectalicense.com, et nyttig nettsted som vi brukte mye. Vær spesielt oppmerksom på sammenligningstabell lisenser etter 13 hovedkriterier. Måtte engelsk og tålmodighet være med deg.

Valgenes smerte

La oss starte med de generelle egenskapene til lisenser for gratis programvare. Programvare med åpen kildekode innebærer en eksklusivt gratis lisens, som ikke begrenser kommersiell og ikke-kommersiell distribusjon i henhold til modellen Åpne kjerne. Følgelig kan ikke å sette programvare på nettverket under en gratis lisens fullstendig begrense overføring, distribusjon og salg av tredjeparter, og du trenger bare å være mentalt forberedt på dette.

En gratis lisens gir brukeren rett til å delta i omvendt utvikling av programvaren eller endre den på andre tilgjengelige måter. De fleste lisenser tillater deg ikke å endre navn på produktet eller utføre noen manipulasjoner med det, noe som endrer rettighetene til forfatteren og/eller eieren av systemet.

De viktigste spørsmålene vi var interessert i om gratis lisenser var:

  1. Bør endringer som gjøres i programvaren registreres og ikke ha noe forhold til opphavsrettsinnehaveren av systemet?
  2. Bør navnet på den avledede programvaren ikke være det samme som navnet på opphavsrettsinnehaverens programvare?
  3. Er det mulig å endre lisensen for nye versjoner til en annen, inkludert en proprietær?

Etter å ha sett nøye på listen over de vanligste lisensene, valgte vi flere som vi vurderte mer detaljert. Potensielle lisenser for IONDV. Rammeverk var: GNU GPLv3, Apache 2.0, MIT og MPL. MIT nesten umiddelbart utelukket, dette er en tillatende lisens som ikke er kopiert til venstre, som tillater bruk, modifikasjon og distribusjon av koden på nesten hvilken som helst måte, men vi var ikke fornøyd med dette alternativet, vi ønsket fortsatt at lisensen skulle regulere forholdet mellom opphavsretten holderen og brukeren. De fleste av de mindre prosjektene på GitHub er publisert under MIT-lisensen eller dens forskjellige varianter. Selve lisensen er veldig kort, og de eneste forbudene er å angi forfatterskapet til programvareskaperen.

Neste var lisensen MPL 2.0. Riktignok kom vi ikke til det med en gang, men etter å ha studert det nærmere, utelukket vi det raskt, siden hovedulempen er at lisensen ikke gjelder hele prosjektet, men individuelle filer. I tillegg, hvis brukeren endrer filen, kan han ikke endre lisensen. Faktisk, uansett hvor flittig du endrer et åpen kildekode-prosjekt, vil du aldri kunne tjene penger på det på grunn av en slik lisens. Dette angår for øvrig ikke rettighetshaveren.

Et lignende problem vedvarer med lisensen GNU GPLv3. Det krever at enhver fil forblir under den. GNU GPL er en copyleft-lisens som krever at avledede verk er åpen kildekode og forblir under samme lisens. Det vil si: ved å omskrive to linjer med kode, vil du bli tvunget til å foreta endringene dine og, under videre bruk eller distribusjon, lagre koden under GNU GPL. I dette tilfellet er dette en begrensende faktor for brukeren av prosjektet vårt, og ikke for oss. Men å endre GPL til en hvilken som helst annen lisens er forbudt, selv innenfor GPL-versjoner. For eksempel hvis du endrer LGPL (et tillegg til GPL) til GPL, så er det ingen vei tilbake til LGPL. Og dette punktet var avgjørende for å stemme mot det.

Totalt sett lente valget vårt i utgangspunktet mot GPL3 nettopp på grunn av distribusjonen av den modifiserte koden under samme lisens. Vi trodde at på denne måten kunne vi sikre produktet vårt, men vi så færre risikoer i Apache 2.0. I følge Free Software Foundation er GPLv3 kompatibel med Apache License v2.0, noe som betyr at det alltid er mulig å endre lisensen fra Apache License v2.0 til GPL v3.0.

Apache 2.0

Apache 2.0 — en balansert tillatende lisens med vekt på opphavsrett. Her er svarene hun ga på spørsmålene som interesserte oss. Bør endringer som gjøres i programvaren registreres og ikke ha noe forhold til opphavsrettsinnehaveren av systemet? Ja, alle endringer må dokumenteres og vi er ikke ansvarlige for den opprinnelige koden eller den endrede. Filen med endringene må legges ved koden du gjorde disse endringene i. Bør navnet på den avledede programvaren ikke være det samme som navnet på opphavsrettsinnehaverens programvare? Ja, avledet programvare bør utgis under et annet navn og under et annet varemerke, men med en indikasjon på opphavsrettsinnehaveren. Er det mulig å endre lisensen for nye versjoner til en annen, inkludert en proprietær? Ja, den kan utgis under forskjellige lisenser, Apache 2.0 begrenser ikke bruken av ikke-kommersielle og kommersielle lisenser.

Dessuten, når du slipper nye produkter basert på åpen kildekode for Apache 2.0 eller produkter med tilleggsfunksjonalitet, er det ikke nødvendig å bruke samme lisens. Nedenfor kan du se et bilde med vilkårene og begrensningene for Apache 2.0-lisensen.

Hvordan velge en åpen kildekode-lisens for RAD-rammeverket på GitHub

Lisensen pålegger et krav om å bevare og nevne opphavsrettigheter og lisensen programvaren utgis under. Obligatorisk tilgjengelighet Opphavsrettserklæring med navnet på opphavsrettsinnehaveren og en lisens beskytter rettighetene til den opprinnelige forfatteren av programvaren, siden selv om den blir omdøpt, gitt bort eller solgt under en annen lisens, vil forfatterens merke fortsatt bestå. Du kan også bruke filen til dette MERKNAD og fest den enten til kildekoden eller til prosjektdokumentasjonen.

Vi gir ut alle produktene våre offentlig tilgjengelig på GitHub under Apache 2.0-lisensen, unntatt IONDV. Krigsarkiv, hvis kildekode ble publisert under GPLv3-lisensen på GitHub i april i år av Far Eastern Center for Social Technologies. For øyeblikket, i tillegg til rammeverk og moduler publisert приложения laget på rammeverket. På navet vi allerede har snakket om Prosjektstyringssystem og om Kommunikasjonsregister.

De. detaljer om rammeverket

IONDV. Framework er et åpen kildekode-rammeverk basert på node.js for å lage webapplikasjoner på høyt nivå basert på metadata, som ikke krever seriøse programmeringskunnskaper.

Grunnlaget for applikasjonens funksjonalitet er dataregisteret – Registermodulen. Dette er en nøkkelmodul designet direkte for å arbeide med data basert på metadatastrukturer - inkludert for styring av prosjekter, programmer, arrangementer osv. Prosjektet bruker også en portalmodul for visning av vilkårlige datamaler - den implementerer arkivfrontregisteret.

MongoDb brukes til DBMS - den lagrer applikasjonsinnstillinger, metadata og selve dataene.

Hvordan søke om lisens for prosjektet ditt?

Legg til en fil LISENS med lisensteksten i depotet til prosjektet ditt og voilà, et prosjekt beskyttet av Apache 2.0. Du må angi rettighetshaveren, det er det Opphavsrettserklæring. Dette kan gjøres i kildekoden eller i en fil MERKNAD (en tekstfil som viser alle biblioteker som er lisensiert under Apache-lisensen sammen med navnene på skaperne deres). Plasser selve filen enten i kildekoden eller i dokumentasjonen som distribueres sammen med arbeidet. For oss ser det slik ut:

Copyright © 2018 ION DV LLC.
Lisensiert under Apache-lisensen, versjon 2.0

Apache 2.0 lisenstekst

Apache-lisens
Versjon 2.0, januar 2004
http://www.apache.org/licenses/

VILKÅR FOR BRUK, REPRODUKSJON OG FORDELING

  1. Definisjoner.

    "Lisens" skal bety vilkårene og betingelsene for bruk, reproduksjon,
    og distribusjon som definert i avsnitt 1 til 9 i dette dokumentet.

    "Lisensgiver" skal bety opphavsrettseieren eller enheten autorisert av
    opphavsrettseieren som gir lisensen.

    "Juridisk enhet" skal bety foreningen av den fungerende enheten og alle
    andre enheter som kontrollerer, kontrolleres av eller er under felles
    kontroll med den enheten. I denne definisjonen forstås ved
    "kontroll" betyr (i) makten, direkte eller indirekte, til å forårsake
    ledelse eller ledelse av en slik enhet, enten ved kontrakt eller
    ellers, eller (ii) eierskap på femti prosent (50%) eller mer av
    utestående aksjer, eller (iii) reelt eierskap av en slik enhet.

    "Du" (eller "din") skal bety en enkeltperson eller juridisk enhet
    utøve tillatelser gitt av denne lisensen.

    "Kilde"-skjema skal bety det foretrukne skjemaet for å gjøre endringer,
    inkludert men ikke begrenset til programvarekildekode, dokumentasjon
    kilde- og konfigurasjonsfiler.

    "Objekt"-form skal bety enhver form som er et resultat av mekanisk
    transformasjon eller oversettelse av et kildeskjema, inkludert men
    ikke begrenset til samlet objektkode, generert dokumentasjon,
    og konvertering til andre medietyper.

    "Verk" skal bety forfatterskapet, enten det er i Kilde eller
    Objektskjema, gjort tilgjengelig under lisensen, som angitt av a
    copyright copyright som er inkludert i eller vedlagt verket
    (et eksempel er gitt i vedlegget nedenfor).

    "Avledede verk" skal bety ethvert verk, enten det er i kilde eller objekt
    skjema, som er basert på (eller avledet fra) verket og som
    redaksjonelle revisjoner, merknader, utarbeidelser eller andre modifikasjoner
    representerer som en helhet et originalt forfatterskap. For formålene
    i denne lisensen, skal avledede verk ikke omfatte gjenværende gjenstander
    kan skilles fra, eller bare lenke (eller bindes etter navn) til grensesnittene til,
    arbeidet og avledede verk derav.

    "Bidrag" skal bety ethvert forfatterskap, inkludert
    originalversjonen av verket og eventuelle modifikasjoner eller tillegg
    til det verket eller avledede verk derav, det er med vilje
    sendt til lisensgiveren for inkludering i verket av opphavsrettseieren
    eller av en person eller juridisk enhet som er autorisert til å sende inn på vegne av
    opphavsrettseieren. For formålet med denne definisjonen, "innsendt"
    betyr enhver form for elektronisk, verbal eller skriftlig kommunikasjon som sendes
    til Lisensgiveren eller dets representanter, inkludert men ikke begrenset til
    kommunikasjon på elektroniske postlister, kildekodekontrollsystemer,
    og utstede sporingssystemer som administreres av eller på vegne av
    Lisensgiver med det formål å diskutere og forbedre arbeidet, men
    unntatt kommunikasjon som er iøynefallende merket eller på annen måte
    utpekt skriftlig av opphavsrettseieren som «Ikke et bidrag».

    "Bidragsyter" skal bety lisensgiver og enhver enkeltperson eller juridisk enhet
    på vegne av hvem det er mottatt et bidrag fra lisensgiveren og
    senere innlemmet i arbeidet.

  2. Tildeling av opphavsrettslisens. I henhold til vilkårene for
    denne lisensen, hver bidragsyter gir deg herved en evigvarende,
    over hele verden, ikke-eksklusiv, gratis, royaltyfri, ugjenkallelig
    copyright lisens til å reprodusere, utarbeide avledede verk av,
    offentlig vise, offentlig utføre, underlisensiere og distribuere
    Arbeid og slike avledede arbeider i kilde- eller objektform.

  3. Tildeling av patentlisens. I henhold til vilkårene for
    denne lisensen, hver bidragsyter gir deg herved en evigvarende,
    over hele verden, ikke-eksklusiv, gratis, royaltyfri, ugjenkallelig
    (unntatt som angitt i denne seksjonen) patentlisens for å lage, ha laget,
    bruke, tilby å selge, selge, importere og på annen måte overføre arbeidet,
    der slik lisens bare gjelder de patentkrav som er lisensierte
    av en slik bidragsyter som nødvendigvis er krenket av deres
    Bidrag (er) alene eller ved kombinasjon av deres bidrag (er)
    med arbeidet som slike bidrag ble levert til. Hvis du
    institutt patentsøksmål mot enhver enhet (inkludert en
    krysskrav eller motkrav i en søksmål) som hevder at Verket
    eller et bidrag innarbeidet i arbeidet utgjør direkte
    eller medvirkende patentovertredelse, så eventuelle patentlisenser
    gitt til deg under denne lisensen for at arbeidet skal opphøre
    fra datoen slik rettstvist er anlagt.

  4. Omfordeling. Du kan reprodusere og distribuere kopier av
    Arbeid eller avledede verk derav i hvilket som helst medium, med eller uten
    endringer, og i kilde- eller objektform, forutsatt at du
    oppfyller følgende betingelser:

    (a) Du må gi alle andre mottakere av verket eller
    Derivative Works en kopi av denne lisensen; og

    (b) Du må sørge for at alle modifiserte filer bærer fremtredende merknader
    som sier at du endret filene; og

    © Du må beholde, i kildeformen til alle avledede verk
    som du distribuerer, all copyright, patent, varemerke og
    attribusjonsmerknader fra kildeformen til arbeidet,
    unntatt de merknader som ikke gjelder noen del av
    de avledede verkene; og

    (d) Hvis Verket inkluderer en "MERKNAD"-tekstfil som en del av det
    distribusjon, så må alle avledede verk du distribuerer
    inkluderer en lesbar kopi av attribusjonsmeldingene
    i slik MERKNAD-fil, unntatt de merknadene som ikke gjør det
    vedrører noen del av Derivative Works, i minst ett
    av følgende steder: i en NOTICE-tekstfil distribuert
    som en del av Derivative Works; innenfor kildeskjemaet eller
    dokumentasjon, hvis den leveres sammen med Derivative Works; eller,
    i en skjerm generert av Derivative Works, hvis og
    uansett hvor slike tredjepartsmeldinger normalt vises. Innholdet
    av NOTICE-filen er kun til informasjonsformål og
    ikke endre lisensen. Du kan legge til din egen tilskrivning
    merknader i Derivative Works som du distribuerer, ved siden av
    eller som et tillegg til MERKNADSTEKSTEN fra verket, gitt
    at slike tilleggsattribusjonsmerknader ikke kan tolkes
    som modifisering av lisensen.

    Du kan legge til din egen copyright-erklæring til dine modifikasjoner og
    kan gi ytterligere eller andre lisensvilkår
    for bruk, reproduksjon eller distribusjon av dine modifikasjoner, eller
    for slike avledede arbeider som helhet, forutsatt din bruk,
    reproduksjon og distribusjon av arbeidet ellers er i samsvar med
    vilkårene angitt i denne lisensen.

  5. Innlevering av bidrag. Med mindre du uttrykkelig oppgir noe annet,
    ethvert bidrag med vilje sendt inn for inkludering i arbeidet
    av deg til lisensgiveren skal være under vilkårene for
    denne lisensen, uten tilleggsvilkår.
    Til tross for det ovenstående skal ingenting heri erstatte eller modifisere
    vilkårene i en hvilken som helst separat lisensavtale du har utført
    med lisensgiveren angående slike bidrag.

  6. Varemerker. Denne lisensen gir ikke tillatelse til å bruke handelen
    navn, varemerker, tjenestemerker eller produktnavn til lisensgiveren,
    unntatt som kreves for rimelig og vanlig bruk i beskrivelsen av
    opprinnelsen til verket og reprodusere innholdet i NOTICE-filen.

  7. Fraskrivelse av garanti. Med mindre det kreves av gjeldende lov eller
    skriftlig avtalt med, gir lisensgiver arbeidet (og hver
    Bidragsyter gir sine bidrag) på "SOM DEN ER" BASIS,
    UTEN GARANTIER ELLER BETINGELSER FOR NOE SLIK, enten uttrykkelig eller
    underforstått, inkludert, uten begrensning, eventuelle garantier eller betingelser
    av TITEL, IKKE-OVERTREDELSE, SALGSMERKELIGHET eller EGNETHET FOR A
    SPESIELL GRUNN. Du er eneansvarlig for å bestemme
    hensiktsmessigheten av å bruke eller omfordele arbeidet og anta noe
    risiko forbundet med din utøvelse av tillatelser under denne lisensen.

  8. Ansvarsbegrensning. Under ingen omstendigheter og under ingen juridisk teori,
    enten det er erstatningsrettslig (inkludert uaktsomhet), kontrakt eller på annen måte,
    med mindre det kreves av gjeldende lov (som bevisst og grovt
    uaktsomme handlinger) eller skriftlig avtalt med, skal enhver bidragsyter være
    ansvarlig overfor deg for skader, inkludert direkte, indirekte, spesielle,
    tilfeldige skader eller følgeskader av noe slag som oppstår som en
    resultat av denne lisensen eller av bruk eller manglende evne til å bruke
    Arbeid (inkludert men ikke begrenset til skader for tap av goodwill,
    arbeidsstans, datamaskinsvikt eller funksjonsfeil, eller alt
    andre kommersielle skader eller tap), selv om en slik bidragsyter
    har blitt informert om muligheten for slike skader.

  9. Godta garanti eller tilleggsansvar. Mens du omdistribuerer
    verk eller avledede verk derav, kan du velge å tilby,
    og kreve et gebyr for, aksept av støtte, garanti, erstatning,
    eller andre ansvarsforpliktelser og / eller rettigheter som er i samsvar med dette
    Tillatelse. Når du aksepterer slike forpliktelser, kan du bare handle
    på dine egne vegne og på ditt eget ansvar, ikke på vegne
    av en hvilken som helst annen bidragsyter, og bare hvis du godtar å skadesløse
    forsvare, og hold hver bidragsyter ufarlig for ethvert ansvar
    pådratt av, eller krav hevdet mot, slik bidragsyter av grunn
    av at du godtar en slik garanti eller ytterligere ansvar.

    SLUTT PÅ VILKÅR OG BETINGELSER

    VEDLEGG: Slik bruker du Apache-lisensen på arbeidet ditt.

    For å bruke Apache-lisensen på arbeidet ditt, legg ved følgende
    boilerplate notis, med feltene omsluttet av parentes "[]"
    erstattet med din egen identifiserende informasjon. (Ikke inkluder
    parentesene!) Teksten bør være vedlagt i det aktuelle
    kommentarsyntaks for filformatet. Vi anbefaler også at a
    fil- eller klassenavn og beskrivelse av formål inkluderes på
    samme "trykte side" som opphavsrettserklæringen for enklere
    identifikasjon i tredjepartsarkiver.

    Copyright [åååå] [navn på copyright copyright]

    Lisensiert under Apache-lisensen, versjon 2.0 ("lisensen");
    du kan ikke bruke denne filen uten å overholde lisensen.
    Du kan skaffe deg en kopi av lisensen på

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

    Med mindre det kreves av gjeldende lov eller er skriftlig avtalt med programvare
    distribuert under lisensen distribueres på "SOM DEN ER" BASIS,
    UTEN GARANTIER ELLER BETINGELSER FOR NOE SLAG, enten uttrykkelig eller underforstått.
    Se lisensen for det spesifikke språket for tillatelser og
    begrensninger under lisensen.

Lisens = kontrakt

En gratis lisens, selv om den er gratis, tillater ikke tillatelse, og vi har allerede gitt eksempler på begrensninger. Velg en lisens som tar hensyn til både dine interesser og brukerens, fordi åpen kildekode-programvare er designet spesielt for ham. Brukeren av prosjektet bør oppfatte lisensen som en slags avtale mellom ham og rettighetshaveren, så før du utfører noen handlinger på kildekoden, studer nøye begrensningene som er pålagt deg av prosjektets lisens.

Vi håper at vi har kastet litt lys over temaet lisenser, og til tross for kompleksiteten i problemet, bør det ikke bli et hinder på veien til åpen kildekode. Utvikle prosjektet ditt og ikke glem rettighetene, dine og andre.

Nyttige lenker

Til slutt, noen nyttige ressurser som hjalp oss når vi søkte etter informasjon om eksisterende lisenser og valgte den mest passende for våre formål:

Kilde: www.habr.com

Legg til en kommentar