Перейти до вмісту

GPL

Матеріал з K2 ERP Wiki
; GPL, як і багато open source-ліцензій, містить disclaimer: програма надається без гарантій.; Вона дає свободу користуватися кодом, але просить не закривати цю свободу для наступних користувачів.; Виробник продає пристрій із Linux kernel і BusyBox.; Потрібно враховувати:
  • web services;
  • SaaS;
  • server-side software;
  • network applications;
  • cloud services;
  • проєктів, які хочуть уникнути “SaaS loophole”;
  • ситуацій, де користувач системи взаємодіє з програмою через мережу.;

Головна думка: GPL — це ліцензійний пакет взаємності.; * Документація щодо GPL compatibility.; GPL тісно пов’язана з рухом free software.; Небезпека: найчастіша GPL-проблема — не сама ліцензійний пакет, а те, що розробник поширює binary й забуває про source code та notices.;== Warranty disclaimer ==

Рекомендовано:

Практична роль: точний файл ліцензії, SPDX-рядки й README зменшують плутанину для користувачів, contributor-ів і compliance-інструментів.; Практична роль: GPLv3 намагається захистити свободу не лише “прочитати код”, а й реально змінити програму на пристрої в підтримуваних умовах.; * Free Software Foundation materials about GNU licenses.;
'''Головна перевага:''' GPL не без ускладнень відкриває код, а захищає його від перетворення на закритий програмний продукт при поширенні похідних версій.; У SaaS-сценарії:
'''Висновок:''' MIT License дає більше свободи компаніям закривати похідні роботи, а GPL краще зберігає відкритість похідного коду.;== переважні аспекти GPL ==

== GPL і BSD License ==
<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
організація запускає GPL-програму лише всередині себе.;</div>
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
== SPDX identifiers ==

У GPL copyleft означає:

<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">

!;<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

'''GPLv3''' — третя реліз GNU General Public License, опублікована Free Software Foundation 29 червня 2007 року.; На відміну від permissive-ліцензій на кшталт MIT License або BSD License, GPL не без ускладнень надає можливість користуватися кодом.; GPL має змогу бути не найкращим вибором, якщо:

<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

* складніша для комерційного використання;
* має змогу бути несумісною з деякими ліцензіями;
* не підходить для всіх бібліотек;
* має змогу зменшити adoption у proprietary-екосистемах;
* потребує open source compliance;
* складні питання linking;
* складні питання derivative works;
* різниця GPLv2/GPLv3 має змогу створювати проблеми;
* не завжди покриває SaaS-сценарії — для цього є собою AGPL;
* потребує уважного поширення source code.; Критерій
</div>
=== SaaS-проєкт хоче сильний copyleft ===

<div style="background:#f0eaff; border-left:6px solid #8e44ad; padding:12px; margin:12px 0;">

Якщо автор хоче дозволити proprietary-програмам використовувати бібліотеку, частіше обирають:

LGPL надає можливість proprietary-програмам використовувати бібліотеку за певних умов, але зміни самої LGPL-бібліотеки зазвичай мають залишатися відкритими під відповідними умовами.; Це має змогу виглядати так:
GPL добре підходить, якщо потрібно:
== Distribution ==

'''Практична порада:''' для бібліотек GPL — сильний і свідомий вибір.; Це форма, зручна для внесення змін.; LGPL
GPL вимагає, щоб при поширенні GPL-програми або похідної роботи користувачі додатково отримували відповідні ліцензійні права й доступ до source code.; * викласти binary на сайт;
* продати пристрій із GPL-програмою;
* передати клієнту застосунок;
* поширити модифіковану версію;
* включити GPL-код у програмний продукт;
* роздати копії на носії;
* опублікувати Docker image з GPL-компонентами в певних сценаріях.; '''істотно:''' для server-side проєктів, де істотно відкривати зміни при мережевому використанні, варто розглянути AGPL, а не звичайну GPL.; * Документація щодо LGPL і AGPL.;== Linking ==

<syntaxhighlight lang="python">

<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

!; Docker image має змогу містити GPL-компоненти.; src/

істотно:

* якщо ви поширюєте модифіковану GPL-програму, потрібно поширювати її під GPL-сумісними умовами;
* користувачі мають отримати source code або доступ до нього;
* не можна додати додаткові обмеження, які забирають GPL-права;
* похідний код не можна без ускладнень закрити як proprietary software;
* свободи мають переходити далі.; * запускати програму;
* вивчати її роботу;
* отримувати source code;
* змінювати програму;
* поширювати оригінальні копії;
* поширювати модифіковані версії;
* продавати копії;
* використовувати код у free software-проєктах;
* створювати похідні роботи за умов GPL.; '''Проста аналогія:''' якщо книги стоять на одній полиці, це не означає, що всі вони стали однією книгою.; Розробник створює desktop-застосунок і хоче, щоб усі поширені модифіковані версії додатково залишалися open source.;== Коли GPL має змогу бути невдалим вибором ==

</div>
</div>
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

== Tivoization ==

'''Практична роль:''' GPLv3 розроблена для новішого світу програмного забезпечення, де важливими стали патенти, пристрої з обмеженим запуском модифікованого ПЗ і складніші моделі поширення.; |-
| Тип
| Copyleft
| Permissive
|-
| Patent grant
| є собою в GPLv3-контексті
| Явний patent grant
|-
| Похідні роботи
| Copyleft-вимоги
| Можуть бути proprietary
|-
| Сумісність
| Залежить від версії GPL
| Часто сумісна з GPLv3, але не з GPLv2-only
|}

== Приклад SPDX у файлі ==
<div style="background:#f0eaff; border-left:6px solid #8e44ad; padding:12px; margin:12px 0;">
== GPL і бібліотеки ==

<syntaxhighlight lang="markdown">

Цікавий факт

Критично: GPL-код має змогу бути вільним, але це не означає, що він автономно безпечний, підтримуваний або production-ready.; GPL compatibility — важлива тема, бо не кожен open source-код можна поєднувати з GPL-кодом.; Критично: не можна автономно вважати, що dynamic linking завжди безпечний, а static linking завжди заборонений.; :contentReference [oaicite:5]{index=5}

GPL і proprietary software

Критично: GPL-код не можна без ускладнень скопіювати в закритий програмний продукт і поширювати як proprietary software без виконання GPL-умов.; Найлюдяніший факт: GPL — це ліцензійний пакет не без ускладнень про код, а про ідею: користувач системи має мати право зрозуміти програму, змінити її й поділитися змінами.;

GPLv3 розширює й уточнює теми, які стали важливими після GPLv2:

  • великих компаній;
  • стандартів;
  • multimedia codecs;
  • hardware/software products;
  • enterprise software;
  • open source compliance;
  • patent retaliation;
  • license compatibility.; Йому потрібно дотримуватися GPL-умов: notices, source code, build information у відповідних межах.; Це означає:

GNU GPL застосовується для програм, бібліотек, інструментів, серверного ПЗ, desktop-застосунків, системних компонентів і багатьох open source-проєктів.; * версію GPL;

  • `only` або `or-later`;
  • сумісність іншої ліцензії;
  • linking model;
  • combined work;
  • exceptions;
  • additional permissions;
  • dependencies;
  • build artifacts;
  • distribution model.; Типова структура:
  • якщо GPL-програма лише функціонує на сервері й копії не передаються користувачам, GPL-обов’язки щодо distribution можуть не активуватися так само;
  • якщо поширюється modified binary або container image клієнтам, обов’язки можуть виникнути;
  • якщо автор хоче copyleft-умови саме для network use, часто обирають AGPL.;
GPL не забороняє комерційне використання, але сильно впливає на proprietary software.; істотно: GPLv2 і GPLv3 — не одна й та сама ліцензійний пакет.;

До source code можуть належати: project/ Copyleft — це принцип, за яким похідні версії програми мають зберігати ті самі або сумісні свободи.;== Обмеження GPL ==

Основна ідея: GPL каже: “Можеш користуватися, змінювати й поширювати код, але якщо поширюєш похідну версію — збережи ті самі свободи для інших”.; Це має змогу не створювати тих самих обов’язків, що поширення копій клієнтам, але потрібно перевірити конкретний сценарій.; GPL часто важлива в embedded-пристроях, бо вони використовують Linux, BusyBox, U-Boot та інші open source-компоненти.; |-

Тип Copyleft Permissive
Закриття похідного коду Зазвичай не надає можливість при поширенні надає можливість
Attribution Так Так
Ідея Свобода має зберігатися Максимальна гнучкість використання
</div>

GPLv2 важлива для:

<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">

</div>

* використовувати приватно;
* вивчати;
* змінювати;
* запускати;
* продавати як GPL-програму;
* поширювати з source code.; OSI публікує сторінки GNU General Public License і вказує GPLv3 як ліцензію зі SPDX short identifier `GPL-3.0`.;</div>

істотно: GPL — сильна ліцензійний пакет.; Формулювання

Source code у GPL-контексті — це не без ускладнень “архів із чимось”.; :contentReference [oaicite:7]{index=7}

  • GPL сильніше захищає відкритість похідного коду, ніж MIT або BSD.; * Linux kernel використовує GPLv2, а не GPLv3.;

Copyright (C) 2026 Example Author

/*

Copyleft

завдяки наявності Перевага: GPL користувачі можуть не лише відкрити код, а й захистити його відкритість у майбутніх похідних версіях.; !;

У файлах коду:

AGPL

GPL-2.0-only Код можна використовувати тільки за GPLv2
GPL-2.0-or-later Код можна використовувати за GPLv2 або будь-якою пізнішою версією GPL
GPL-3.0-only Код можна використовувати тільки за GPLv3
GPL-3.0-or-later Код можна використовувати за GPLv3 або будь-якою пізнішою версією GPL

SPDX-License-Identifier: GPL-3.0-or-later

Derivative works

Але межа між “mere aggregation” і derivative/combined work має змогу бути складною.;

Тематичні мітки

  • Linux kernel використовує GPLv2, не GPLv3;
  • kernel modules мають окремі складні питання сумісності;
  • багато embedded-пристроїв містять Linux kernel;
  • виробники пристроїв мають виконувати GPLv2-обов’язки щодо source code;
  • kernel compliance є собою важливою частиною open source compliance.; Проста аналогія: permissive-ліцензія каже “бери й роби майже що хочеш”, а GPL каже “бери, змінюй, поширюй, але не забирай ці права в наступних користувачів”.; Linking — одна з найобговорюваніших тем GPL.; GNU описує GPLv3 як free, copyleft license for software and other kinds of works.;{{SEO

Найлюдяніший факт: GPL — це ліцензійний пакет з характером.; Вона допомогла сформувати світ free software, Linux-екосистему, GNU-проєкт і багато open source-проєктів, де істотно не лише “відкрити код зараз”, а й не дозволити закрити його в майбутніх похідних версіях.; * GPL — це ліцензійний пакет, яка часто змушує компанії будувати серйозний open source compliance process.; істотно: не видаляйте чужі copyright notices, навіть якщо код відкритий.; BSD License

Висновок: LGPL часто обирають для бібліотек, коли хочуть зберегти відкритість самої бібліотеки, але не блокувати її використання в закритих програмах.;== Патенти ==

it under the terms of the GNU General Public License...; GPL

GPLv3 приділяє цій проблемі більше уваги, ніж GPLv2.; Або для GPLv2-only: У `README.md` можна написати:

Висновок

  • плутати GPL і MIT License;
  • думати, що GPL забороняє продаж;
  • думати, що GPL означає “на безоплатній основі”;
  • не вказати версію GPL;
  • забути різницю між `only` і `or-later`;
  • копіювати GPL-код у proprietary product без аналізу;
  • не надавати source code при поширенні binary;
  • видаляти copyright notices;
  • не перевіряти license compatibility;
  • вважати, що Docker image не має ліцензійних обов’язків;
  • вважати, що SaaS завжди покривається GPL так само, як distribution;
  • не додавати build scripts;
  • не вести список third-party components.;== Exceptions ==
README.md

Поширені ідентифікатори:

Цікаво, що слово free у GPL означає не “безкоштовний”, а “вільний”.; Що означає

Або:

  • автор не гарантує роботу без помилок;
  • автор не гарантує придатність для конкретної задачі;
  • користувач системи сам відповідає за тестування;
  • production-використання потребує перевірки;
  • ліцензійний пакет дає права, але не гарантує якість.; * GNU General Public License v2.0.;

Головне правило: GPL compliance — це не лише файл LICENSE.; :contentReference [oaicite:3]{index=3}

!; Якщо автор хоче, щоб зміни відкривалися навіть при мережевому використанні, варто розглянути AGPL замість звичайної GPL.; Загальна обережна логіка така: якщо програма тісно поєднується з GPL-бібліотекою в одну роботу, це має змогу створювати GPL-обов’язки для всього combined work.;

  • користувач системи має отримати не лише source code;
  • у певних сценаріях він має мати реальну можливість запускати змінені версії;
  • апаратні обмеження не повинні в цілому знецінювати свободу модифікації.; COPYING
Але якщо GPL-код включено в proprietary-продукт як похідну або combined work, при поширенні можуть виникнути обов’язки відкрити source code всієї відповідної роботи під GPL-сумісними умовами.; * Open Source Initiative: GNU General Public License.;

Ідея:

LGPL або GNU Lesser General Public License — слабша copyleft-ліцензія, часто використовувана для бібліотек.; Практична роль: GPL хоче, щоб користувач системи міг не лише отримати binary, а й реально змінити програму й зібрати її.; Це ще source code, notices, build scripts, dependencies, distribution і зрозумілий бізнес-процес.;== GPL і MIT License ==

Apache License 2.0 — permissive-ліцензія з явнішою патентною частиною.;
* source code offer;
* build scripts;
* kernel patches;
* bootloader changes;
* license notices;
* GPL-компоненти в firmware;
* SBOM;
* device update mechanism;
* supplier compliance;
* availability of corresponding source.; У `COPYING` або `LICENSE` додають повний текст GPL.; '''Практична роль:''' GPL exception — це як спеціальне додаткове правило, яке пом’якшує або уточнює ліцензію для конкретного сценарію.; Слово `or-later` надає можливість використовувати майбутню версію GPL, а `only` — ні.; SPDX-License-Identifier: GPL-3.0-or-later
'''істотно:''' якщо проєкт має патентні ризики, вибір між GPLv2, GPLv3, Apache License 2.0 або іншою ліцензією потрібно робити дуже уважно.; У GPL-проєктах часто зустрічаються формулювання:

* GPL — одна з найвідоміших copyleft-ліцензій у світі.; Вона вимагає зберігати свободи користувача: доступ до source code, право змінювати й право поширювати далі.; Критерій
## License

<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
<syntaxhighlight lang="c">
Класична GPL зазвичай прив’язана до поширення копій програми, а не без ускладнень до використання програми на сервері.;<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

</div>

Приклади:

* linking exception;
* classpath exception;
* GCC Runtime Library Exception;
* Autoconf exception;
* project-specific exceptions.; має змогу йтися про:

* static linking;
* dynamic linking;
* plugins;
* libraries;
* IPC;
* shared libraries;
* kernel modules;
* language-specific imports;
* combined programs.; Критерій

* GNU General Public License v3.0.; Free Software Foundation підкреслює, що GPL гарантує свободу поширювати й змінювати всі версії програми.;== Only і or later ==
Деякі GPL-проєкти мають license exceptions.; * SPDX License List: GPL identifiers.; OSI публікує сторінку GNU General Public License version 2 і пояснює, що GPL розроблена для свободи поширювати копії, отримувати source code, змінювати ПЗ і використовувати його частини в нових free programs.; Водночас GPL потребує уважного compliance: реліз ліцензії, source code, notices, dependencies, linking, Docker images, embedded devices і `only/or-later` формулювання мають значення.; Деталі залежать від ліцензії, архітектури й юрисдикції.;=== Open source desktop application ===

* модифікована реліз GPL-програми;
* програма, що охоплює GPL-код;
* тісно пов’язаний combined work;
* binary, зібраний із GPL-компонентами;
* програмний продукт, який поширює GPL-код у складі більшої системи.;<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

'''Практична порада:''' для container images корисно мати SBOM і окремий список third-party licenses.; * Матеріали щодо copyleft, free software, open source compliance, SBOM, source code distribution, Docker images і embedded Linux compliance.; * сильний copyleft;
* захист свободи користувачів;
* вимога доступу до source code;
* запобігання закриттю похідних версій;
* велика історична роль;
* популярність у free software;
* OSI-recognized open source license;
* стандартні SPDX identifiers;
* хороша для програм, де важлива взаємність;
* сприяє будувати commons;
* змушує downstream-користувачів повертати свободи іншим.;<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

Exceptions можуть дозволяти те, що звичайна GPL обмежувала б сильніше.; Вона надає можливість використовувати, вивчати, змінювати й поширювати код, але вимагає, щоб при поширенні похідних версій користувачі додатково отримували відповідні свободи й source code.; Вона намагається зберегти свободу коду для наступних користувачів.;<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
AGPL важлива для:

GPL-проєкти мають зберігати copyright notices.;== GPLv2 ==
<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">

<div style="background:#fdecea; border-left:6px solid #e74c3c; padding:12px; margin:12px 0;">
== Як додати GPL до проєкту ==
'''істотно:''' якщо проєкт комерційний або юридично чутливий, питання derivative work краще перевіряти з open source compliance-фахівцем або юристом.; !; '''AGPL''' або '''GNU Affero General Public License''' — ліцензійний пакет, схожа на GPLv3, але з додатковою умовою для network use.; У таких випадках GPL одного компонента не обов’язково “поширюється” на всі інші незалежні програми.; {| class="wikitable"

== Коли варто використовувати GPL ==

'''Висновок:''' BSD-ліцензія дає більше свободи downstream-користувачам, а GPL сильніше захищає відкритість майбутніх версій.; Це один із найвідоміших GPL-проєктів у світі.; GPLv3 має кращу сумісність із Apache License 2.0, ніж GPLv2-only.; !; '''істотно:''' не використовуйте без ускладнень “GPL” без версії, якщо хочете уникнути плутанини.; !;<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
SPDX License List містить окремі записи для GPLv2 і GPLv3.; У практиці GPL додатково вважається open source-ліцензією.; :contentReference [oaicite:6]{index=6}
* GPL надає можливість продавати software; “free” означає свободу, а не обов’язково нульову ціну.; Якщо мета — максимальна adoption у різних продуктах, MIT або Apache 2.0 можуть бути простішими.;== Source code ==

BSD-ліцензії permissive, а GPL copyleft.; Можливі проблеми:

LGPL

GPL вимагає доступ до відповідного source code при поширенні програми.;== Mere aggregation ==

CLI-інструмент

  • захистити відкритість похідного коду;
  • зробити software freedom головною умовою;
  • створити free software application;
  • не дозволити закрити модифіковані версії;
  • вимагати source code при поширенні;
  • будувати community commons;
  • поширювати інструмент, який має залишатися відкритим;
  • підтримувати ідеологію free software;
  • уникати proprietary forks при distribution.; Вона не без ускладнень “надає можливість”, а наполягає: якщо ти отримав свободу змінювати код, не забирай цю свободу в наступних людей.;
* SPDX-License-Identifier: GPL-3.0-or-later
*/

</syntaxhighlight>

Tivoization — термін, пов’язаний із ситуацією, коли пристрій містить GPL-програму, але технічно блокує запуск користувацьких модифікованих версій.; * GPLv2 only;

  • GPLv2 or later;
  • GPLv3 only;
  • GPLv3 or later.; Патентні питання важливі для:

Поширені помилки:

GPL і Docker images

Derivative work або похідна робота — одна з найважливіших і найскладніших тем GPL.; * `GPL-1.0-only`;

  • `GPL-1.0-or-later`;
  • `GPL-2.0-only`;
  • `GPL-2.0-or-later`;
  • `GPL-3.0-only`;
  • `GPL-3.0-or-later`.; Це створює питання compliance.; GPL для бібліотеки означає сильніші copyleft-наслідки для програм, які її використовують.;

GPL і Apache License 2.0

Підказка: GPL найкраще функціонує тоді, коли мета проєкту — не без ускладнень популярність коду, а збереження свободи для всіх downstream-користувачів.; Команда публікує command-line tool під GPL, щоб користувачі могли змінювати його й поширювати покращення з source code.;

  1. SPDX-License-Identifier: GPL-2.0-only

!; !;== Див.; додатково ==

  • точно вказувати версію GPL;
  • вирішити `only` чи `or-later`;
  • додати файл `COPYING` або `LICENSE`;
  • використовувати SPDX identifiers;
  • зберігати copyright notices;
  • перевіряти license compatibility dependencies;
  • вести SBOM;
  • мати source code offer, якщо поширюється binary;
  • документувати build process;
  • не змішувати GPL-код із несумісними ліцензіями;
  • перевіряти container images;
  • мати open source compliance process;
  • для SaaS-сценаріїв розглянути AGPL, якщо це мета;
  • консультуватися з юристом у комерційних продуктах.; Практична порада: перед змішуванням GPL-коду з кодом під іншими ліцензіями варто перевірити сумісність, а не покладатися на інтуїцію.; * AGPL з’явилася для сильнішого copyleft у network/SaaS-сценаріях.; GPL відома насамперед як copyleft-ліцензія: вона надає можливість використовувати, вивчати, змінювати й поширювати програму, але вимагає, щоб похідні версії при поширенні додатково залишалися під GPL-сумісними умовами.; GPL

Linux kernel ліцензований під GPLv2.; Її потрібно обирати свідомо, а не без ускладнень з цієї причини, що вона відома.;== GPL і embedded devices ==

істотно: free software і open source часто перетинаються технічно, але мають різні акценти: free software більше говорить про свободу користувача, open source — про відкритість і модель розробки.; :contentReference [oaicite:2]{index=2}

GPL має обмеження.; GPL-умови все одно важливі.;</syntaxhighlight>

GPL — це одна з найважливіших copyleft-ліцензій у світі програмного забезпечення.;

Приклади distribution:

GPL надає можливість:

Для GPL істотно правильно вказувати точний SPDX identifier.; * GPLv3 була опублікована Free Software Foundation 29 червня 2007 року.; Основні переважні аспекти GPL:

* SPDX-License-Identifier: GPL-2.0-only
*/
== GPL і Linux kernel ==
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

!; GPL

Критично: сумісність GPL-коду часто ламається саме через неуважність до “only” і “or later”.; Проста різниця: GPL зазвичай сильніше активується при поширенні копій, а AGPL додає вимогу для користувачів, які взаємодіють із програмою через мережу.; GPLv3 містить сучасніші положення щодо software patents, ніж GPLv2.; * GPL важлива не лише для desktop/server software, а й для embedded-пристроїв, роутерів і firmware.; !; Сумісність залежить від конкретного формулювання: “only” або “or later”.; :contentReference [oaicite:1]{index=1} GPLv2 — друга реліз GNU General Public License.; |- | Copyleft strength | Сильніший | Слабший |- | Для бібліотек | має змогу змушувати combined work бути GPL | надає можливість ширше використання бібліотеки |- | Proprietary applications | Часто проблемно | Часто можливо за умов LGPL |- | Мета | Сильне збереження software freedom | Баланс між відкритістю бібліотеки й ширшим використанням |}

</syntaxhighlight>

Помилка: обирати GPL для бібліотеки, якщо головна мета — щоб її безперешкодно використовували в будь-яких proprietary-продуктах.;

Embedded device з Linux

Похідною роботою має змогу бути:

!; This program is free software: you can redistribute it and/or modify |- | Тип | Copyleft | Permissive |- | Похідний код | Має залишатися GPL-сумісним при поширенні | має змогу бути закритим |- | Commercial use | Дозволене | Дозволене |- | Proprietary use | Обмежене copyleft-умовами при поширенні | Дозволене |- | Головна ідея | Зберегти свободу коду | Максимально спростити повторне використання |}

GPL стала однією з найвпливовіших ліцензій в історії програмного забезпечення.;

License compatibility

істотно: `GPL-3.0-only` і `GPL-3.0-or-later` — різні ліцензійні умови.; * вихідні файли;

  • build scripts;
  • makefiles;
  • interface definitions;
  • configuration files;
  • scripts for compilation;
  • installation scripts у відповідних випадках;
  • patches;
  • інструкції для збірки.;

This project is licensed under the GNU General Public License v3.0 or later.; Критерій

GPL відрізняється від permissive-ліцензій тим, що не надає можливість без зайвих зусиль перетворювати похідні роботи на закритий proprietary-продукт.; GPL добре підходить.; Тобто GPL не забороняє продавати програмне забезпечення.;
  • ISO-образ із багатьма незалежними програмами;
  • Linux-дистрибутив із пакетами під різними ліцензіями;
  • збірка інструментів, які не зв’язані в одну програму;
  • репозиторій із незалежними компонентами.; істотно: Apache-2.0 код зазвичай не можна без ускладнень включити в GPL-2.0-only проєкт без окремої сумісності або дозволу.; GPL для бібліотеки доречна, якщо автор хоче, щоб програми, які тісно використовують бібліотеку, додатково були free software у відповідних умовах.;== Типові помилки початківців ==
  • software patents;
  • license compatibility;
  • anti-tivoization;
  • source code requirements;
  • additional permissions;
  • internationalization;
  • termination і reinstatement;
  • захист користувацьких свобод у сучаснішому software-середовищі.;== Джерела ==
Цікавий факт: через GPLv2 Linux kernel користувачі й розробники отримують право бачити й змінювати ядро, навіть якщо воно стоїть усередині роутера, телевізора або іншого пристрою.; Окремо варто відзначити включно з `only` і `or-later` варіантами.; Mere aggregation — ситуація, коли різні програми без ускладнень поширюються поруч, але не утворюють єдину похідну програму.; це серія ліцензій; додатково реалізовано розроблена Free Software Foundation виступає ключовою рисою вільного програмного забезпечення забезпечується через GPL або GNU General Public License.; Саме з цієї причини її обирають проєкти, для яких істотно зберегти software freedom у downstream-версіях.; :contentReference [oaicite:4]{index=4}
  • Linux kernel;
  • старих GNU-проєктів;
  • великої кількості open source-коду;
  • класичного copyleft-підходу;
  • software freedom;
  • source distribution;
  • license compatibility discussions.; Приклад у коді:
</syntaxhighlight>

GPLv3

Комерційна організація використовує GPL-програму внутрішньо

Free software і open source

Критично: якщо пристрій поширює GPL-програмне забезпечення, виробник не має змогу без ускладнень сказати “це прошивка, а не софт”.;== Цікаві факти про GPL ==

  • LGPL;
  • MIT License;
  • BSD License;
  • Apache License 2.0;
  • MPL у частині сценаріїв.; Практична порада: GPL добре підходить для застосунків і інструментів, де автор хоче, щоб покращення, які поширюються іншим, додатково залишалися відкритими.; MIT License

Хороші практики GPL

See the COPYING file for details.; як ілюстрація:

; GPL

GPL і SaaS

Виробник має враховувати:

  • потрібна максимальна adoption у proprietary products;
  • це маленька бібліотека для широкого вбудовування;
  • потрібна permissive-ліцензія;
  • потрібне просте використання в enterprise без copyleft-аналізу;
  • проєкт має бути сумісним із GPL-incompatible dependencies;
  • важлива патентна простота Apache-style;
  • головна мета — дозволити будь-яке повторне використання без взаємності;
  • це sample code, snippets або навчальні приклади без copyleft-цілі.;
Різниця дуже важлива.;
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

* які GPL-пакети всередині image;
* чи поширюється image іншим;
* чи є собою modified GPL components;
* чи доступний corresponding source;
* чи збережені notices;
* чи є собою SBOM;
* чи є собою license files;
* чи зрозуміло, які компоненти під якими ліцензіями.; Apache License 2.0
Багато обовязків GPL активуються саме під час '''distribution''' або передачі копій іншим користувачам.; * SPDX має окремі ідентифікатори для GPL `only` і `or-later` варіантів.; Вона дуже впливова й досі застосовують, коли потрібно в багатьох важливих проєктах.;</div>

<syntaxhighlight lang="text">

'''істотно:''' приватне використання GPL-коду всередині себе зазвичай не створює тих самих обовязків, що поширення копій іншим.; GPL-код можна:

== Приклади сценаріїв використання ==

Загальний характеристика

/* SPDX-License-Identifier: GPL-3.0-or-later */ Потрібно перевіряти:

/*

У сучасних проєктах часто додають коротший SPDX-рядок: