Hoe om 'n oopbronlisensie vir die RAD-raamwerk op GitHub te kies

In hierdie artikel sal ons 'n bietjie oor kopiereg praat, maar meestal oor die keuse van 'n gratis lisensie vir die RAD-raamwerk. IONDV. Raamwerk en vir oopbronprodukte wat daarop gebaseer is. Ons sal praat oor permissiewe lisensie Apache 2.0, oor wat ons daartoe gelei het en watter besluite ons in die proses in die gesig gestaar het.

Die proses om 'n lisensie te kies is nogal moeisaam en moet reeds redelik belese benader word, en as jy nie 'n gelukkige eienaar van 'n regsgraad is nie, maak 'n ongeploegde veld van inligting oor verskeie gratis lisensies voor jou oop. Die belangrikste ding om te doen is om 'n stel beperkende kriteria op te stel. Deur die proses van bespreking en refleksie sal jy en jou span in staat wees om te verstaan ​​wat jy gebruikers van jou produk wil toelaat en wat om te verbied. Wanneer jy reeds 'n sekere beskrywing in jou hande het, moet jy dit op bestaande lisensies oortrek en die een uitlig waar die grootste aantal punte ooreenstem. Dit klink natuurlik eenvoudig, maar in werklikheid, gewoonlik selfs na bespreking, bly vrae oor.

Hoe om 'n oopbronlisensie vir die RAD-raamwerk op GitHub te kies

Eerstens, 'n skakel na selectalicense.com, 'n nuttige webwerf wat ons baie gebruik het. Gee veral aandag aan vergelyking tabel lisensies volgens 13 hoofkriteria. Mag Engels en geduld met jou wees.

Meel van keuse

Kom ons begin met die algemene kenmerke van lisensies vir gratis sagteware. Oopbronsagteware impliseer 'n eksklusief gratis lisensie wat nie kommersiële en nie-kommersiële verspreiding volgens die model beperk nie oop kern. Gevolglik, deur sagteware onder 'n gratis lisensie na die netwerk te plaas, is dit onmoontlik om die oordrag, verspreiding en verkoop daarvan deur derde partye heeltemal te beperk, en jy moet net verstandelik hiervoor voorberei.

'n Gratis lisensie gee die gebruiker die reg om deel te neem aan die omgekeerde ingenieurswese van die sagteware of dit op ander beskikbare maniere te wysig. Die meeste lisensies laat jou nie toe om die produk te hernoem of enige manipulasies daarmee uit te voer nie, wat die regte van die outeur en/of eienaar van die stelsel verander.

Die belangrikste vrae waarin ons belangstel oor gratis lisensies was:

  1. Die veranderinge wat aan die sagteware gemaak word, moet reggestel word en niks te doen hê met die kopiereghouer van die stelsel nie?
  2. Die naam van die afgeleide sagteware moet nie dieselfde wees as die naam van die sagteware eienaar nie?
  3. Is dit moontlik om die lisensie vir enige nuwe weergawes na 'n ander een te verander, insluitend die eie een?

Nadat ons noukeurig na die lys van die mees algemene lisensies gekyk het, het ons 'n paar gekies wat ons in meer besonderhede oorweeg het. Potensiële lisensies vir IONDV. Raamwerk was: GNU GPLv3, Apache 2.0, MIT en MPL. MIT byna onmiddellik uitgesluit, dit is 'n permissiewe nie-kopie-links lisensie wat die gebruik, wysiging en verspreiding van die kode op feitlik enige manier toelaat, maar hierdie opsie het ons nie gepas nie, ons wou steeds hê die lisensie moet die verhouding tussen die kopiereghouer en die gebruiker. Die meeste van die kleiner projekte op GitHub word gepubliseer onder die MIT-lisensie of sy verskillende variasies. Die lisensie self is baie kort, en van die verbods is slegs die aanduiding van outeurskap van die sagteware-skepper.

Lisensie was volgende. MPL 2.0. Om eerlik te wees, ons het nie dadelik daarby gekom nie, maar nadat ons dit in meer besonderhede bestudeer het, het ons dit vinnig uitgesluit, aangesien die grootste nadeel is dat die lisensie nie op die hele projek toegepas word nie, maar op individuele lêers. Daarbenewens, as die gebruiker die lêer wysig, kan die lisensie nie deur die gebruiker gewysig word nie. Om die waarheid te sê, maak nie saak hoe hard jy die Open source-projek verander nie, jy sal dit nie kan verdien as gevolg van so 'n lisensie nie. Terloops, dit geld nie vir die kopiereghouer nie.

'n Soortgelyke probleem bly met die lisensie GNU GPLv3. Dit vereis dat enige lêer daaronder bly. Die GNU GPL is 'n copyleft-lisensie wat vereis dat afgeleide werke oopbron moet wees en onder dieselfde lisensie bly. Dit wil sê: deur twee reëls kode te herskryf, sal jy gedwing word om jou veranderinge toe te pas en, met verdere gebruik of verspreiding, die kode onder die GNU GPL te hou. In hierdie geval is dit 'n beperkende faktor vir die gebruiker van ons projek, nie vir ons nie. Maar om die GPL na enige ander lisensie te verander, is verbode, selfs binne GPL-weergawes. Byvoorbeeld, as jy verander LGPL (GPL-byvoeging) tot die GPL, sal daar geen terugkeer na die LGPL wees nie. En hierdie punt was deurslaggewend in die stemming teen.

Oor die algemeen het ons keuse aanvanklik geleen GPL3 juis as gevolg van die verspreiding van die gewysigde kode onder dieselfde lisensie. Ons het gedink dat ons deur dit te doen ons produk kan beveilig, maar ons het minder risiko's in Apache 2.0 gesien. Volgens die Free Software Foundation is die GPLv3 versoenbaar met die Apache License v2.0., wat beteken dat dit altyd moontlik is om die lisensie van Apache License v2.0 na GPL v3.0 te verander.

Apache 2.0

Apache 2.0 — 'n gebalanseerde permissiewe lisensie met die klem op kopiereg. Hier is die antwoorde wat sy op ons vrae gegee het. Die veranderinge wat aan die sagteware gemaak word, moet reggestel word en niks te doen hê met die kopiereghouer van die stelsel nie? Ja, alle veranderinge moet gedokumenteer word en ons is nie verantwoordelik vir óf die bronkode óf die gewysigde een nie. Die lêer met die veranderinge moet aangeheg word aan die kode waarin jy hierdie veranderinge gemaak het. Die naam van die afgeleide sagteware moet nie dieselfde wees as die naam van die sagteware eienaar nie? Ja, afgeleide sagteware moet onder 'n ander naam en onder 'n ander handelsmerk vrygestel word, maar met die erkenning van die kopiereghouer. Is dit moontlik om die lisensie vir enige nuwe weergawes na 'n ander een te verander, insluitend die eie een? Ja, jy kan onder verskillende lisensies vrystel, Apache 2.0 beperk nie die gebruik van enige nie-kommersiële en kommersiële lisensies nie.

Ook, wanneer nuwe produkte vrygestel word gebaseer op oop kode onder Apache 2.0 of produkte met bykomende funksionaliteit, is dit nie nodig om dieselfde lisensie te gebruik nie. Hieronder kan u 'n prent sien met die bepalings en voorwaardes van die Apache 2.0-lisensie.

Hoe om 'n oopbronlisensie vir die RAD-raamwerk op GitHub te kies

Die lisensie stel die vereiste voor om die kopiereg en die lisensie waaronder die sagteware vrygestel word te bewaar en te noem. Verpligte teenwoordigheid kopieregkennisgewing met die naam van die kopiereghouer en die lisensie beskerm die regte van die oorspronklike outeur van die sagteware, want selfs al word dit hernoem, weggegee of onder 'n ander lisensie verkoop, sal die outeur se merk steeds bly. Jy kan ook die lêer hiervoor gebruik. KENNISGEWING en heg dit óf aan die bronkode óf aan die dokumentasie vir die projek.

Ons stel al ons produkte vry onder die Apache 2.0-lisensie op GitHub, behalwe IONDV. oorlogsargief, waarvan die bronkode in April vanjaar onder die GPLv3-lisensie op GitHub deur die Far Eastern Centre for Social Technologies gepubliseer is. Op die oomblik, bykomend tot raamwerk en modules gepubliseer programme gemaak in fremwerk. Op Habré het ons reeds gepraat oor projekbestuurstelsel en oor Kommunikasieregister.

Dié. raamwerk besonderhede

IONDV. Raamwerk is 'n oopbronraamwerk op node.js vir die skep van hoëvlak webtoepassings gebaseer op metadata, wat nie ernstige programmeringsvaardighede vereis nie.

Die basis van die toepassing se funksionaliteit is die dataregister - die Register-module. Dit is 'n sleutelmodule wat direk ontwerp is om met data gebaseer op metadatastrukture te werk - insluitend vir die bestuur van projekte, programme, gebeurtenisse, ens. Die projek gebruik ook 'n portaalmodule om arbitrêre datasjablone te vertoon - dit implementeer die voorkant van die register van argieflêers .

MongoDb word vir die DBMS gebruik - dit stoor toepassingsinstellings, metadata en die data self.

Hoe om 'n lisensie op jou projek toe te pas?

Voeg lêer by LISENSIE met die teks van die lisensie na die bewaarplek van jou projek en voilà, die projek word beskerm deur Apache 2.0. Jy moet die kopiereghouer spesifiseer, dit is kopieregkennisgewing. Jy kan dit in die bronkode of in 'n lêer doen KENNISGEWING ('n tekslêer wat alle biblioteke bevat wat onder die Apache-lisensie gelisensieer is, saam met die name van hul skeppers). Plaas die lêer self in die bronkode of in die dokumentasie wat saam met die werk versprei is. Ons s'n lyk so:

Kopiereg © 2018 ION DV LLC.
Gelisensieer onder die Apache-lisensie, weergawe 2.0

Apache 2.0 lisensie teks

Apache-lisensie
Weergawe 2.0, Januarie 2004
http://www.apache.org/licenses/

Bepalings en voorwaardes vir gebruik, reproduksie en verspreiding

  1. Definisies.

    "Lisensie" beteken die bepalings en voorwaardes vir gebruik, reproduksie,
    en verspreiding soos omskryf deur Afdelings 1 tot 9 van hierdie dokument.

    "Lisensiegewer" beteken die kopieregeienaar of entiteit wat gemagtig is deur
    die outeursregteienaar wat die lisensie verleen.

    "Regsentiteit" beteken die unie van die waarnemende entiteit en al
    ander entiteite wat beheer, beheer word deur of onder gemeenskaplik is
    beheer met daardie entiteit. Vir die doeleindes van hierdie definisie,
    "beheer" beteken (i) die bevoegdheid, direk of indirek, om die
    leiding of bestuur van sodanige entiteit, hetsy per kontrak of
    andersins, of (ii) eienaarskap van vyftig persent (50%) of meer van die
    uitstaande aandele, of (iii) voordelige eienaarskap van sodanige entiteit.

    "Jy" (of "Jou") sal 'n individu of Regsentiteit beteken
    die uitoefening van toestemmings wat deur hierdie lisensie verleen word.

    "Bron"-vorm beteken die voorkeurvorm vir die maak van wysigings,
    insluitend maar nie beperk nie tot sagteware bronkode, dokumentasie
    bron- en konfigurasielêers.

    "Voorwerp"-vorm beteken enige vorm wat voortspruit uit meganiese
    transformasie of vertaling van 'n bronvorm, insluitend maar
    nie beperk tot die saamgestelde voorwerpkode, gegenereerde dokumentasie,
    en omskakelings na ander mediasoorte.

    "Werk" beteken die werk van outeurskap, hetsy in Bron of
    Voorwerpvorm, beskikbaar gestel onder die lisensie, soos aangedui deur a
    kopieregkennisgewing wat by die werk ingesluit is of daarby aangeheg is
    ('n Voorbeeld word in die bylaag hieronder verskaf).

    "Afgeleide werke" beteken enige werk, hetsy in Bron of Voorwerp
    vorm, wat gebaseer is op (of afgelei is van) die werk en waarvoor die
    redaksionele hersienings, aantekeninge, uitwerkings of ander wysigings
    in die geheel 'n oorspronklike outeurskapwerk voor te stel. Vir die doeleindes
    van hierdie lisensie sal afgeleide werke nie werke insluit wat oorbly nie
    skeibaar van, of slegs skakel (of bind volgens naam) aan die koppelvlakke van,
    die werk en afgeleide werke daarvan.

    "Bydrae" beteken enige werk van outeurskap, insluitend
    die oorspronklike weergawe van die werk en enige wysigings of toevoegings
    aan daardie werk of afgeleide werke daarvan, wat doelbewus is
    ingedien by die Lisensiegewer vir opname in die werk deur die outeursreg
    of deur 'n individu of regspersoon wat gemagtig is om namens
    die kopieregeienaar. Vir die doeleindes van hierdie definisie, "voorgelê"
    beteken enige vorm van elektroniese, mondelinge of skriftelike kommunikasie wat gestuur word
    aan die Lisensiegewer of sy verteenwoordigers, insluitend maar nie beperk nie tot
    kommunikasie op elektroniese poslyste, bronkodebeheerstelsels,
    en opsporingstelsels uitreik wat bestuur word deur, of namens, die
    Lisensiegewer met die doel om die werk te bespreek en te verbeter, maar
    uitgesluit kommunikasie wat opvallend of andersins gemerk is
    skriftelik deur die kopieregeienaar aangewys as "Nie 'n bydrae nie."

    "Bydraer" beteken lisensiegewer en enige individu of Regsentiteit
    namens wie 'n bydrae deur lisensiegewer ontvang is en
    daarna in die werk opgeneem.

  2. Toekenning van kopiereglisensie. Onderhewig aan die bepalings en voorwaardes van
    hierdie lisensie verleen elke bydraer u 'n ewige,
    wêreldwyd, nie-eksklusief, gratis, royalty-vry, onherroeplik
    outeursreglisensie om afgeleide werke van,
    die publiek vertoon, in die openbaar uitvoer, onderlisensieer en versprei
    Werk en sulke afgeleide werke in bron- of voorwerpvorm.

  3. Toekenning van Patentlisensie. Onderhewig aan die bepalings en voorwaardes van
    hierdie lisensie verleen elke bydraer u 'n ewige,
    wêreldwyd, nie-eksklusief, gratis, royalty-vry, onherroeplik
    (behalwe soos in hierdie afdeling vermeld) patentlisensie om te maak, gemaak het,
    die werk gebruik, aanbied om te verkoop, verkoop, invoer en andersins oordra,
    waar sodanige lisensie slegs van toepassing is op daardie patenteise wat lisensieerbaar is
    deur sodanige bydraer wat noodwendig deur hul inbreuk gemaak word
    Bydrae (s) alleen of deur 'n kombinasie van hul bydrae (s)
    met die werk waaraan sodanige bydrae (s) voorgelê is. As jy
    instelling van patentgedinge teen enige entiteit (insluitend a
    kruis-eis of teen-eis in 'n regsgeding) wat beweer dat die Werk
    of 'n bydrae wat binne die werk opgeneem word, direk uitmaak
    of bydraende patentskending, dan enige patentlisensies
    U toegestaan ​​kragtens hierdie lisensie vir daardie werk sal beëindig word
    vanaf die datum waarop sodanige litigasie ingedien word.

  4. herverdeling. U mag kopieë van die reproduseer en versprei
    Werk of afgeleide werke daarvan in enige medium, met of sonder
    wysigings, en in die bron- of voorwerpvorm, mits u
    aan die volgende voorwaardes voldoen:

    (a) U moet enige ander ontvangers van die werk of
    Afgeleide werke 'n afskrif van hierdie lisensie; en

    (b) Jy moet veroorsaak dat enige gewysigde lêers prominente kennisgewings dra
    verklaar dat jy die lêers verander het; en

    © Jy moet in die Bronvorm van enige Afgeleide Werke behou
    wat u versprei, alle kopiereg, patent, handelsmerk en
    toeskrywingskennisgewings van die bronvorm van die werk,
    uitgesluit die kennisgewings wat nie op enige deel van
    die afgeleide werke; en

    (d) Indien die Werk 'n "KENNISGEWING" tekslêer as deel van sy
    verspreiding, dan moet enige afgeleide werke wat u versprei, wees
    sluit 'n leesbare afskrif van die toeskrywingskennisgewings in
    binne so 'n KENNISGEWING-lêer, uitgesluit daardie kennisgewings wat dit nie doen nie
    betrekking het op enige deel van die afgeleide werke, in ten minste een
    van die volgende plekke: binne 'n KENNISGEWING tekslêer versprei
    as deel van die afgeleide werke; binne die Bronvorm of
    dokumentasie, indien dit saam met die afgeleide werke verskaf word; of,
    binne 'n vertoning wat deur die afgeleide werke gegenereer word, indien en
    waar sulke derdepartykennisgewings normaalweg voorkom. Die inhoud
    van die KENNISGEWING-lêer is slegs vir inligtingsdoeleindes en
    moenie die lisensie verander nie. U kan u eie toeskrywing byvoeg
    kennisgewings binne afgeleide werke wat u langsaan versprei
    of as 'n addendum tot die KENNISGEWING-teks uit die werk, verskaf
    dat sulke addisionele toeskrywingskennisgewings nie geïnterpreteer kan word nie
    as die wysiging van die lisensie.

    U kan u eie kopieregverklaring by u wysigings voeg en
    kan addisionele of ander lisensievoorwaardes verskaf
    vir gebruik, reproduksie of verspreiding van u wysigings, of
    vir sulke afgeleide werke as geheel, mits u gebruik,
    reproduksie en verspreiding van die werk voldoen andersins
    die voorwaardes in hierdie lisensie vermeld.

  5. Indiening van bydraes. Tensy jy uitdruklik anders sê,
    enige bydrae wat doelbewus ingedien word vir insluiting in die werk
    deur u aan die lisensiegewer onder die bepalings en voorwaardes van
    hierdie lisensie, sonder enige bykomende bepalings of voorwaardes.
    Nieteenstaande bogenoemde sal niks hierin vervang of verander nie
    die bepalings van enige afsonderlike lisensieooreenkoms wat u moontlik uitgevoer het
    met Lisensiegewer rakende sulke bydraes.

  6. Handelsmerke. Hierdie lisensie verleen nie toestemming om die handel te gebruik nie
    name, handelsmerke, diensmerke of produkname van die Lisensiegewer,
    behalwe soos benodig vir redelike en gebruiklike gebruik in die beskrywing van die
    oorsprong van die Werk en die inhoud van die KENNISGEWING-lêer weer te gee.

  7. Disclaimer van waarborg. Tensy dit deur toepaslike wetgewing vereis word of
    skriftelik daartoe ingestem, lewer die lisensiegewer die werk (en elk
    Bydraer verskaf sy bydraes) op 'n "SOOS IS" BASIS,
    SONDER WAARBORGE OF VOORWAARDES VAN ENIGE SOORT, hetsy uitdruklik of
    geïmpliseer, insluitend, sonder beperking, enige waarborge of voorwaardes
    van TITEL, NIE-OORTREDING, VERKOOPBAARHEID, OF FIKSHEID VIR A
    BESONDERE DOEL. U is alleen verantwoordelik vir die bepaling van die
    geskiktheid om die werk te gebruik of te herverdeel, en aanvaar dit
    risiko's verbonde aan u uitoefening van toestemmings ingevolge hierdie lisensie.

  8. Beperking van aanspreeklikheid. In geen geval en onder geen regsteorie nie,
    hetsy in onregmatigheid (insluitend nalatigheid), kontrak of andersins,
    tensy dit deur die toepaslike wetgewing vereis word (soos doelbewus en grof)
    nalatige dade) of skriftelik daartoe ingestem is, sal enige bydraer
    aanspreeklik teenoor U vir skadevergoeding, insluitend enige direkte, indirekte, spesiale,
    toevallige of gevolglike skade aan enige aard wat voortspruit uit 'n
    gevolg van hierdie lisensie of die gebruik of onvermoë om die
    Werk (insluitend maar nie beperk nie tot skadevergoeding vir verlies aan klandisiewaarde,
    werkonderbreking, rekenaarfout of -funksionering, of enige en ander
    ander kommersiële skade of verliese), selfs al is sodanige bydraer
    is in kennis gestel van die moontlikheid van sodanige skade.

  9. Aanvaarding van waarborg of bykomende aanspreeklikheid. Terwyl herverspreiding
    die werk of afgeleide werke daarvan, u kan kies om aan te bied,
    en hef 'n fooi vir die aanvaarding van ondersteuning, waarborg, skadeloosstelling,
    of ander aanspreeklikheidsverpligtinge en / of regte wat hiermee ooreenstem
    Lisensie. As u sulke verpligtinge aanvaar, mag u egter slegs optree
    namens u en op u eie verantwoordelikheid, nie namens u nie
    van enige ander bydraer, en slegs as u instem tot vrywaring,
    verdedig en hou elke bydraer skadeloos vir enige aanspreeklikheid
    aangegaan deur, of aansprake teen sodanige bydraer as rede aangevoer
    dat u sodanige waarborg of addisionele aanspreeklikheid aanvaar.

    EINDE VAN TERME EN VOORWAARDES

    BYLAAG: Hoe om die Apache-lisensie op u werk toe te pas.

    Heg die volgende aan om die Apache-lisensie op u werk toe te pas
    boilerplate kennisgewing, met die velde ingesluit deur hakies "[]"
    vervang deur u eie identifiserende inligting. (Moet nie insluit nie
    die hakies!) Die teks moet in die toepaslike gevoeg word
    opmerkingsintaksis vir die lêerformaat. Ons beveel ook aan dat a
    lêer- of klasnaam en beskrywing van doel op die
    dieselfde "gedrukte bladsy" as die kopieregkennisgewing vir makliker
    identifisering binne argiewe van derdepartye.

    Kopiereg [jjjj] [naam van eienaar van outeursregte]

    Gelisensieer onder die Apache-lisensie, weergawe 2.0 (die "lisensie");
    u mag hierdie lêer nie gebruik nie, behalwe in ooreenstemming met die lisensie.
    U kan 'n afskrif van die lisensie kry by

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

    Tensy sagteware dit vereis, tensy die toepaslike wetgewing vereis of skriftelik daartoe ooreengekom is
    onder die lisensie versprei word op 'n "SOOS IS" BASIS,
    SONDER GARANTIES OF VOORWAARDES VAN ENIGE AARD, hetsy uitdruklik of geïmpliseer.
    Raadpleeg die lisensie vir die spesifieke taalreëlings en
    beperkings onder die lisensie.

Lisensie = kontrak

'n Gratis lisensie, alhoewel dit gratis is, laat nie toelating toe nie, en ons het reeds voorbeelde van beperkings gegee. Kies 'n lisensie met inagneming van beide jou belangstellings en die gebruiker, want oopbronsagteware is spesifiek vir hom ontwerp. Die gebruiker van die projek moet die lisensie as 'n soort ooreenkoms tussen hom en die kopiereghouer beskou, dus bestudeer die beperkings wat deur die projeklisensie aan jou opgelê word, noukeurig voordat jy enige aksie op die bronkode neem.

Ons hoop dat ons 'n bietjie lig op die onderwerp van lisensies gewerp het en, ten spyte van die kompleksiteit van die kwessie, behoort dit nie 'n struikelblok in jou pad na Oopbron te word nie. Ontwikkel jou projek en moenie vergeet van die regte, joune en ander nie.

nuttige skakels

Ten slotte, 'n paar nuttige hulpbronne wat ons gehelp het om inligting oor bestaande lisensies te vind en die geskikste vir ons doeleindes te kies:

Bron: will.com

Voeg 'n opmerking