Jak wybrać licencję Open Source dla frameworku RAD na GitHub

W tym artykule porozmawiamy trochę o prawie autorskim, ale głównie o wyborze darmowej licencji na framework RAD IONDV. Struktura oraz dla opartych na nim produktów open source. Opowiemy Ci o licencji zezwalającej Apache 2.0, o tym, co nas do tego doprowadziło i przed jakimi decyzjami stanęliśmy w trakcie.

Proces wyboru licencji jest dość pracochłonny i należy do niego podejść już dobrze przeczytany, a jeśli nie jesteś szczęśliwym posiadaczem wykształcenia prawniczego, otwiera się przed tobą niezagospodarowane pole informacji o różnych bezpłatnych licencjach. Najważniejsze jest ustalenie szeregu kryteriów ograniczających. Dzięki procesowi dyskusji i refleksji Ty i Twój zespół będziecie w stanie zrozumieć, na co chcesz pozwolić użytkownikom Twojego produktu, a czego zabronić. Kiedy już masz w rękach określony opis, musisz nałożyć go na istniejące licencje i wybrać ten, w którym zbiega się największa liczba punktów. Brzmi to oczywiście prosto, ale w rzeczywistości, zwykle nawet po dyskusji, pozostają pytania.

Jak wybrać licencję Open Source dla frameworku RAD na GitHub

Najpierw link do selectalicense.com, przydatna witryna, z której często korzystaliśmy. Zwróć szczególną uwagę na tabela porównawcza licencji według 13 głównych kryteriów. Niech angielski i cierpliwość będą z Tobą.

Mąka z wyboru

Zacznijmy od ogólnych cech licencji dla darmowe oprogramowanie. Oprogramowanie typu open source oznacza wyłącznie bezpłatną licencję, która nie ogranicza dystrybucji komercyjnej i niekomercyjnej zgodnie z modelem otwarty rdzeń. W związku z tym umieszczenie oprogramowania w sieci na wolnej licencji nie może całkowicie ograniczyć jego transferu, dystrybucji i sprzedaży przez osoby trzecie i trzeba się po prostu przygotować na to psychicznie.

Licencja bezpłatna daje użytkownikowi prawo do uczestniczenia w inżynierii wstecznej oprogramowania lub zmiany go w inny dostępny sposób. Większość licencji nie pozwala na zmianę nazwy produktu ani dokonywanie na nim jakichkolwiek manipulacji, zmieniających prawa autora i/lub właściciela systemu.

Główne pytania, które nas interesowały w związku z darmowymi licencjami, to:

  1. Czy zmiany wprowadzone w oprogramowaniu powinny być rejestrowane i nie mieć związku z właścicielem praw autorskich do systemu?
  2. Czy nazwa oprogramowania pochodnego nie powinna być taka sama jak nazwa oprogramowania właściciela praw autorskich?
  3. Czy istnieje możliwość zmiany licencji dowolnej nowej wersji na inną, także zastrzeżoną?

Po dokładnym przejrzeniu listy najpopularniejszych licencji wybraliśmy kilka, które rozważyliśmy bardziej szczegółowo. Potencjalne licencje na IONDV. Struktura były to: GNU GPLv3, Apache 2.0, MIT i MPL. MIT niemal natychmiast wykluczone, jest to liberalna licencja non-copyleft, która pozwala na używanie, modyfikację i dystrybucję kodu w niemal dowolny sposób, ale nie byliśmy zadowoleni z tej opcji, nadal chcieliśmy, aby licencja regulowała relacje między prawami autorskimi posiadacza i użytkownika. Większość mniejszych projektów na GitHubie publikowana jest na licencji MIT lub jej różnych odmianach. Sama licencja jest bardzo krótka, a jedynymi zakazami jest wskazanie autorstwa twórcy oprogramowania.

Następna była licencja mpl 2.0. Co prawda nie od razu do tego doszliśmy, ale po dokładniejszym przestudiowaniu tego szybko to wykluczyliśmy, gdyż główną wadą jest to, że licencja nie dotyczy całego projektu, a poszczególnych plików. Ponadto, jeśli użytkownik zmieni plik, nie będzie mógł zmienić licencji. Tak naprawdę, niezależnie od tego, jak pilnie będziesz zmieniał projekt Open Source, nigdy nie będziesz w stanie na nim zarabiać dzięki takiej licencji. Nawiasem mówiąc, nie dotyczy to właściciela praw autorskich.

Podobny problem występuje z licencją GNU GPLv3. Wymaga, aby dowolny plik pozostał pod nim. GNU GPL to licencja typu copyleft, która wymaga, aby dzieła pochodne były open source i pozostawały na tej samej licencji. To znaczy: przepisując dwie linijki kodu, będziesz zmuszony zatwierdzić zmiany i podczas dalszego użytkowania lub dystrybucji zapisać kod na licencji GNU GPL. W tym przypadku jest to czynnik ograniczający dla użytkownika naszego projektu, a nie dla nas. Jednak zmiana GPL na jakąkolwiek inną licencję jest zabroniona, nawet w ramach wersji GPL. Na przykład, jeśli się zmienisz LGPL (dodatek do GPL) do GPL, wówczas nie będzie już powrotu do LGPL. I ten punkt zadecydował o głosowaniu przeciw.

Ogólnie rzecz biorąc, nasz wybór początkowo skłaniał się ku GPL3 właśnie ze względu na dystrybucję zmodyfikowanego kodu w ramach tej samej licencji. Myśleliśmy, że w ten sposób możemy zabezpieczyć nasz produkt, ale w Apache 2.0 dostrzegliśmy mniejsze ryzyko. Według Free Software Foundation GPLv3 jest zgodna z licencją Apache v2.0, co oznacza, że ​​zawsze istnieje możliwość zmiany licencji z Apache License v2.0 na GPL v3.0.

Apache 2.0

Apache 2.0 — zrównoważona licencja liberalna z naciskiem na prawa autorskie. Oto odpowiedzi, których udzieliła na interesujące nas pytania. Czy zmiany wprowadzone w oprogramowaniu powinny być rejestrowane i nie mieć związku z właścicielem praw autorskich do systemu? Tak, wszystkie zmiany muszą być udokumentowane i nie ponosimy odpowiedzialności za kod oryginalny ani zmodyfikowany. Plik ze zmianami należy dołączyć do kodu, w którym dokonałeś tych zmian. Czy nazwa oprogramowania pochodnego nie powinna być taka sama jak nazwa oprogramowania właściciela praw autorskich? Tak, oprogramowanie pochodne powinno być wydawane pod inną nazwą i pod innym znakiem towarowym, ale ze wskazaniem właściciela praw autorskich. Czy istnieje możliwość zmiany licencji dowolnej nowej wersji na inną, także zastrzeżoną? Tak, może być wydawany na różnych licencjach, Apache 2.0 nie ogranicza stosowania żadnych licencji niekomercyjnych i komercyjnych.

Również przy wypuszczaniu nowych produktów opartych na otwartym kodzie źródłowym dla Apache 2.0 lub produktów z dodatkową funkcjonalnością nie jest konieczne korzystanie z tej samej licencji. Poniżej możesz zobaczyć obraz z warunkami i ograniczeniami licencji Apache 2.0.

Jak wybrać licencję Open Source dla frameworku RAD na GitHub

Licencja nakłada obowiązek zachowania i wskazania praw autorskich oraz licencji, na podstawie której oprogramowanie jest wydawane. Obowiązkowa dostępność Informacja o prawach autorskich z nazwą właściciela praw autorskich i licencją chroni prawa pierwotnego autora oprogramowania, ponieważ nawet w przypadku zmiany jego nazwy, oddania lub sprzedaży na podstawie innej licencji, znak autora nadal pozostanie. Możesz także użyć do tego pliku OGŁOSZENIE i dołącz go albo do kodu źródłowego, albo do dokumentacji projektu.

Udostępniamy wszystkie nasze produkty publicznie dostępne w GitHub na licencji Apache 2.0, z wyjątkiem IONDV. Archiwum wojenne, którego kod źródłowy został opublikowany na licencji GPLv3 w serwisie GitHub w kwietniu tego roku przez Dalekowschodnie Centrum Technologii Społecznych. W tej chwili oprócz struktura i moduły opublikowane приложения wykonane na ramie. W hubie, o którym już rozmawialiśmy System zarządzania projektami i około Rejestr komunikacyjny.

Te. szczegóły dotyczące frameworka

IONDV. Framework to framework open source oparty na node.js do tworzenia aplikacji internetowych wysokiego poziomu w oparciu o metadane, który nie wymaga poważnych umiejętności programistycznych.

Podstawą funkcjonalności aplikacji jest rejestr danych – moduł Rejestr. Jest to kluczowy moduł przeznaczony bezpośrednio do pracy z danymi w oparciu o struktury metadanych - m.in. do zarządzania projektami, programami, wydarzeniami itp. W projekcie zastosowano także moduł portalowy do wyświetlania dowolnych szablonów danych - implementuje rejestr frontowy archiwum.

MongoDb służy do DBMS - przechowuje ustawienia aplikacji, metadane i same dane.

Jak zastosować licencję do swojego projektu?

Dodaj plik LICENCJA z tekstem licencji w repozytorium swojego projektu i voilà, projekt chroniony przez Apache 2.0. Należy wskazać właściciela praw autorskich i to wszystko Informacja o prawach autorskich. Można to zrobić w kodzie źródłowym lub w pliku OGŁOSZENIE (plik tekstowy zawierający listę wszystkich bibliotek licencjonowanych na licencji Apache wraz z nazwiskami ich twórców). Sam plik należy umieścić albo w kodzie źródłowym, albo w dokumentacji rozpowszechnianej wraz z dziełem. U nas wygląda to tak:

Prawa autorskie © 2018 ION DV LLC.
Licencjonowany na licencji Apache, wersja 2.0

Tekst licencji Apache 2.0

Licencja Apache
Wersja 2.0, styczeń 2004
http://www.apache.org/licenses/

ZASADY I WARUNKI KORZYSTANIA, REPRODUKCJI I DYSTRYBUCJI

  1. Definicje.

    „Licencja” oznacza warunki użytkowania, reprodukcji,
    i rozpowszechnianie zgodnie z definicją w sekcjach od 1 do 9 niniejszego dokumentu.

    „Licencjodawca” oznacza właściciela praw autorskich lub podmiot upoważniony przez
    właściciel praw autorskich, który udziela Licencji.

    „Osoba prawna” oznacza związek podmiotu działającego i wszystkich
    inne jednostki, które kontrolują, są kontrolowane lub są wspólne
    kontrolę z tym podmiotem. Do celów niniejszej definicji,
    „kontrola” oznacza (i) bezpośrednią lub pośrednią władzę powodującą
    kierownictwo lub zarządzanie takim podmiotem, na podstawie umowy lub
    w przeciwnym razie lub (ii) własność co najmniej pięćdziesięciu procent (50%)
    wyemitowane akcje lub (iii) faktyczna własność takiego podmiotu.

    „Ty” (lub „Twój”) oznacza osobę fizyczną lub Podmiot Prawny
    korzystanie z uprawnień udzielonych na mocy niniejszej Licencji.

    „Formularz źródłowy” oznacza preferowaną formę dokonywania modyfikacji,
    w tym między innymi kod źródłowy oprogramowania, dokumentację
    źródłowe i pliki konfiguracyjne.

    Forma „przedmiotu” oznacza każdą formę wynikającą z mechaniki
    transformacja lub tłumaczenie formy źródłowej, w tym but
    nie ogranicza się do skompilowanego kodu obiektowego, wygenerowanej dokumentacji,
    i konwersje na inne typy mediów.

    „Dzieło” oznacza dzieło autorskie, czy to w Źródle, czy
    Formularz obiektowy, udostępniony w ramach Licencji, jak wskazano w a
    informacja o prawach autorskich, która jest zawarta w pracy lub do niej dołączona
    (przykład znajduje się w załączniku poniżej).

    „Działa pochodne” oznaczają dowolne dzieło, zarówno w źródle, jak i w obiekcie
    forma, która jest oparta (lub wywodzi się z) Dzieła i dla której
    poprawki redakcyjne, adnotacje, opracowania lub inne modyfikacje
    reprezentują, jako całość, oryginalne dzieło autorstwa. Do celów
    niniejszej Licencji, Dzieła pochodne nie obejmują dzieł, które pozostały
    można je oddzielić lub jedynie połączyć (lub powiązać według nazwy) z interfejsami
    dzieło i jego prace pochodne.

    „Wkład” oznacza dowolne dzieło autorskie, w tym
    oryginalna wersja Dzieła oraz wszelkie modyfikacje lub dodatki
    do tego Dzieła lub jego Dzieł pochodnych, czyli celowo
    przesłane do Licencjodawcy w celu włączenia do Dzieła przez właściciela praw autorskich
    lub przez osobę fizyczną lub prawną upoważnioną do przesyłania w imieniu
    właściciela praw autorskich. Na potrzeby tej definicji „przedłożony”
    oznacza jakąkolwiek formę wysłanej komunikacji elektronicznej, ustnej lub pisemnej
    Licencjodawcy lub jego przedstawicielom, w tym między innymi
    komunikacja na elektronicznych listach mailingowych, systemach kontroli kodu źródłowego,
    i systemy śledzenia problemów, które są zarządzane przez lub w imieniu
    Licencjodawca w celu omówienia i ulepszenia Dzieła, ale
    z wyłączeniem komunikacji, która jest w widoczny sposób oznaczona lub w inny sposób
    oznaczony na piśmie przez właściciela praw autorskich jako „Nie stanowi wkładu”.

    „Współtwórca” oznacza Licencjodawcę oraz każdą osobę fizyczną lub podmiot prawny
    w imieniu którego Licencjodawca otrzymał Wkład i
    następnie włączone do Dzieła.

  2. Udzielenie licencji na prawa autorskie. Z zastrzeżeniem warunków
    niniejsza Licencja, każdy Współtwórca niniejszym przyznaje Ci wieczyste,
    na całym świecie, niewyłączne, bezpłatne, nieodpłatne, nieodwołalne
    licencja praw autorskich do powielania, przygotowywania Dzieł pochodnych,
    publicznie wyświetlać, publicznie wykonywać, udzielać podlicencji i rozpowszechniać
    Dzieło i takie dzieła pochodne w formie źródłowej lub przedmiotowej.

  3. Udzielenie licencji patentowej. Z zastrzeżeniem warunków
    niniejsza Licencja, każdy Współtwórca niniejszym przyznaje Ci wieczyste,
    na całym świecie, niewyłączne, bezpłatne, nieodpłatne, nieodwołalne
    (z wyjątkiem przypadków określonych w tej sekcji) licencja patentowa na wykonanie, dokonanie,
    używać, oferować sprzedaży, sprzedawać, importować i w inny sposób przekazywać Dzieła,
    gdy taka licencja dotyczy tylko tych zastrzeżeń patentowych, które mogą być objęte licencją
    przez takiego Dostawcę, który jest siłą rzeczy naruszany przez ich
    Wkład (y) samodzielnie lub jako połączenie ich wkładów
    z Dziełem, do którego wniesiono taki wkład (y). Jeśli ty
    wszcząć spór patentowy przeciwko jakiemukolwiek podmiotowi (w tym
    roszczenie wzajemne lub roszczenie wzajemne w postępowaniu sądowym) z zarzutem, że Dzieło
    lub Wkład włączony do Dzieła jest bezpośredni
    lub współdziałające naruszenie patentu, a następnie wszelkie licencje patentowe
    udzielona na mocy niniejszej Licencji na tę Pracę wygasa
    na dzień wniesienia takiego pozwu.

  4. Redystrybucja. Możesz powielać i rozpowszechniać kopie
    Dzieło lub Dzieła pochodne na jakimkolwiek nośniku, z lub bez
    modyfikacje oraz w formie Źródła lub Obiektu, pod warunkiem, że Ty
    spełniać następujące warunki:

    (a) Musisz przekazać innym odbiorcom Dzieła lub
    Dzieła pochodne kopię niniejszej Licencji; i

    (b) Musisz sprawić, aby wszelkie zmodyfikowane pliki zawierały widoczne informacje
    stwierdzenie, że dokonałeś zmiany plików; I

    © Musisz zachować w formie źródłowej wszelkie Dzieła Zależne
    które rozpowszechniasz, wszelkie prawa autorskie, patenty, znaki towarowe i
    wzmianki o autorstwie ze Źródłowej formy Dzieła,
    z wyłączeniem tych ogłoszeń, które nie dotyczą żadnej części
    prace pochodne; i

    (d) Jeżeli Dzieło zawiera jako część plik tekstowy „POWIADOMIENIE”.
    dystrybucji, to wszelkie rozpowszechniane przez Ciebie Dzieła Pochodne muszą
    zawierać czytelną kopię zawartych informacji o uznaniu
    w takim pliku NOTICE, z wyłączeniem tych powiadomień, które ich nie zawierają
    odnoszą się do dowolnej części Dzieł pochodnych, przynajmniej w jednym
    z następujących miejsc: w rozpowszechnianym pliku tekstowym UWAGA
    w ramach prac pochodnych; w formie Źródła lub
    dokumentacja, jeśli została dostarczona wraz z Dziełami pochodnymi; lub,
    na ekranie wygenerowanym przez Dzieła pochodne, jeśli i
    wszędzie tam, gdzie zwykle pojawiają się takie powiadomienia osób trzecich. Zawartości
    pliku NOTICE służą wyłącznie celom informacyjnym i
    nie modyfikuj Licencji. Możesz dodać własne przypisanie
    powiadomienia w ramach Dzieł pochodnych, które rozpowszechniasz, obok
    lub jako dodatek do dostarczonego tekstu OGŁOSZENIA z Pracy
    że takich dodatkowych informacji o przypisaniu nie można interpretować
    jako modyfikacja Licencji.

    Możesz dodać własne oświadczenie o prawach autorskich do swoich modyfikacji i
    może zawierać dodatkowe lub inne warunki licencji
    w celu wykorzystania, powielania lub dystrybucji Twoich modyfikacji lub
    dla wszystkich takich Dzieł pochodnych jako całości, pod warunkiem, że używasz ich,
    powielanie i dystrybucja Dzieła w inny sposób jest zgodne z
    warunki określone w niniejszej Licencji.

  5. Składanie wkładów. O ile wyraźnie nie postanowisz inaczej,
    wszelkie Wkłady celowo złożone w celu włączenia ich do Dzieła
    przez Ciebie do Licencjodawcy będą podlegać warunkom
    niniejsza Licencja, bez żadnych dodatkowych warunków.
    Niezależnie od powyższego, żadne zawarte w niniejszym dokumencie treści nie zastępują ani nie modyfikują
    warunki jakiejkolwiek oddzielnej umowy licencyjnej, którą mógłbyś zawrzeć
    z Licencjodawcą w odniesieniu do takich Wkładów.

  6. Znaki towarowe. Niniejsza Licencja nie daje pozwolenia na wykorzystanie handlu
    nazwy, znaki towarowe, znaki usługowe lub nazwy produktów Licencjodawcy,
    z wyjątkiem przypadków, gdy jest to wymagane z powodu rozsądnego i zwyczajowego użycia przy opisywaniu
    pochodzenia Utworu i odtworzenie zawartości pliku UWAGA.

  7. Wyłączenie gwarancji. O ile nie jest to wymagane przez obowiązujące prawo lub
    zgodził się na piśmie, Licencjodawca udostępnia Utwór (i każdy
    Dostawca dostarcza swój Wkład) na zasadzie „TAK JAK JEST”,
    BEZ JAKICHKOLWIEK GWARANCJI LUB WARUNKÓW, wyraźnych lub
    dorozumiane, w tym między innymi wszelkie gwarancje lub warunki
    TYTUŁU, NIENARUSZANIA PRAW, PRZYDATNOŚCI HANDLOWEJ lub PRZYDATNOŚCI DO A
    SZCZEGÓLNY POWÓD. Ponosisz wyłączną odpowiedzialność za określenie
    stosowności wykorzystania lub redystrybucji Dzieła i przyjmować jakiekolwiek
    ryzyko związane z wykonywaniem przez Ciebie uprawnień wynikających z niniejszej Licencji.

  8. Ograniczenie odpowiedzialności. W żadnym wypadku i w żadnej teorii prawnej,
    czy to w czynach niedozwolonych (w tym zaniedbania), umowie lub w inny sposób,
    chyba że jest to wymagane przez obowiązujące prawo (np. celowo i rażąco
    zaniedbania) lub uzgodnione na piśmie, winien taki będzie każdy Współtwórca
    odpowiedzialny wobec Ciebie za szkody, w tym wszelkie bezpośrednie, pośrednie, szczególne,
    przypadkowe lub wynikowe szkody o dowolnym charakterze powstałe jako
    wynik niniejszej Licencji lub z użycia lub niemożności korzystania z
    Praca (w tym między innymi odszkodowanie za utratę wartości firmy,
    przerwa w pracy, awaria lub awaria komputera lub inne
    inne szkody lub straty handlowe), nawet jeśli taki Współtwórca
    został poinformowany o możliwości wystąpienia takich szkód.

  9. Akceptacja gwarancji lub dodatkowej odpowiedzialności. Podczas redystrybucji
    utwór lub jego Dzieła pochodne, które możesz zaoferować,
    i pobrać opłatę za, akceptację wsparcia, gwarancję, odszkodowanie,
    lub inne zobowiązania i / lub prawa z tym związane
    Licencja. Jednak przyjmując takie zobowiązania, możesz działać tylko
    we własnym imieniu i na wyłączną odpowiedzialność, a nie w imieniu
    jakiegokolwiek innego Współtwórcy i tylko wtedy, gdy zgadzasz się zabezpieczyć,
    bronić i unieszkodliwiać każdego Współtwórcę za jakąkolwiek odpowiedzialność
    poniesione przez takiego Współtwórcę lub roszczenia wobec niego dochodzone z powodu
    o przyjęciu takiej gwarancji lub dodatkowej odpowiedzialności.

    KONIEC WARUNKÓW

    DODATEK: Jak zastosować licencję Apache do swojej pracy.

    Aby zastosować licencję Apache do swojej pracy, dołącz poniższe
    zawiadomienie szablonowe, z polami zawartymi w nawiasach „[]”
    zastąpione własnymi informacjami identyfikacyjnymi. (Nie dołączaj
    nawiasy!) Tekst należy ująć w odpowiednie
    składnia komentarza dla formatu pliku. Zalecamy również, aby a
    nazwa pliku lub klasy oraz opis przeznaczenia powinny być zawarte w pliku
    dla łatwiejszego korzystania z tej samej „wydrukowanej strony”, co informacja o prawach autorskich
    identyfikacja w archiwach osób trzecich.

    Prawa autorskie [yyyy] [nazwa właściciela praw autorskich]

    Licencjonowany na podstawie Licencji Apache w wersji 2.0 („Licencja”);
    nie możesz używać tego pliku, chyba że jest to zgodne z licencją.
    Możesz uzyskać kopię licencji pod adresem

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

    O ile nie jest to wymagane przez obowiązujące prawo lub pisemnie uzgodnione, oprogramowanie
    rozpowszechniane w ramach Licencji jest rozpowszechniane na zasadzie „TAK JAK JEST”,
    BEZ ŻADNYCH GWARANCJI LUB WARUNKÓW, wyraźnych lub dorozumianych.
    Zobacz licencję, aby zapoznać się z uprawnieniami dotyczącymi konkretnego języka i
    ograniczenia wynikające z licencji.

Licencja = umowa

Wolna licencja, choć jest bezpłatna, nie pozwala na permisywizm, a przykłady ograniczeń podaliśmy już. Wybierz licencję uwzględniającą zarówno Twoje zainteresowania, jak i użytkownika, ponieważ oprogramowanie open source jest przeznaczone specjalnie dla niego. Użytkownik projektu powinien postrzegać licencję jako rodzaj umowy pomiędzy nim a posiadaczem praw autorskich, dlatego przed podjęciem jakichkolwiek działań na kodzie źródłowym dokładnie przestudiuj ograniczenia, jakie narzuca Ci licencja projektu.

Mamy nadzieję, że rzuciliśmy trochę światła na temat licencji i pomimo złożoności zagadnienia nie powinien on stać się przeszkodą na Twojej drodze do Open Source. Rozwijaj swój projekt i nie zapomnij o prawach swoich i innych.

Przydatne linki

Na koniec kilka przydatnych zasobów, które pomogły nam w wyszukiwaniu informacji o istniejących licencjach i wyborze tej najbardziej odpowiedniej do naszych celów:

Źródło: www.habr.com

Dodaj komentarz