Hur man väljer en Open Source-licens för RAD-ramverket på GitHub
I den här artikeln kommer vi att prata lite om upphovsrätt, men främst om att välja en gratis licens för RAD-ramverket IONDV. Ramverk och för open source-produkter baserade på det. Vi kommer att berätta om tillståndslicensen Apache 2.0, om vad som ledde oss till det och vilka beslut vi stod inför i processen.
Processen för att välja en licens är ganska arbetskrävande och bör närma sig redan påläst, och om du inte är en lycklig ägare av en juridisk utbildning, öppnar sig ett tilldelat informationsfält om olika gratislicenser framför dig. Det viktigaste är att utarbeta ett antal begränsande kriterier. Genom processen med diskussion och reflektion kommer du och ditt team att kunna förstå vad du vill tillåta användare av din produkt och vad du ska förbjuda. När du redan har en viss beskrivning i dina händer måste du lägga över den på de befintliga licenserna och välja den där det största antalet poäng sammanfaller. Det låter förstås enkelt, men i verkligheten, oftast även efter diskussion, återstår frågor.
Först en länk till selectalicense.com, en användbar webbplats som vi använde flitigt. Var särskilt uppmärksam på jämförelsetabell licenser enligt 13 huvudkriterier. Må engelska och tålamod vara med dig.
Valets vånda
Låt oss börja med de allmänna egenskaperna för licenser för gratis mjukvara. Programvara med öppen källkod innebär en exklusivt fri licens, som inte begränsar kommersiell och icke-kommersiell distribution enligt modellen Öppna kärna. Följaktligen kan det inte helt begränsa överföringen, distributionen och försäljningen av programvara på nätverket under en fri licens, och du behöver bara vara mentalt förberedd för detta.
En gratis licens ger användaren rätt att delta i omvänd utveckling av programvaran eller ändra den på andra tillgängliga sätt. De flesta licenser tillåter dig inte att byta namn på produkten eller utföra några manipulationer med den, vilket ändrar rättigheterna för författaren och/eller ägaren av systemet.
De viktigaste frågorna vi var intresserade av om gratislicenser var:
Bör ändringar som görs i programvaran registreras och inte ha något samband med upphovsrättsinnehavaren av systemet?
Bör namnet på den härledda programvaran inte vara detsamma som namnet på upphovsrättsinnehavarens programvara?
Är det möjligt att ändra licensen för alla nya versioner till en annan, inklusive en proprietär?
Efter att noggrant tittat på listan över de vanligaste licenserna valde vi ut flera som vi övervägde mer i detalj. Potentiella licenser för IONDV. Ramverk var: GNU GPLv3, Apache 2.0, MIT och MPL. MIT nästan omedelbart uteslutet, detta är en tillåtande icke-copyleft-licens, som tillåter användning, modifiering och distribution av koden på nästan vilket sätt som helst, men vi var inte nöjda med det här alternativet, vi ville fortfarande att licensen skulle reglera förhållandet mellan upphovsrätten hållaren 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 de enda förbuden är att ange upphovsmannen till mjukvaruskaparen.
Nästa var licensen MPL 2.0. Visserligen kom vi inte till det direkt, men efter att ha studerat det mer i detalj uteslöt vi det snabbt, eftersom den största nackdelen är att licensen inte gäller hela projektet, utan enskilda filer. Dessutom, om användaren ändrar filen kan han inte ändra licensen. Faktum är att oavsett hur flitigt du ändrar ett projekt med öppen källkod, kommer du aldrig att kunna tjäna pengar på det på grund av en sådan licens. Detta berör för övrigt inte upphovsrättsinnehavaren.
Ett liknande problem kvarstår med licensen GNU GPLv3. Det kräver att alla filer finns kvar under den. GNU GPL är en copyleft-licens som kräver att härledda verk är öppen källkod och förblir under samma licens. Det vill säga: genom att skriva om två rader kod kommer du att tvingas genomföra dina ändringar och, under vidare användning eller distribution, spara koden under GNU GPL. I det här fallet är detta en begränsande faktor för användaren av vårt projekt, och inte för oss. Men det är förbjudet att ändra GPL till någon annan licens, även inom GPL-versioner. Till exempel om du byter LGPL (ett tillägg till GPL) till GPL, så finns det ingen väg tillbaka till LGPL. Och denna punkt var avgörande för att rösta emot den.
Sammantaget lutade vårt val till en början mot GPL3 just på grund av distributionen av den modifierade koden under samma licens. Vi trodde att vi på detta sätt kunde säkra vår produkt, men vi såg färre risker i Apache 2.0. Enligt Free Software Foundation är GPLv3 kompatibel med Apache License v2.0, vilket innebär att det alltid är möjligt att ändra licensen från Apache License v2.0 till GPL v3.0.
Apache 2.0
Apache 2.0 — En balanserad tillåtande licens med tonvikt på upphovsrätt. Här är svaren hon gav på de frågor som intresserade oss. Bör ändringar som görs i programvaran registreras och inte ha något samband med upphovsrättsinnehavaren av systemet? Ja, alla ändringar måste dokumenteras och vi ansvarar inte för den ursprungliga koden eller den modifierade. Filen med ändringarna måste bifogas koden där du gjorde dessa ändringar. Bör namnet på den härledda programvaran inte vara detsamma som namnet på upphovsrättsinnehavarens programvara? Ja, härledd programvara bör släppas under ett annat namn och under ett annat varumärke, men med en uppgift om upphovsrättsinnehavaren. Är det möjligt att ändra licensen för alla nya versioner till en annan, inklusive en proprietär? Ja, det kan släppas under olika licenser, Apache 2.0 begränsar inte användningen av några icke-kommersiella och kommersiella licenser.
Dessutom, när man släpper nya produkter baserade på öppen källkod för Apache 2.0 eller produkter med ytterligare funktionalitet, är det inte nödvändigt att använda samma licens. Nedan kan du se en bild med villkoren och begränsningarna för Apache 2.0-licensen.
Licensen ställer krav på att bevara och nämna upphovsrätter och den licens under vilken programvaran släpps. Obligatorisk tillgänglighet upphovsrättsmeddelande med namnet på upphovsrättsinnehavaren och en licens skyddar rättigheterna för den ursprungliga upphovsmannen till programvaran, eftersom även om den döps om, ges bort eller säljs under en annan licens, kommer upphovsmannens varumärke fortfarande att finnas kvar. Du kan också använda filen för detta LÄGGA MÄRKE TILL och bifoga den antingen till källkoden eller till projektdokumentationen.
Vi släpper alla våra produkter offentligt tillgängliga på GitHub under Apache 2.0-licensen, förutom IONDV. Krigsarkiv, vars källkod publicerades under GPLv3-licensen på GitHub i april i år av Far Eastern Center for Social Technologies. För närvarande, förutom ramverk och moduler publicerad appar gjort på ramverket. På navet vi redan pratat om Projektledningssystem och om Kommunikationsregister.
De där. detaljer om ramverket
IONDV. Framework är ett ramverk med öppen källkod baserat på node.js för att skapa webbapplikationer på hög nivå baserade på metadata, vilket inte kräver seriösa programmeringskunskaper.
Grunden för applikationens funktionalitet är dataregistret - Registermodulen. Detta är en nyckelmodul designad direkt för att arbeta med data baserad på metadatastrukturer – inklusive för hantering av projekt, program, evenemang etc. Projektet använder även en portalmodul för att visa godtyckliga datamallar – den implementerar arkivfrontregistret.
MongoDb används för DBMS - den lagrar applikationsinställningar, metadata och själva data.
Hur ansöker jag om en licens för ditt projekt?
Lägg till en fil LICENS med licenstexten i ditt projekts arkiv och voilà, ett projekt skyddat av Apache 2.0. Du måste ange upphovsrättsinnehavaren, det är allt upphovsrättsmeddelande. Detta kan göras i källkoden eller i en fil LÄGGA MÄRKE TILL (en textfil som listar alla bibliotek licensierade under Apache-licensen tillsammans med namnen på deras skapare). Placera själva filen antingen i källkoden eller i dokumentationen som distribueras tillsammans med arbetet. För oss ser det ut så här:
VILLKOR FÖR ANVÄNDNING, REPRODUKTION OCH DISTRIBUTION
Definitioner.
"Licens" avser villkoren för användning, reproduktion,
och distribution enligt definitionen i avsnitt 1 till 9 i detta dokument.
"Licensgivare" avser upphovsrättsinnehavaren eller den enhet som är auktoriserad av
upphovsrättsinnehavaren som beviljar licensen.
"Juridisk person" avser den agerande enhetens förening och alla
andra enheter som kontrollerar, kontrolleras av eller är under gemensamma
kontroll med den enheten. För syftet med denna definition,
"kontroll" betyder (i) makten, direkt eller indirekt, att orsaka
ledning eller ledning av en sådan enhet, antingen genom kontrakt eller
annars, eller (ii) ägande av femtio procent (50%) eller mer av
utestående aktier eller (iii) verkligt ägande av en sådan enhet.
"Du" (eller "Din") ska betyda en individ eller juridisk person
utöva tillstånd som beviljats av denna licens.
"Källform" avser den föredragna formen för att göra ändringar,
inklusive men inte begränsat till programvarans källkod, dokumentation
käll- och konfigurationsfiler.
"Objektform" avser varje form som härrör från mekanisk
omvandling eller översättning av en källform, inklusive men
inte begränsat till kompilerad objektkod, genererad dokumentation,
och konverteringar till andra mediatyper.
"Verk" avser författarskapets verk, oavsett om det är i Källa eller
Objektformulär, som görs tillgängligt under Licensen, som anges av a
upphovsrättsmeddelande som ingår i eller bifogas verket
(ett exempel finns i bilagan nedan).
"Härledda verk" avser alla verk, oavsett om det är i källa eller objekt
form, som är baserad på (eller härledd från) Verket och för vilken
redaktionella revisioner, kommentarer, fördjupningar eller andra ändringar
representerar, som helhet, ett originalverk av författarskap. För ändamålen
i denna licens omfattar härledda verk inte verk som finns kvar
kan separeras från, eller bara länka (eller binda med namn) till gränssnitten för,
verket och härledda verk därav.
"Bidrag" avser alla verk av författarskap, inklusive
den ursprungliga versionen av Verket och eventuella ändringar eller tillägg
till det verket eller härledda verk därav, det vill säga avsiktligt
skickas till licensgivaren för inkludering i verket av upphovsrättsinnehavaren
eller av en individ eller juridisk person som har behörighet att lämna in på uppdrag av
upphovsrättsinnehavaren. För ändamålen med denna definition, "inlämnad"
betyder varje form av elektronisk, muntlig eller skriftlig kommunikation som skickas
till Licensgivaren eller dess representanter, inklusive men inte begränsat till
kommunikation på elektroniska e-postlistor, källkodskontrollsystem,
och utfärda spårningssystem som hanteras av eller på uppdrag av
Licensgivare i syfte att diskutera och förbättra Verket, men
exklusive kommunikation som är påfallande markerad eller på annat sätt
betecknas skriftligen av upphovsrättsinnehavaren som "Inte ett bidrag".
"Bidragsgivare" avser licensgivaren och varje individ eller juridisk person
för vilkas räkning ett bidrag har mottagits av licensgivaren och
därefter införlivas i Verket.
Beviljande av upphovsrättslicens. I enlighet med villkoren för
denna licens ger varje bidragsgivare dig härmed en evig,
över hela världen, icke-exklusiv, avgiftsfri, royaltyfri, oåterkallelig
upphovsrättslicens för att reproducera, förbereda härledda verk av,
offentligt visa, utföra offentligt, underlicensiera och distribuera
Verk och sådana härledda verk i käll- eller objektform.
Beviljande av patentlicens. I enlighet med villkoren för
denna licens ger varje bidragsgivare dig härmed en evig,
över hela världen, icke-exklusiv, avgiftsfri, royaltyfri, oåterkallelig
(förutom vad som anges i detta avsnitt) patentlicens att göra, ha gjort,
använda, erbjuda att sälja, sälja, importera och på annat sätt överföra Verket,
där en sådan licens endast gäller de patentanspråk som kan licensieras
av sådana bidragsgivare som nödvändigtvis kränks av deras
Bidrag ensamma eller genom kombination av deras bidrag
med det arbete till vilket sådana bidrag lämnades in. Om du
inleda patenttvister mot någon enhet (inklusive en
korskäromål eller genkäromål i en rättegång) som påstår att verket
eller ett bidrag som ingår i Verket utgör direkt
eller medverkande patentintrång, sedan eventuella patentlicenser
som beviljats Dig under denna Licens för det Verket ska upphöra
från och med den dag då en sådan rättstvist lämnas in.
Omfördelning. Du får reproducera och distribuera kopior av
Verk eller härledda verk därav i vilket medium som helst, med eller utan
ändringar och i käll- eller objektform, förutsatt att du
uppfyller följande villkor:
(a) Du måste ge alla andra mottagare av Verket eller
Derivative Works en kopia av denna licens; och
(b) Du måste låta alla modifierade filer bära framträdande meddelanden
anger att du ändrade filerna; och
(d) Om Verket innehåller en "NOTICE"-textfil som en del av det
distribution, då måste alla härledda verk som du distribuerar
inkludera en läsbar kopia av tillskrivningsmeddelandena
i sådan MEDDELANDE-fil, exklusive de meddelanden som inte gör det
hänför sig till någon del av de härledda verken, i minst ett
av följande platser: inom en textfil som distribueras med NOTICE
som en del av de härledda verken; inom källformuläret eller
dokumentation, om den tillhandahålls tillsammans med de härledda verken; eller,
i en display som genereras av de härledda verken, om och
varhelst sådana meddelanden från tredje part normalt förekommer. Innehållet
i NOTICE-filen är endast i informationssyfte och
ändra inte licensen. Du kan lägga till din egen attribution
meddelanden inom härledda verk som du distribuerar tillsammans med
eller som ett tillägg till MEDDELANDE-texten från Verket, tillhandahålls
att sådana ytterligare tillskrivningsmeddelanden inte kan tolkas
som modifiering av licensen.
Du kan lägga till din egen upphovsrättsförklaring till dina ändringar och
kan tillhandahålla ytterligare eller andra licensvillkor
för användning, reproduktion eller distribution av Dina ändringar, eller
för sådana härledda verk som helhet, förutsatt att du använder,
reproduktion, och distribution av Verket i övrigt överensstämmer med
de villkor som anges i denna licens.
Inlämning av bidrag. Om du inte uttryckligen anger annat,
alla bidrag som avsiktligt lämnats in för inkludering i Verket
av dig till Licensgivaren ska ske enligt villkoren för
denna licens, utan några ytterligare villkor.
Oavsett ovanstående ska ingenting häri ersätta eller ändra
villkoren i eventuella separata licensavtal som du kan ha tecknat
med licensgivaren angående sådana bidrag.
Varumärken. Denna licens ger inte tillstånd att använda handeln
namn, varumärken, tjänstemärken eller produktnamn för licensgivaren,
förutom vad som krävs för rimlig och sedvanlig användning för att beskriva
verkets ursprung och reproducera innehållet i NOTICE-filen.
Garantifriskrivning. Såvida det inte krävs enligt tillämplig lag eller
överenskommits skriftligen, tillhandahåller Licensgivaren Verket (och varje
Bidragsgivare tillhandahåller sina bidrag) på en BEFINTLIGT BASIS,
UTAN GARANTIER ELLER VILLKOR AV NÅGOT SLAG, antingen uttryckliga eller
underförstådd, inklusive, utan begränsning, eventuella garantier eller villkor
av TITEL, ICKE-INTRÄNG, SÄLJBARHET ELLER LÄMPLIGHET FÖR A
SÄRSKILT SYFTE. Du är ensam ansvarig för att fastställa
lämpligheten att använda eller omfördela Verket och anta ev
risker förknippade med ditt utövande av behörigheter under denna licens.
Ansvarsbegränsning. Under inga omständigheter och under ingen juridisk teori,
oavsett om det rör sig om skadestånd (inklusive vårdslöshet), kontrakt eller på annat sätt,
såvida det inte krävs enligt tillämplig lag (som medvetet och grovt
försumliga handlingar) eller skriftligen överenskommits, ska någon bidragsgivare vara
ansvarig gentemot dig för skador, inklusive alla direkta, indirekta, speciella,
oförutsedda skador eller följdskador av någon karaktär som uppstår som en
resultat av denna licens eller av användning eller oförmåga att använda
Arbete (inklusive men inte begränsat till skadestånd för förlust av goodwill,
arbetsavbrott, datorfel eller felfunktion, eller något och allt
andra kommersiella skador eller förluster), även om sådan Bidragsgivare
har underrättats om möjligheten till sådana skador.
Accepterar garanti eller ytterligare ansvar. Vid omfördelning
verket eller härledda verk därav, kan du välja att erbjuda,
och ta ut en avgift för, acceptans av support, garanti, gottgörelse,
eller andra ansvarsförpliktelser och/eller rättigheter förenliga med detta
Licens. Men när du accepterar sådana förpliktelser får du endast agera
för din egen räkning och på ditt eget ansvar, inte för din räkning
av någon annan bidragsgivare, och endast om du samtycker till att gottgöra,
försvara och hålla varje bidragsgivare oskadlig för något ansvar
uppkommit av, eller anspråk som görs gällande mot, sådan Bidragsgivare av skäl
att du accepterar en sådan garanti eller ytterligare ansvar.
SLUT PÅ VILLKOR
BILAGA: Så här applicerar du Apache-licensen på ditt arbete.
För att tillämpa Apache-licensen på ditt arbete, bifoga följande
boilerplate notis, med fälten omgivna av parentes "[]"
ersättas med din egen identifieringsinformation. (Inkludera inte
parentesen!) Texten bör bifogas i motsvarande
kommentarsyntax för filformatet. Vi rekommenderar också att a
fil- eller klassnamn och beskrivning av syftet inkluderas på
samma "tryckta sida" som copyrightmeddelandet för enklare
identifiering inom tredje parts arkiv.
Licensierad under Apache-licensen, version 2.0 ("Licensen");
du får inte använda den här filen förutom i enlighet med licensen.
Du kan få en kopia av licensen på
Såvida det inte krävs enligt tillämplig lag eller skriftligen överenskommits, programvara
distribueras under Licensen distribueras i "I BEFINTLIGT SKICK",
UTAN GARANTIER ELLER VILLKOR AV NÅGOT SLAG, varken uttryckliga eller underförstådda.
Se licensen för det specifika språket som styr behörigheter och
begränsningar under licensen.
Licens = kontrakt
En fri licens, även om den är gratis, tillåter inte tillåtelse och vi har redan gett exempel på begränsningar. Välj en licens med hänsyn till både dina och användarens intressen, eftersom programvara med öppen källkod är designad speciellt för honom. Användaren av projektet bör uppfatta licensen som ett slags avtal mellan honom och upphovsrättsinnehavaren, så innan du utför några åtgärder på källkoden, studera noggrant de begränsningar som åläggs dig av projektets licens.
Vi hoppas att vi har kastat lite ljus över ämnet licenser och, trots komplexiteten i frågan, bör det inte bli ett hinder på din väg till öppen källkod. Utveckla ditt projekt och glöm inte bort rättigheterna, dina och andra.
Användbara länkar
Slutligen, några användbara resurser som hjälpte oss när vi letade efter information om befintliga licenser och valde den mest lämpliga för våra syften: