Як працюють ліцензії з відкритим кодом та як їх додавати до своїх проектів

Нещодавно було кілька захоплюючих новин для розробників по всьому світу. Facebook змінив ліцензію на кілька бібліотек, які вони розробляють. Вони перейшли з патентів BSD-3 + на MIT .

Це здається добре, але що це означає? Які наслідки мають різні ліцензії з відкритим кодом?

Ця стаття дасть вам швидке розуміння популярних ліцензій. Він також навчить вас застосовувати їх до своїх проектів з відкритим кодом на GitHub.

Влада

Найпопулярніші ліцензії з відкритим кодом мають важливий спільний аспект. Ініціатива з відкритим кодом (OSI) схвалила їх.

OSI створена в 1998 році з метою просування програмного забезпечення з відкритим кодом. Він створив Open Source Definition (OSD), щоб визначити, що означає програмне забезпечення з відкритим кодом.

Ось як вони описують себе:

Ініціатива з відкритим кодом (OSI) - це некомерційна корпорація глобального масштабу, сформована з метою просвітництва та пропаганди переваг відкритих джерел та налагодження мостів між різними виборчими структурами спільноти відкритих джерел.

Ліцензії

Більшість ліцензій з відкритим кодом містять такі твердження:

  1. Програмне забезпечення можна модифікувати, використовувати комерційно та розповсюджувати.
  2. Програмне забезпечення можна модифікувати та використовувати приватно.
  3. У програмне забезпечення повинні бути включені повідомлення про ліцензію та авторські права.
  4. Автори програмного забезпечення не надають жодних гарантій на програмне забезпечення і ні за що не несуть відповідальності.

Ми розглянемо найпопулярніші ліцензії, від найобмеженіших до найбільш дозвільних (з точки зору користувача).

Загальна публічна ліцензія GNU, версія 3 (GPLv3)

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

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

GPLv2 також дуже популярний. Основною відмінністю від GPLv3 є положення про патентні гранти.

Цей пункт було додано до версії 3, щоб заборонити компаніям стягувати плату з користувачів за використання їх патентів.

Популярними проектами, що використовують GPLv3, є Bash та GIMP . Linux використовує GPLv2.

Езекієль Фонкубієрта вказав на щось важливе для ліцензій GPL:

Ліцензія вашого вихідного коду повинна бути сумісна з ліцензією відкритого вихідного коду, на який ви посилаєтесь. Наприклад, якщо ваш код є власністю, вам не буде дозволено використовувати бібліотеку за ліцензією GPL. Тут люди, як правило, роблять більше помилок.

Ліцензія Apache 2.0

Ліцензія Apache 2.0 пропонує більшу гнучкість для користувачів.

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

Популярними проектами, що використовують Apache License 2.0, є Android , Apache та Swift .

Поширення програмного забезпечення Берклі (BSD)

BSD має дві основні версії: 2-положення та 3-положення. Вони обидва пропонують більшу гнучкість для користувачів, ніж Apache License 2.0.

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

Популярними проектами, що використовують ліцензію BSD, є Go (3-стаття), Pure.css (3-стаття) та Sentry (3-стаття).

Ліцензія MIT

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

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

Популярними проектами, що використовують MIT, є Angular.js , jQuery , Rails , Bootstrap та багато інших.

React.js Facebook мав ліцензію на патенти BSD-3 + до 25 вересня. Він поєднав ліцензію BSD-3 з додатковим пунктом про використання патентів.

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

React тепер має ліцензію MIT. Тепер ви можете подати до суду на Facebook і все ще користуватися React. Яке полегшення!

Застосування ліцензії на ваші проекти з відкритим кодом

Ліцензувати свої проекти легко. Вам потрібно додати LICENSE, LICENSE.txtабо LICENSE.mdв кореневому каталозі вашого сховища.

GitHub робить це ще простіше:

  1. Відкрийте сховище GitHub у браузері.
  2. У кореневому каталозі натисніть Create new file.
  3. Назвіть файл “ЛІЦЕНЗІЯ”.
  4. Клацніть на Choose a license template.
  5. Виберіть одну з ліцензій (усі, згадані в цій статті, є).
  6. Після вибору натисніть Review and submit.
  7. Commit файл.

У підсумку ...

  • Однією з найбільш обмежувальних ліцензій є GPL .
  • Однією з найбільш дозвільних ліцензій є MIT .
  • Інші популярні ліцензії - Apache License 2.0 та BSD .
  • Щоб застосувати ліцензію до свого проекту GitHub, вам потрібно створити LICENSEфайл, використовуючи шаблони ліцензій GitHub.

Ознайомтесь із моїм поясненням того, як я використовував Python, щоб знайти цікавих людей, яких слід слідкувати за Medium!

Щоб отримати додаткові оновлення, слідкуйте за мною у Twitter.