Як вибрати Open Source ліцензію для RAD фреймворку на GitHub

У цій статті ми трохи поговоримо про авторське право, але переважно про вибір вільної ліцензії для RAD фреймворку IONDV. Framework та для опенсорсних продуктів на його основі. Ми розповімо про дозвільну ліцензію Apache 2.0, Про те, що привело нас до неї і з якими рішеннями ми зіткнулися в процесі.

Процес вибору ліцензії досить трудомісткий і до нього слід підходити вже неабияк начитаним, і якщо ви не щасливий володар юридичної освіти, то перед вами відкривається неоране поле інформації про різноманітні вільні ліцензії. Основне, що слід зробити це скласти ряд критеріїв, що обмежують. У процесі обговорення та осмислення ви з командою зможете зрозуміти, що хочете дозволити користувачам вашого продукту, а що заборонити. Коли на руках у вас вже є якийсь опис, необхідно накласти його на існуючі ліцензії та виділити ту, де найбільша кількість пунктів збіглася. Звучить, звичайно, просто, але насправді, зазвичай навіть після обговорення, залишаються питання.

Як вибрати Open Source ліцензію для RAD фреймворку на GitHub

Спершу — посилання на selectalicense.com, корисний сайт, яким ми активно користувалися Особливо зверніть увагу на порівняльну таблицю ліцензій за 13 основними критеріями. Хай прибуде з вами англійська та терпіння.

муки вибору

Почнемо із загальних ознак ліцензій для вільного програмного забезпечення. СПО передбачає виключно вільну ліцензію, яка не обмежує комерційне та некомерційне розповсюдження за моделлю Відкрити ядро. Відповідно, викладаючи у мережу ПЗ під вільною ліцензією не можна повністю обмежити його передачу, поширення та продаж третіми особами і до цього треба лише морально підготуватися.

Вільна ліцензія дає користувачеві право брати участь у зворотній розробці ПЗ або змінювати його іншими доступними способами. Більшість ліцензій не дозволяє перейменовувати продукт або проводити з ним будь-які маніпуляції, змінюючи права автора або власника системи.

Основні питання про вільні ліцензії, які нас цікавили, полягали в:

  1. Внесені зміни до ПЗ мають бути зафіксовані і не мають жодного відношення до правовласника системи?
  2. Ім'я похідного ПЗ не повинно співпадати з ім'ям ПЗ правовласника?
  3. Чи можна змінити ліцензію для будь-яких нових версій на іншу, в тому числі на пропрієтарну?

Уважно переглянувши список найпоширеніших ліцензій, ми вибрали кілька, які розглядали докладніше. Потенційні ліцензії для IONDV. Framwork були: GNU GPLv3, Apache 2.0, MIT та MРL. MIT практично відразу виключили, це дозвільна некопілефтна ліцензія, яка дозволяє використання, модифікування та розповсюдження коду практично як завгодно, а нас такий варіант не влаштовував, ми хотіли щоб ліцензія регулювала відносини правовласника і користувача. Більшість не найбільших проектів на GitHub викладено саме під ліцензією MIT або її різноманітних варіацій. Сама ліцензія дуже коротка, і із заборон лише вказівка ​​авторства творця ПЗ.

Наступною була ліцензія mpl 2.0. Зізнатися ми не відразу до неї прийшли, але вивчивши докладніше швидко виключили, оскільки основний недолік такий - ліцензія застосовується не для всього проекту, а для окремих файлів. Крім того, якщо користувач змінює файл, ліцензію він змінити не може. За фактом, як би старанно ти не змінював Open source проект, ти так і не зможеш його монетизувати через подібну ліцензію. Це, до речі, не стосується правовласника.

Подібна проблема зберігається і в ліцензії GNU GPLv3. Вона вимагає, щоб будь-який файл залишався під нею. GNU GPL – це копілефтна ліцензія, яка вимагає, щоб вихідні коди похідних робіт були відкритими та залишалися під цією ж ліцензією. Тобто: переписавши два рядки коду, ви будете змушені зафіксувати свої зміни і при подальшому використанні або розповсюдженні зберігати код під GNU GPL. В даному випадку це обмежує фактор для користувача нашого проекту, а не для нас. Але зміна GPL на будь-яку іншу ліцензію заборонена навіть усередині версій GPL. Наприклад, якщо змінити LGPL (Надбудова над GPL) на GPL, то зворотної дороги до LGPL вже не буде. І цей пункт був вирішальним у голосуванні проти.

Загалом наш вибір спочатку схилявся до GPL3 саме через поширення модифікованого коду під тією самою ліцензією. Ми думали, що цим зможемо убезпечити свій продукт, але ми побачили менше ризиків в Apache 2.0. Відповідно до Free Software Foundation, GPLv3 сумісна з Apache License v2.0., тобто завжди є можливість змінити ліцензію з Apache License v2.0 на GPL v3.0.

Apache 2.0

Apache 2.0 - Збалансована дозвільна ліцензія з акцентом на авторські права. Ось які відповіді вона дала на питання, що нас цікавлять. Внесені зміни до ПЗ мають бути зафіксовані і не мають жодного відношення до правовласника системи? Так, усі зміни мають бути задокументовані, і ми не несемо відповідальності ні за вихідний код, ні за змінений. Файл із змінами повинен прикладатися до коду, в який ви ці зміни внесли. Ім'я похідного ПЗ не повинно співпадати з ім'ям ПЗ правовласника? Так, похідне ПЗ має виходити під іншим ім'ям та під іншим товарним знаком, але із зазначенням авторства правовласника. Чи можна змінити ліцензію для будь-яких нових версій на іншу, в тому числі на пропрієтарну? Так, можна випускати під різними ліцензіями, Apache 2.0 не обмежує застосування будь-яких некомерційних та комерційних ліцензій.

Також випускаючи нові продукти на основі відкритого під Apache 2.0 коду або продукти додаткової функціональності, не обов'язково використовувати ту ж ліцензію. Нижче наведено зображення з умовами та обмеженнями ліцензії Apache 2.0.

Як вибрати Open Source ліцензію для RAD фреймворку на GitHub

Ліцензія висуває вимогу збереження та згадування авторських прав та ліцензії під якою випускається ПЗ. Обов'язкова наявність повідомлення про авторські права з ім'ям правовласника та ліцензією захищає права початкового автора ПЗ, оскільки навіть якщо воно буде перейменовано, віддано чи продано під іншою ліцензією, то знак автора все одно залишиться. Для цього також можна використовувати файл УВАГА! і додати його або у вихідний код або документацію до проекту.

Ми випускаємо у відкритий доступ на GitHub всі наші продукти під ліцензією Apache 2.0, крім IONDV. War archive, вихідний код якого у квітні цього року був опублікований під ліцензією GPLv3 на GitHub Далекосхідним центром соціальних технологій. На даний момент крім самого фреймворку і його модулів опубліковано додатки виготовлені на фремворку. На хабрі ми вже розповідали про Систему управління проектами та про Реєстр зв'язку.

тех. деталі про фреймворк

IONDV. Framework – опенсорс фреймворк на node.js для створення високорівневих веб-додатків на основі метаданих, що не потребує серйозних навичок програмування.

Основу функціональності програми становить реєстр даних - модуль Реєстрі. Це ключовий модуль, призначений безпосередньо для роботи з даними на основі структур метаданих – у тому числі щодо ведення проектів, програм, заходів та ін. Також у проекті використовується модуль порталу для відображення довільних шаблонів даних – на ньому реалізовано фронт реєстру архівних справ.

Для СУБД використовується MongoDb - в ній зберігаються і налаштування програми, метадані та самі дані.

Як застосувати ліцензію до свого проекту?

Додати файл ЛІЦЕНЗІЇ з текстом ліцензії у репозиторій свого проекту та voilà, проект під захистом Apache 2.0. Потрібно вказати правовласника, це і є copiright notice. Зробити це можна у вихідному коді або у файлі УВАГА! (текстовий файл, що перераховує всі бібліотеки, що ліцензуються під ліцензією Apache разом з іменами їх творців). Сам файл покласти або у вихідний код, або в документацію, що розповсюджується разом із роботою. У нас це виглядає так:

Copyright © 2018 LLC "ION DV".
Ліцензовано за ліцензією Apache, версія 2.0

Текст ліцензії Apache 2.0

Ліцензія Apache
Версія 2.0, січень 2004 р
http://www.apache.org/licenses/

УМОВИ ВИКОРИСТАННЯ, РОЗМНОЖЕННЯ ТА РОЗПОДІЛУ

  1. Визначення.

    «License» shall mean the terms and conditions for use, reproduction,
    та розповсюдження відповідно до розділів 1 - 9 цього документа.

    «Licensor» shall mean the copyright owner або entity authorized by
    власник авторських прав, що надає ліцензію.

    «Legal Entity» shall mean the union of the acting entity and all
    інші суб'єкти, які контролюють, контролюються або перебувають під спільним управлінням
    контроль з цією організацією. Для цілей цього визначення:
    «control» means (i) the power, direct or indirect, to cause the
    керівництво або керівництво такою організацією, за контрактом чи
    в іншому випадку, або (ii) право власності на п'ятдесят відсотків (50%) або більше
    випущені акції або (iii) бенефіціарне право власності на такий суб’єкт господарювання.

    «You» (або «Your») shall mean an individual or Legal Entity
    здійснення дозволів, наданих цією Ліцензією.

    "Source" form shall mean the preferred form for making modifications,
    включаючи, але не обмежуючись цим, вихідний код програмного забезпечення, документацію
    вихідні та конфігураційні файли.

    «Object» form shall mean any form resulting from mechanical
    перетворення або переклад вихідної форми, включаючи але
    не обмежуючись скомпільованим об’єктним кодом, сформованою документацією,
    та перетворення на інші типи носіїв.

    «Праця» зменшує значок роботи з authorship, whether in Source or
    Форма об'єкта, що надається за ліцензією, як зазначено в
    повідомлення про авторські права, яке входить до твору або додається до нього
    (приклад наведено в Додатку нижче).

    "Derivative Works" shall mean any work, whether in Source or Object
    форма, яка базується на (або випливає з) твору і для якої
    редакційні редакції, анотації, розробки чи інші модифікації
    представляють в цілому оригінальний авторський твір. За цілями
    цієї ліцензії, Похідні твори не включатимуть твори, які залишились
    можна відокремити від інтерфейсів, або просто зв’язати (або прив’язати за іменем),
    Робота та похідні роботи.

    «Contribution» shall mean any work of authorship, including
    оригінальна версія Твору та будь-які модифікації або доповнення
    до цієї роботи або її похідних творів, тобто навмисно
    подано Ліцензіару для включення до Твору власником авторських прав
    або фізичною або юридичною особою, уповноваженою подавати від імені
    copyright owner. Для purposes of this definition, «submitted»
    означає будь-яку надіслану електронну, усну або письмову комунікацію
    до Ліцензіара або його представників, включаючи, але не обмежуючись цим
    спілкування в електронних списках розсилки, системах контролю вихідних кодів,
    і видавати системи відстеження, якими керує або від його імені
    Ліцензіар з метою обговорення та вдосконалення Роботи, але
    виключаючи спілкування, яке помітно позначене чи іншим чином
    designated in writing by the copyright owner as "Not a Contribution."

    «Contributor» shall mean Licensor та будь-яку індивідуальну або Legal Entity
    від імені яких Внесок був отриманий Ліцензіаром та
    згодом включена в Твір.

  2. Надання ліцензії на авторське право. Відповідно до положень та умов
    цією Ліцензією, кожен Учасник цим надає Вам безстрокові,
    у всьому світі, не ексклюзивно, безкоштовно, безоплатно, безповоротно
    авторська ліцензія на відтворення, підготовку похідних творів,
    публічно демонструвати, публічно виконувати, субліцензувати та розповсюджувати
    Робота та такі похідні роботи у формі джерела чи об'єкта.

  3. Grant of Patent License. Subject to the terms and conditions of
    цією Ліцензією, кожен Учасник цим надає Вам безстрокові,
    у всьому світі, не ексклюзивно, безкоштовно, безоплатно, безповоротно
    (крім зазначеного в цьому розділі) патентну ліцензію на виготовлення, зробив,
    використовувати, пропонувати продавати, продавати, імпортувати та іншим чином передавати Твір,
    де така ліцензія застосовується лише до тих заявок на патент, які підлягають ліцензуванню
    таким Учасником, який обов'язково порушується ними
    Внесок (и) окремо або в поєднанні з їх внеском (ах)
    з Роботою, до якої було подано такий внесок. Якщо ви
    завести патентні справи проти будь-якого суб'єкта господарювання (включаючи a
    перехресний позов або зустрічний позов у ​​позові) про те, що Твір
    або внесок, включений у Твір, є прямим
    або патентне порушення, то будь-які патентні ліцензії
    надана Вам за цією Ліцензією на цю Роботу припиняється
    станом на дату подання такого позову.

  4. Redistribution. You may reproduce and distribute copies of the
    Робота або похідні роботи на будь-якому носії, з або без
    модифікацій та у формі Джерело або Об’єкт, за умови, що Ви
    відповідають наступним умовам:

    (а) Ви повинні надати будь-яким іншим одержувачам Роботи або
    Derivative Works - копія цієї Ліцензії; і

    (b) Ви повинні забезпечити, щоб будь-які змінені файли мали помітні повідомлення
    про те, що Ви змінили файли; і

    © You must retain, в Source form of any Derivative Works
    що Ви поширюєте всі авторські права, патенти, торгові марки та
    повідомлення про атрибуцію з джерельної форми твору,
    за винятком тих повідомлень, які не стосуються жодної частини
    Похідні роботи; і

    (d) Якщо у роботі включено «NOTICE» текст файлу як частина його
    розповсюдження, то будь-які Похідні роботи, які Ви поширюєте, повинні
    включати читабельну копію вміщених повідомлень про атрибуцію
    у такому файлі NOTICE, за винятком тих повідомлень, які цього не роблять
    стосуються будь-якої частини Похідних творів, принаймні в одній
    з таких місць: у текстовому файлі NOTICE, який розповсюджується
    як частина Похідних творів; в межах джерельної форми або
    документація, якщо вона надається разом із Похідними роботами; або,
    в межах дисплея, породженого Похідними роботами, якщо та
    скрізь, де зазвичай з’являються такі сторонні сповіщення. Зміст
    файлу NOTICE призначені лише для ознайомлення та
    не змінюйте Ліцензію. Ви можете додати власну атрибуцію
    повідомлення в межах Похідних творів, які Ви поширюєте разом
    або як додаток до тексту ПРИМІТКИ з твору, що надається
    що такі додаткові повідомлення про атрибуцію не можна тлумачити
    як модифікація Ліцензії.

    Ви можете додати власну заяву про авторські права до своїх змін та
    може надавати додаткові або інші умови ліцензії
    для використання, відтворення або розповсюдження Ваших модифікацій, або
    для будь-яких таких Похідних Праць в цілому, за умови Вашого використання,
    відтворення та розповсюдження Твору відповідає іншим вимогам
    умови, зазначені в цій Ліцензії.

  5. Submission of Contributions. Unless You explicitly state otherwise,
    будь-який внесок, навмисно поданий для включення до твору
    Ви передаєте Ліцензіару на умовах та положеннях
    цією Ліцензією, без будь-яких додаткових умов або умов.
    Незважаючи на вищевикладене, ніщо в цьому документі не може замінити або змінити
    умови будь-якої окремої ліцензійної угоди, яку ви могли укласти
    з Ліцензіаром щодо таких внесків.

  6. Trademarks. Ця література не є широким керуванням, щоб використовувати trade
    імена, торгові марки, знаки обслуговування або назви продуктів Ліцензіара,
    за винятком випадків, коли це потрібно для розумного та звичного використання при описі
    походження Твору та відтворення вмісту файлу NOTICE.

  7. Disclaimer of Warranty. Unless required by applicable law or
    погодившись письмово, Ліцензіар надає Твір (і кожен
    Contributor provides its Contributions) on «AS IS» BASIS,
    БЕЗ ГАРАНТІЙ ТА УМОВ БУДЬ-ЯКИХ ВИДІВ, будь-якими або
    маються на увазі, включаючи, без обмеження, будь-які гарантії чи умови
    ТИТУЛУ, НЕПОРУШЕННЯ, ПРОДУКЦІЙНОСТІ ТА ПРИГОДНОСТІ ДЛЯ
    ОСОБЛИВА МЕТА. Ви несете повну відповідальність за визначення
    доцільність використання або перерозподілу Твору і припустити будь-яке
    ризики, пов’язані з Вашим використанням дозволів за цією Ліцензією.

  8. Limitation of Liability. У будь-якому випадку і під неправдивою теорією,
    будь то делікт (включаючи недбалість), контракт чи інше,
    якщо цього не вимагає чинне законодавство (наприклад, навмисне та грубо
    необережні дії) або письмово погодитись з будь-яким Учасником
    несе відповідальність перед вами за збитки, включаючи будь-які прямі, непрямі, спеціальні,
    випадкові або наслідкові збитки будь-якого характеру, що виникають як
    внаслідок дії цієї Ліцензії або поза використанням або неможливістю використовувати
    Робота (включаючи, але не обмежуючись збитками за втрату доброї волі,
    зупинка роботи, збій або несправність комп'ютера або будь-яке інше
    інші комерційні збитки або збитки), навіть якщо такий Внесок
    було повідомлено про можливість таких збитків.

  9. Accepting Warranty or Additional Liability. While redistributing
    Твір або Похідні роботи, Ви можете запропонувати,
    та стягувати плату за прийняття підтримки, гарантію, відшкодування,
    або інші зобов'язання та / або права, пов'язані з відповідальністю
    Ліцензія. Однак, приймаючи такі зобов'язання, Ви можете діяти лише
    від свого імені та від власної відповідальності, а не від імені
    будь-якого іншого Учасника, і лише якщо Ви погодитесь відшкодувати,
    захищати та тримати кожного учасника нешкідливим за будь-яку відповідальність
    понесені або претензії, заявлені проти такого Учасника з причини
    прийняття вами будь-якої такої гарантії або додаткової відповідальності.

    КІНЕЦЬ УМОВ

    ДОДАТОК: Як застосувати ліцензію Apache до своєї роботи.

    Щоб застосувати ліцензію Apache до своєї роботи, додайте наступне
    boilerplate notice, with the fields enclosed by brackets «[]»
    замінено вашою власною ідентифікаційною інформацією. (Не включайте
    дужки!) Текст слід укласти у відповідну
    синтаксис коментаря для формату файлу. Ми також рекомендуємо a
    Назва файлу або класу та опис цілей повинні бути включені в
    Same «printed page» як copyright notice for easier
    ідентифікація в сторонніх архівах.

    Авторське право [рррр] [ім'я власника авторських прав]

    Ліцензований під Apache Ліцензія, Version 2.0 (the «License»);
    ви не можете використовувати цей файл, крім випадків, якщо це відповідає Ліцензії.
    Ви можете отримати копію Ліцензії за адресою

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

    Якщо програмне забезпечення не вимагає чинного законодавства або письмової згоди
    distributed under the License is distributed on "AS IS" BASIS,
    БЕЗ ГАРАНТІЙ ТА УМОВ БУДЬ-ЯКОГО ВИДУ, явних або прихованих.
    Див. Ліцензію щодо конкретної мови, що регулює дозволи та
    обмеження за Ліцензією.

Ліцензія = договір

Вільна ліцензія, вона хоч і вільна, але не допускає вседозволеності і ми вже навели приклади обмежень. Вибирайте ліцензію з огляду як на свої інтереси, так і на користувача, тому що відкрите ПЗ розраховане саме на нього. Користувачеві проекту слід сприймати ліцензію як своєрідний договір між ним та правовласником, тому перш ніж проводити будь-яку дію над вихідним кодом, уважно вивчіть обмеження, що накладаються на вас ліцензією проекту.

Сподіваємося, що ми пролили трохи світла на тему ліцензій і, незважаючи на складність питання, він не повинен стати на заваді вашому шляху в Open Source. Розвивайте свій проект і не забувайте про права, свої та чужі.

Корисні посилання

Насамкінець трохи корисних ресурсів, які нам допомогли при пошуку інформації про існуючі ліцензії та підборі найбільш підходящої під наші цілі:

Джерело: habr.com

Додати коментар або відгук