Hoe u een Open Source-licentie kiest voor het RAD-framework op GitHub

In dit artikel zullen we het een beetje hebben over auteursrecht, maar vooral over het kiezen van een gratis licentie voor het RAD-framework IONDV. Kader en voor open source-producten die daarop zijn gebaseerd. Wij vertellen u over de vergunning Apache 2.0, over wat ons ertoe heeft gebracht en welke beslissingen we daarbij hebben moeten nemen.

Het proces van het kiezen van een licentie is behoorlijk arbeidsintensief en moet al goed gelezen worden benaderd, en als je geen gelukkige eigenaar bent van een juridische opleiding, dan gaat er een ongebruikt veld met informatie over verschillende gratis licenties voor je open. Het belangrijkste is dat u een aantal beperkende criteria opstelt. Door het proces van discussie en reflectie zullen u en uw team kunnen begrijpen wat u gebruikers van uw product wilt toestaan ​​en wat u moet verbieden. Als u al een bepaalde beschrijving in handen heeft, moet u deze over de bestaande licenties heen leggen en degene selecteren waar het grootste aantal punten samenvalt. Het klinkt natuurlijk eenvoudig, maar in werkelijkheid blijven er, meestal zelfs na discussie, vragen bestaan.

Hoe u een Open Source-licentie kiest voor het RAD-framework op GitHub

Eerst een link naar kiesalicense.com, een nuttige site waar we veel gebruik van hebben gemaakt. Besteed speciale aandacht aan vergelijkingstabel licenties volgens 13 hoofdcriteria. Moge het Engels en geduld met je zijn.

De kwelling van kiezen

Laten we beginnen met de algemene kenmerken van licenties voor gratis software. Open source-software impliceert een uitsluitend vrije licentie, die de commerciële en niet-commerciële distributie volgens het model niet beperkt Kern openen. Dienovereenkomstig kan het plaatsen van software op het netwerk onder een vrije licentie de overdracht, distributie en verkoop ervan door derden niet volledig beperken, en u hoeft hier alleen maar mentaal op voorbereid te zijn.

Een gratis licentie geeft de gebruiker het recht om deel te nemen aan reverse engineering van de software of deze op andere beschikbare manieren te wijzigen. Bij de meeste licenties is het niet toegestaan ​​het product een andere naam te geven of er manipulaties mee uit te voeren, waardoor de rechten van de auteur en/of eigenaar van het systeem worden gewijzigd.

De belangrijkste vragen waarin we geïnteresseerd waren over gratis licenties waren:

  1. Moeten wijzigingen in de software worden vastgelegd en geen relatie hebben met de auteursrechthebbende van het systeem?
  2. Moet de naam van de afgeleide software niet dezelfde zijn als de naam van de software van de auteursrechthebbende?
  3. Is het mogelijk om de licentie voor nieuwe versies te wijzigen naar een andere, inclusief een eigen versie?

Nadat we de lijst met de meest voorkomende licenties zorgvuldig hadden bekeken, hebben we er een aantal geselecteerd die we in meer detail hebben bekeken. Potentiële licenties voor IONDV. Kader waren: GNU GPLv3, Apache 2.0, MIT en MPL. MIT vrijwel onmiddellijk uitgesloten, dit is een permissieve niet-copyleft-licentie, die het gebruik, de wijziging en de distributie van de code op vrijwel elke manier toestaat, maar we waren niet blij met deze optie, we wilden nog steeds de licentie om de relatie tussen het auteursrecht te regelen houder en de gebruiker. De meeste kleinere projecten op GitHub worden gepubliceerd onder de MIT-licentie of de verschillende varianten ervan. De licentie zelf is erg kort en de enige verboden zijn het aangeven van het auteurschap van de softwaremaker.

Het volgende was de licentie MPL 2.0. Toegegeven, we waren er niet meteen op bedacht, maar nadat we het nader hadden bestudeerd, hebben we het snel uitgesloten, aangezien het belangrijkste nadeel is dat de licentie niet van toepassing is op het hele project, maar op individuele bestanden. Als de gebruiker het bestand wijzigt, kan hij bovendien de licentie niet wijzigen. Hoe ijverig u ook een open source-project wijzigt, u zult er nooit geld mee kunnen verdienen dankzij een dergelijke licentie. Het gaat overigens niet om de auteursrechthebbende.

Een soortgelijk probleem blijft bestaan ​​met de licentie GNU GPLv3. Het vereist dat elk bestand eronder blijft. De GNU GPL is een copyleft-licentie die vereist dat afgeleide werken open source zijn en onder dezelfde licentie blijven. Dat wil zeggen: door twee regels code te herschrijven, wordt u gedwongen uw wijzigingen vast te leggen en, tijdens verder gebruik of distributie, de code op te slaan onder de GNU GPL. In dit geval is dit een beperkende factor voor de gebruiker van ons project, en niet voor ons. Maar het wijzigen van de GPL naar een andere licentie is verboden, zelfs binnen GPL-versies. Als u bijvoorbeeld verandert LGPL (een add-on op de GPL) naar de GPL, dan is er geen weg meer terug naar de LGPL. En dit punt was doorslaggevend bij het stemmen tegen.

Over het geheel genomen neigde onze keuze aanvankelijk naar GPL3 juist vanwege de distributie van de gewijzigde code onder dezelfde licentie. We dachten dat we op deze manier ons product konden beveiligen, maar we zagen minder risico's in Apache 2.0. Volgens de Free Software Foundation is GPLv3 compatibel met de Apache-licentie v2.0, wat betekent dat het altijd mogelijk is om de licentie te wijzigen van de Apache-licentie v2.0 naar de GPL v3.0.

Apache 2.0

Apache 2.0 — een evenwichtige permissieve licentie met de nadruk op auteursrecht. Hier zijn de antwoorden die ze gaf op de vragen die ons interesseerden. Moeten wijzigingen in de software worden vastgelegd en geen relatie hebben met de auteursrechthebbende van het systeem? Ja, alle wijzigingen moeten worden gedocumenteerd en wij zijn niet verantwoordelijk voor de originele code of de gewijzigde code. Het bestand met de wijzigingen moet worden toegevoegd aan de code waarin u deze wijzigingen heeft aangebracht. Moet de naam van de afgeleide software niet dezelfde zijn als de naam van de software van de auteursrechthebbende? Ja, afgeleide software moet onder een andere naam en onder een ander handelsmerk worden uitgebracht, maar met vermelding van de houder van het auteursrecht. Is het mogelijk om de licentie voor nieuwe versies te wijzigen naar een andere, inclusief een eigen versie? Ja, het kan onder verschillende licenties worden vrijgegeven. Apache 2.0 beperkt het gebruik van niet-commerciële en commerciële licenties niet.

Ook bij het uitbrengen van nieuwe producten op basis van open source code voor Apache 2.0 of producten met extra functionaliteit is het niet nodig om dezelfde licentie te gebruiken. Hieronder ziet u een afbeelding met de voorwaarden en beperkingen van de Apache 2.0-licentie.

Hoe u een Open Source-licentie kiest voor het RAD-framework op GitHub

De licentie legt een vereiste op om de auteursrechten en de licentie waaronder de software wordt vrijgegeven te behouden en te vermelden. Verplichte beschikbaarheid Copyright Notice met de naam van de houder van het auteursrecht en een licentie beschermt de rechten van de oorspronkelijke auteur van de software, want zelfs als de software wordt hernoemd, weggegeven of verkocht onder een andere licentie, blijft het merkteken van de auteur behouden. Je kunt het bestand hiervoor ook gebruiken KENNISGEVING en voeg deze toe aan de broncode of aan de projectdocumentatie.

We geven al onze producten openbaar beschikbaar op GitHub onder de Apache 2.0-licentie, behalve IONDV. Oorlogsarchief, waarvan de broncode in april van dit jaar onder de GPLv3-licentie op GitHub werd gepubliceerd door het Far Eastern Center for Social Technologies. Op dit moment is er naast de kader en modules gepubliceerd приложения gemaakt op het raamwerk. Op de hub waar we het al over hadden Projectmanagementsysteem en over Communicatie register.

Die. details over het raamwerk

IONDV. Framework is een open source-framework gebaseerd op node.js voor het maken van webapplicaties op hoog niveau op basis van metadata, waarvoor geen serieuze programmeervaardigheden vereist zijn.

De basis van de functionaliteit van de applicatie is het dataregister - de Registermodule. Dit is een sleutelmodule die rechtstreeks is ontworpen voor het werken met gegevens op basis van metadatastructuren - inclusief voor het beheer van projecten, programma's, evenementen, enz. Het project maakt ook gebruik van een portaalmodule voor het weergeven van willekeurige gegevenssjablonen - het implementeert het archieffrontregister.

MongoDb wordt gebruikt voor het DBMS - het slaat applicatie-instellingen, metadata en de gegevens zelf op.

Hoe kunt u een licentie aanvragen voor uw project?

Voeg een bestand toe LICENTIE met de licentietekst in de repository van uw project en voilà, een project beschermd door Apache 2.0. U moet de houder van het auteursrecht aangeven, dat is alles copyright melding. Dit kan in de broncode of in een bestand KENNISGEVING (een tekstbestand met een lijst van alle bibliotheken die onder de Apache-licentie zijn gelicentieerd, samen met de namen van hun makers). Plaats het bestand zelf in de broncode of in de documentatie die samen met het werk wordt verspreid. Voor ons ziet het er zo uit:

Copyright © 2018 ION DV LLC.
Gelicentieerd onder de Apache-licentie, versie 2.0

Apache 2.0 licentietekst

Apache-licentie
Versie 2.0, januari 2004
http://www.apache.org/licenses/

ALGEMENE VOORWAARDEN VOOR GEBRUIK, REPRODUCTIE EN DISTRIBUTIE

  1. Definities.

    "Licentie" betekent de voorwaarden voor gebruik, reproductie,
    en distributie zoals gedefinieerd in secties 1 tot en met 9 van dit document.

    "Licentiegever" betekent de eigenaar van het auteursrecht of de entiteit die daartoe geautoriseerd is
    de copyrighthouder die de licentie verleent.

    "Rechtspersoon" betekent de vereniging van de handelende entiteit en zo
    andere entiteiten die zeggenschap hebben over, worden gecontroleerd door of onder elkaar staan
    controle met die entiteit. Voor de toepassing van deze definitie,
    "controle" betekent (i) de macht, direct of indirect, om de
    leiding of beheer van een dergelijke entiteit, hetzij via een contract of
    anders, of (ii) eigendom van vijftig procent (50%) of meer van de
    uitstaande aandelen, of (iii) economische eigendom van een dergelijke entiteit.

    Met “u” (of “uw”) wordt een individu of rechtspersoon bedoeld
    machtigingen uitoefenen die door deze licentie zijn verleend.

    'Bron'-formulier betekent de voorkeursvorm voor het aanbrengen van wijzigingen,
    inclusief maar niet beperkt tot softwarebroncode, documentatie
    bron- en configuratiebestanden.

    "Object"-vorm betekent elke vorm die voortkomt uit mechanisch
    transformatie of vertaling van een bronformulier, inclusief maar
    niet beperkt tot gecompileerde objectcode, gegenereerde documentatie,
    en conversies naar andere mediatypen.

    "Werk" betekent het werk van auteurschap, hetzij in Bron- of
    Objectformulier, beschikbaar gesteld onder de licentie, zoals aangegeven door een
    auteursrechtvermelding die is opgenomen in of bij het werk is gevoegd
    (een voorbeeld vindt u in de bijlage hieronder).

    "Afgeleide werken" betekent elk werk, ongeacht of het in Bron of Object is
    vorm, die is gebaseerd op (of afgeleid van) het Werk en waarvoor de
    redactionele herzieningen, annotaties, uitwerkingen of andere wijzigingen
    vertegenwoordigen als geheel een origineel werk van auteurschap. Voor de doeleinden
    van deze licentie, omvatten Afgeleide werken geen werken die overblijven
    te scheiden van, of louter linken (of binden op naam) naar de interfaces van,
    het werk en de afgeleide werken daarvan.

    "Bijdrage" betekent elk werk van auteurschap, inclusief
    de originele versie van het Werk en eventuele wijzigingen of aanvullingen
    aan dat Werk of Afgeleide Werken daarvan, dat wil zeggen met opzet
    ingediend bij Licentiegever voor opname in het Werk door de eigenaar van het auteursrecht
    of door een natuurlijke persoon of juridische entiteit die gemachtigd is om namens
    de auteursrechthebbende. Voor de doeleinden van deze definitie betekent “ingediend”
    betekent elke vorm van elektronische, mondelinge of schriftelijke communicatie die wordt verzonden
    aan de licentiegever of zijn vertegenwoordigers, inclusief maar niet beperkt tot
    communicatie over elektronische mailinglijsten, broncodecontrolesystemen,
    en volgsystemen uitgeven die worden beheerd door of namens de
    Licentiegever met als doel het bespreken en verbeteren van het Werk, maar
    exclusief communicatie die al dan niet opvallend is gemarkeerd
    schriftelijk door de eigenaar van het auteursrecht aangeduid als ‘Geen bijdrage’.

    "Bijdrager" betekent Licentiegever en elke individuele persoon of rechtspersoon
    namens wie een Bijdrage is ontvangen door Licentiegever en
    vervolgens opgenomen in het Werk.

  2. Toekenning van auteursrechtlicentie. Onder voorbehoud van de voorwaarden van
    deze licentie verleent elke bijdrager u hierbij een eeuwigdurende,
    wereldwijd, niet-exclusief, gratis, royaltyvrij, onherroepelijk
    auteursrechtlicentie om te reproduceren, afgeleide werken voor te bereiden van,
    het. openbaar weergeven, openbaar uitvoeren, in sublicentie geven en het
    Werk en dergelijke afgeleide werken in bron- of objectvorm.

  3. Verlening van octrooilicentie. Onder voorbehoud van de algemene voorwaarden van
    deze licentie verleent elke bijdrager u hierbij een eeuwigdurende,
    wereldwijd, niet-exclusief, gratis, royaltyvrij, onherroepelijk
    (behalve zoals vermeld in deze sectie) patentlicentie te maken, hebben gemaakt,
    het Werk gebruiken, aanbieden om te verkopen, verkopen, importeren en anderszins overdragen,
    wanneer een dergelijke licentie alleen van toepassing is op die octrooiconclusies die in licentie kunnen worden gegeven
    door een dergelijke Bijdrager die noodzakelijkerwijs wordt geschonden door hun
    Bijdrage (en) alleen of door een combinatie van hun Bijdrage (en)
    met het Werk waaraan dergelijke Bijdrage (en) is / zijn ingediend. Als jij
    octrooigeschillen instellen tegen een entiteit (inclusief een
    tegenvordering of tegenvordering in een rechtszaak) waarin wordt beweerd dat het Werk
    of een Bijdrage opgenomen in het Werk vormt direct
    of bijdragende octrooi-inbreuk, dan eventuele octrooi-licenties
    die aan u is verleend onder deze licentie voor dat werk, wordt beëindigd
    vanaf de datum waarop een dergelijk geschil wordt ingediend.

  4. Herverdeling. U mag kopieën van de
    Werk of afgeleide werken daarvan in elk medium, met of zonder
    wijzigingen, en in bron- of objectvorm, op voorwaarde dat u
    voldoen aan de volgende voorwaarden:

    (a) U moet andere ontvangers van het Werk of
    Afgeleide werken een kopie van deze licentie; en

    (b) U moet ervoor zorgen dat alle gewijzigde bestanden opvallende mededelingen bevatten
    waarin staat dat u de bestanden hebt gewijzigd; En

    © U moet de bronvorm van alle afgeleide werken behouden
    die u distribueert, alle auteursrechten, patenten, handelsmerken en
    toeschrijvingsberichten van het Bronformulier van het Werk,
    met uitzondering van die kennisgevingen die geen betrekking hebben op enig onderdeel van
    de afgeleide werken; en

    (d) Als het Werk een tekstbestand “NOTICE” bevat
    distributie, dan moeten alle Afgeleide werken die u distribueert
    een leesbare kopie van de toeschrijvingsberichten bevatten
    binnen een dergelijk NOTICE-bestand, met uitzondering van de mededelingen die dat niet doen
    hebben betrekking op enig deel van de Afgeleide werken, in ten minste één
    van de volgende plaatsen: binnen een gedistribueerd NOTICE-tekstbestand
    als onderdeel van de Afgeleide werken; binnen het Bronformulier of
    documentatie, indien verstrekt samen met de Afgeleide werken; of,
    binnen een display gegenereerd door de Afgeleide werken, indien en
    waar dergelijke kennisgevingen van derden normaal gesproken verschijnen. De inhoud
    van het NOTICE-bestand zijn uitsluitend voor informatieve doeleinden en
    wijzig de licentie niet. U kunt uw eigen toeschrijving toevoegen
    kennisgevingen binnen Afgeleide werken die u verspreidt, naast
    of als een addendum bij de KENNISGEVING tekst van het Werk, verstrekt
    dat dergelijke aanvullende toeschrijvingsberichten niet kunnen worden geïnterpreteerd
    als wijziging van de licentie.

    U kunt uw eigen copyrightverklaring toevoegen aan uw wijzigingen en
    kan aanvullende of andere licentievoorwaarden bieden
    voor gebruik, reproductie of distributie van uw wijzigingen, of
    voor dergelijke Afgeleide werken als geheel, op voorwaarde dat Uw gebruik,
    reproductie en distributie van het Werk in overeenstemming is met
    de voorwaarden vermeld in deze licentie.

  5. Indiening van bijdragen. Tenzij u uitdrukkelijk anders vermeldt,
    elke Bijdrage die opzettelijk is ingediend voor opname in het Werk
    door u aan de licentiegever onder de voorwaarden van
    deze licentie, zonder enige aanvullende voorwaarden of bepalingen.
    Niettegenstaande het bovenstaande, zal niets hierin vervangen of wijzigen
    de voorwaarden van een afzonderlijke licentieovereenkomst die u mogelijk hebt uitgevoerd
    met Licentiegever met betrekking tot dergelijke Bijdragen.

  6. Handelsmerken. Deze licentie geeft geen toestemming om de transactie te gebruiken
    namen, handelsmerken, servicemerken of productnamen van de licentiegever,
    behalve zoals vereist voor redelijk en gebruikelijk gebruik bij het beschrijven van de
    oorsprong van het Werk en het reproduceren van de inhoud van het NOTICE-bestand.

  7. Garantiedisclaimer. Tenzij vereist door de toepasselijke wetgeving of
    schriftelijk overeengekomen, levert Licentiegever het Werk (en elk
    De Bijdrager levert zijn Bijdragen) op een “AS IS” BASIS,
    ZONDER ENIGE GARANTIE OF VOORWAARDEN, hetzij uitdrukkelijk, hetzij
    impliciet, inclusief, maar niet beperkt tot, garanties of voorwaarden
    van TITEL, NIET-INBREUK, VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN
    SPECIFIEK DOEL. U bent zelf verantwoordelijk voor het bepalen van de
    geschiktheid van het gebruik of herverdeling van het Werk en veronderstellen
    risico's verbonden aan uw uitoefening van machtigingen onder deze licentie.

  8. Beperking van aansprakelijkheid. In geen geval en onder geen enkele rechtstheorie,
    hetzij in onrechtmatige daad (inclusief nalatigheid), contract of anderszins,
    tenzij vereist door de toepasselijke wetgeving (zoals opzettelijk en grof
    nalatige handelingen) of schriftelijk overeengekomen, zal elke Bijdrager zijn
    aansprakelijk jegens u voor schade, inclusief alle directe, indirecte, speciale,
    incidentele of gevolgschade van welke aard dan ook die ontstaat als een
    resultaat van deze licentie of uit het gebruik of de onmogelijkheid om de
    Werkzaamheden (inclusief maar niet beperkt tot schade wegens verlies van goodwill,
    werkonderbreking, computerstoring of storing, of wat dan ook
    andere commerciële schade of verliezen), zelfs als een dergelijke Bijdrager
    is op de hoogte gesteld van de mogelijkheid van dergelijke schade.

  9. Garantie of aanvullende aansprakelijkheid aanvaarden. Tijdens het herverdelen
    het Werk of Afgeleide Werken daarvan, U kunt ervoor kiezen om aan te bieden,
    en een vergoeding vragen voor, acceptatie van ondersteuning, garantie, schadevergoeding,
    of andere aansprakelijkheidsverplichtingen en / of rechten die hiermee in overeenstemming zijn
    Licentie. Bij het aanvaarden van dergelijke verplichtingen mag u echter alleen handelen
    voor uw eigen rekening en voor uw eigen verantwoordelijkheid, niet namens u
    van een andere bijdrager, en alleen als u akkoord gaat met schadeloosstelling,
    verdedigen en elke bijdrager vrijwaren voor enige aansprakelijkheid
    opgelopen door, of claims tegen, een dergelijke Bijdrager om redenen
    van uw aanvaarding van een dergelijke garantie of aanvullende aansprakelijkheid.

    EINDE VAN DE VOORWAARDEN

    BIJLAGE: Hoe u de Apache-licentie op uw werk toepast.

    Voeg het volgende toe om de Apache-licentie op uw werk toe te passen
    standaardkennisgeving, waarbij de velden tussen haakjes staan ​​"[]"
    vervangen door uw eigen identificerende informatie. (Niet opnemen
    de haakjes!) De tekst moet tussen de toepasselijke
    commentaarsyntaxis voor het bestandsformaat. Wij raden ook aan om a
    bestands- of klassenaam en beschrijving van het doel worden opgenomen in de
    voor eenvoudiger gebruik dezelfde “afgedrukte pagina” als de copyrightvermelding
    identificatie binnen archieven van derden.

    Copyright [jjjj] [naam van de eigenaar van het copyright]

    Gelicentieerd onder de Apache-licentie, versie 2.0 (de “Licentie”);
    u mag dit bestand niet gebruiken behalve in overeenstemming met de Licentie.
    U kunt een kopie van de Licentie verkrijgen op

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

    Tenzij vereist door de toepasselijke wetgeving of schriftelijk overeengekomen, software
    gedistribueerd onder de Licentie wordt gedistribueerd op een “AS IS” BASIS,
    ZONDER GARANTIES OF VOORWAARDEN VAN ENIGE SOORT, expliciet of impliciet.
    Zie de licentie voor de specifieke taal die de machtigingen beheert en
    beperkingen onder de licentie.

Licentie = contract

Een vrije licentie, ook al is deze gratis, staat geen toegeeflijkheid toe en we hebben al voorbeelden van beperkingen gegeven. Kies een licentie die rekening houdt met zowel uw interesses als die van de gebruiker, want open source software is speciaal voor hem ontworpen. De gebruiker van het project moet de licentie beschouwen als een soort overeenkomst tussen hem en de houder van het auteursrecht, dus voordat u enige actie op de broncode uitvoert, moet u zorgvuldig de beperkingen bestuderen die aan u worden opgelegd door de licentie van het project.

We hopen dat we enig licht hebben geworpen op het onderwerp licenties en dat dit, ondanks de complexiteit van de kwestie, geen obstakel mag vormen op uw pad naar Open Source. Ontwikkel uw project en vergeet de rechten niet, die van u en die van anderen.

Nuttige links

Tenslotte nog enkele nuttige bronnen die ons hebben geholpen bij het zoeken naar informatie over bestaande licenties en het selecteren van de meest geschikte licentie voor onze doeleinden:

Bron: www.habr.com

Voeg een reactie