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.
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:
Bør endringer som gjøres i programvaren registreres og ikke ha noe forhold til opphavsrettsinnehaveren av systemet?
Bør navnet på den avledede programvaren ikke være det samme som navnet på opphavsrettsinnehaverens programvare?
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.
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:
"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.
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.
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.
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
(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.
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.
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.
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.
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.
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å
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: