Короткий опис ліцензій з відкритим вихідним кодом

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

 

Що таке ліцензії з відкритим вихідним кодом?

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

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

 

Вихідний код та об’єктний код — у чому різниця

Програміст пише вихідний код. Це текстовий документ (або файл), написаний мовою, зрозумілою для людей, та файл написаний якоюсь мовою програмування. Однак машини (комп’ютери) насправді не можуть читати вихідний код у тому вигляді, в якому він написаний. Щоб зробити його машиночитаним, комп’ютер повинен скомпілювати вихідний код в машиновиконуваний код, тобто в об’єктний код. Об’єктний код записується у вигляді двійкових цифр (0 і 1), а процес генерації двійкового коду називається «компіляцією». Вихідний код може бути однаковим у різних системах, але кожна машина може скомпілювати його у різний об’єктний код.

 

Два основних типи ліцензій з відкритим вихідним кодом: Копілефт (авторське ліво) та Вседозволяюча

Копілефт та Вседозволяюча (або Дозвільна) — це дві основні категорії ліцензій з відкритим вихідним кодом. Це не назви реальних ліцензій, а категорії, на які поділяються конкретні ліцензії.

  1. Ліцензії Копілефт (авторське ліво) — це тип ліцензії з відкритим вихідним кодом, яка вимагає від користувача застосування тієї ж ліцензії до своєї версії продукту. Це означає, що якщо користувач модифікує та розповсюджує програмне забезпечення, він повинен зберегти ліцензію з відкритим вихідним кодом.
  2. Вседозволяючі (Пермісив, Permissive) ліцензії настільки гнучкі, наскільки це можливо. Зазвичай вони мають мало (чи взагалі не мають) обмежень.

 

Найбільш поширені типи ліцензій з відкритим вихідним кодом

Існує безліч різних типів ліцензій з відкритим вихідним кодом, які доступні авторам програмного забезпечення та/або програмних продуктів. Давайте розглянемо найпопулярніші з них.

 

Ліцензія Apache

Ліцензія Apache — це ліцензія з відкритим вихідним кодом, видана організацією Apache Software Foundation. Під цією ліцензією можна використовувати, змінювати або розповсюджувати будь-який продукт, ліцензований Apache. Основні моменти: якщо для похідної роботи використано рекламні матеріали, для них не обов’язково вказувати посилання на ліцензію Apache, хоча вказівка авторства має залишатися в документації. Ліцензія також дозволяє отримати патентні права на ПЗ/продукт.

 

Берклі розповсюдження програмного забезпечення (BSD — Berkeley Software Distribution)

Існує два типи ліцензії BSD:

  1. Модифікована ліцензія BSD (BSD-3-Clause)
  2. Спрощена ліцензія BSD, також звана ліцензією FreeBSD (BSD-2-Clause)

Кожна ліцензія BSD дає дозвіл на зміну та розповсюдження вихідного або двійкового (об’єктного) коду програмного забезпечення. Однак ви повинні зберігати копію умов, повідомлення про авторські права та відмову від відповідальності.

 

Загальна ліцензія на розробку та розповсюдження (CDDL — Common Development and Distribution License)

Ліцензія CDDL — це ліцензія з відкритим вихідним кодом, створена компанією Sun Microsystems (Oracle). В рамках CDDL можна відтворювати та розповсюджувати оригінальні або похідні роботи ліцензійного програмного забезпечення. Однак ви не можете вносити зміни або видаляти будь-які повідомлення про авторські права, патенти або товарні знаки. Крім того, користувач повинен зберігати сповіщення чи текст із посиланням на учасників або розробників.

Якщо ви розповсюджуєте програмне забезпечення у виконуваній формі, тобто у формі, яка не є вихідним кодом, ви повинні зробити вихідний код доступним. Ви повинні опублікувати вихідний код своїх матеріалів, якщо вони відповідають одному або обом із таких правил:

  • Це доповнення, модифікація або видалення для вихідного програмного забезпечення.
  • Це нові файли, які містять частини вихідного продукту.

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

 

Публічна ліцензія Eclipse (EPL — Eclipse Public License)

Це ліцензія з авторським лівом (копілефт), видана організацією Eclipse Foundation. Мета EPL — захистити авторів від юридичних проблем, якщо компанія використовує їх компонент у комерційному продукті. Ліцензія також передбачає видачу патенту.

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

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

 

Стандартна громадська ліцензія GNU (GPL — GNU General Public License)

Ліцензія GPL — це найпопулярніша ліцензія з відкритим вихідним кодом (наприклад, плагіни та теми WordPress повинні мати цю ліцензію). Це ліцензія з копілефтом (авторським лівом), тому будь-яке програмне забезпечення, що використовує будь-який компонент під GPL, повинно мати відкритий вихідний код, навіть якщо модифікований код займає лише невеликий відсоток.

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

Якщо новий продукт містить лише частину програмного забезпечення під ліцензією GPL, чи потрібно розповсюджувати повний вихідний код? Можливо. Відповідно до GPL, всі похідні роботи повинні ліцензуватися відповідно до повних умов ліцензування. Однак, якщо ви розповсюджуєте програмне забезпечення під ліцензією GPL разом з пропрієтарною (приватною) системою, і це дві окремі роботи, тобто вони не використовують загальні структури даних і виконуються в окремих процесах, тоді вам, можливо, не доведеться публікувати вихідний код для всього програмного забезпечення.

 

Зменшена стандартна громадська ліцензія GNU (LGPL — Lesser General Public License)

Відповідно до LGPL — більш слабкої версії GPL — продукти, що ліцензуються, можуть бути прив’язані до пропрієтарних додатків (патентованих). Пропрієтарний код може залишатися пропрієтарним (приватним), залежно від того, динамічно чи статично скомпоновані програми. Ця ліцензія часто супроводжує вільне програмне забезпечення, дозволяючи включати його у вільне або пропрієтарне програмне забезпечення. Вам не потрібно відкривати вихідний код вашого власного (пропрієтарного) розширення.

 

Публічна ліцензія Microsoft (Ms-PL — Microsoft Public License)

Ліцензія Ms-PL — це безкоштовна ліцензія на програмне забезпечення з відкритим вихідним кодом від компанії Microsoft, яка супроводжує власні проекти Microsoft з відкритим вихідним кодом. Користувачі можуть створювати та розповсюджувати оригінальні або похідні програми, але ви не можете використовувати ім’я, логотип або товарний знак автора. Ms-PL вимагає збереження оригінальних сповіщень про авторство, авторські права, патенти та товарні знаки. Крім того, якщо код не працює у похідній роботі, автор не несе відповідальності — немає жодних гарантій чи зобов’язань щодо працездатності коду.

Коли ви розповсюджуєте продукт під ліцензією Ms-PL, ви не зобов’язані поширювати вихідний код, хоча і можете. Якщо ви вирішите розповсюджувати вихідний код (або навіть частину вихідного коду), вам необхідно включити повну копію Ms-PL ліцензії.

 

Ліцензія Массачусетського технологічного інституту (MIT — Massachusetts Institute of Technology)

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

Ви можете робити з продуктом по цій ліцензії все, що забажаєте. Однак у похідному продукті ви повинні вказувати рік авторських прав та інформацію про власника.

 

Публічна ліцензія Mozilla 2.0 (MPL 2.0 — Mozilla Public License 2.0)

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

  • Повідомити одержувачам, що вихідний код (включаючи вихідний код модифікацій) їм доступний відповідно до ліцензії MPL.
  • Надавати одержувачам гранти MPL, що означає, що вони мають невиключну, безоплатну ліцензію на використання, зміну, відображення, відтворення, розповсюдження тощо.
  • Зберегти сповіщення у вихідному коді про обмеження на видалення або зміну. Ви не можете видалити або змінити ліцензійні повідомлення про авторські права, патенти, гарантії або відповідальність.

 

 

Замість епілогу

Вибір ліцензії з відкритим вихідним кодом для вашого продукту або програмного забезпечення не такий простий, як вам би того хотілося. Якщо вас не хвилює, хто і що робить з вашим продуктом, ви можете скористатися однією з «надгнучких» ліцензій, наприклад, MIT ліцензією. В іншому випадку вам варто поговорити з професіоналом, будь то досвідченим розробником або юристом, щоб обговорити ваші побажання та підібрати найкращу ліцензію. А попереднє знання основ, отримані з нашого огляду, особливо термінології загальних ліцензій, допоможуть вам розпочати цей складний шлях.

 

Share

Останні пости

Як вибрати ідеальний ноутбук: Повний гайд

Вибір ноутбука може бути складним завданням у світі, де ринок переповнений варіантами на будь-який смак… Читати далі

22/04/2024

Томас Едісон

Наш великий недолік в тому, що ми занадто швидко опускаємо руки. Найбільш діючий метод досягти… Читати далі

20/04/2024

Найкрасивіші та найбільш вражаючі мости з усього світу (ТОП-10)

Міст — це щось більше, ніж просто споруда, яка поєднує два береги. Для того, щоб… Читати далі

19/04/2024

Соломон

Життя нас вчить, що свою пару ми пізнаємо, коли розлучаємося, своїх братів ми пізнаємо, коли… Читати далі

18/04/2024

Чак Поланік

Хто може — той робить. Хто не може — той критикує Чак Поланік   Читати далі

17/04/2024

Річард Бах

Жодне бажання не дається тобі окремо від сили, що дозволяє його здійснити. Хоча, можливо, для… Читати далі

16/04/2024