Топ питань
Часова шкала
Чат
Перспективи
GNU Lesser General Public License
З Вікіпедії, вільної енциклопедії
Remove ads
GNU Lesser General Public License (Менша загальна громадська ліцензія GNU[1]) раніше GNU Library General Public License (Бібліотечна загальна громадська ліцензія GNU[2])[3] або LGPL, є ліцензією вільного програмного забезпечення, виданою Фондом вільного програмного забезпечення[4]. Вона проєктувалася як компроміс між між сильними копілефт-ліцензіями (наприклад, GPL) і дозвільними ліцензіями як BSD або MIT[5].

Ліцензія LGPL застосовується в основному до бібліотек програмного забезпечення, тобто до складових програмних проєктів[5][6].
Remove ads
Історія
Загальна громадська ліцензія GNU була написана в 1991 році[3] (і оновлена в 1999 і в 2007 роках[7][8]) Річардом Столменом за допомогою професора Ебена Моглена, головного юрисконсульта Фонду вільного програмного забезпечення[4].
Умови/технічна відповідність
Узагальнити
Перспектива
Ліцензія LGPL містить обмеження копілефта безпосередньо на програмний код, що розповсюджується за цією ліцензією, але не застосовує ці обмеження до програмного забезпечення, яке просто компонується з даним програмним кодом[4].
У LGPL 2.1 програма, що не є ліцензованою за (L)GPL, може розповсюджуватися на будь-яких умовах, якщо вона не є похідним твором. Якщо це похідний твір, то умови програми повинні дозволяти «модифікацію твору для власного використання клієнтом та зворотної розробки для налагодження таких модифікацій». Чи є твір, що використовує програму LGPL, похідним твором чи ні, є юридичним питанням. Окремий виконуваний файл, який динамічно посилається на бібліотеку через .so, .dll або подібний носій, загалом не вважається похідним твором, як це визначено в LGPL. Він підпадатиме під визначення «твору, який використовує Бібліотеку». Пункт 5 LGPL версії 2.1 говорить:
- Програма, яка не містить похідних програм від жодної частини Бібліотеки, але призначена для роботи з Бібліотекою шляхом компіляції або зв'язування з нею, називається «твором, що використовує Бібліотеку». Такий твір, окремо, не є похідним твором від Бібліотеки, і тому не підпадає під дію цієї Ліцензії.
По суті, якщо це «твір, що використовує бібліотеку», то програмне забезпечення має бути можливим для зв’язування з новішою версією програми, що охоплюється LGPL. Найпоширенішим методом для цього є використання «відповідного механізму спільної бібліотеки для зв’язування». Як варіант, дозволяється статично зв’язана бібліотека, якщо надається вихідний код або зв’язувані об’єктні файли[1].
Відмінності від GPL
На відміну від GPL, LGPL дозволяє комбінувати (або, у випадку бібліотек, «використовувати») закритий (тобто власницький) код з кодом LGPL, але лише за умови дотримання наступної умови: користувач повинен мати можливість змінювати та доповнювати частину LGPL і не може бути обмежений у цьому; отже, користувачеві має бути надана необхідна інформація для зі збирання та встановлення та виконання модифікованої версії частини LGPL у комбінованій роботі[9]; крім того, користувачеві не може бути заборонено здійснювати зворотну розробку для доопрацювання змін частини LGPL.
Програма, яка використовує програмний код LGPL разом із власницьким кодом, незалежно від того, чи ліцензована вона за ліцензією сімейства GPL чи іншими ліцензіями[10], повинна бути побудована таким чином, щоб кожен кінцевий користувач міг (самостійно) пов'язати відкритий код LGPL (або його модифіковані версії) з кінцевою програмою[11]. Це можна зробити за допомогою динамічного зв'язування (де код LGPL використовується в динамічній бібліотеці); тоді кінцевий користувач може створити власну динамічну бібліотеку (жаргон Linux: Shared Object) частини LGPL (наприклад, з модифікованої версії коду LGPL) і використовувати її. Або це може відбуватися шляхом статичного зв'язування — тоді кінцевий користувач зазвичай отримує об'єктні файли (або вихідний код) пропрієтарного коду та вихідні коди LGPL-коду і може зв'язати їх разом[5].
Зазвичай розробник пропрієтарного програмного забезпечення просто динамічно пов'язує свою програму з відповідною бібліотекою LGPL. Таким чином, програмне забезпечення містить чітке розділення між кодом LGPL і пропрієтарною частиною.
Прикладами бібліотек під ліцензією LGPL є стандартні бібліотеки окремих мов програмування, такі як glibc (реалізація стандартної бібліотеки C Фонду вільного програмного забезпечення), бібліотека GNU MP, GTK, Mozilla, OpenOffice тощо.
Для бібліотеки C++, яка використовує багато вбудованих функцій і шаблонів класів («templates»), зазвичай вибирають ліцензію, яка є менш обмежувальною (щодо можливих сторонніх розробників), ніж LGPL, якщо передбачається використання бібліотеки разом із власницьким кодом. Адже в цьому випадку власницький код повинен вже містити вхідні функції та шаблонний код бібліотеки тощо у вихідному коді, і тому кінцевому користувачеві не можуть бути надані об'єктні файли пропрієтарного коду, оскільки будь-які модифікації вхідних функцій (бібліотеки) вже повинні бути інтегровані у вихідний код[12]. Як приклад можна навести libstdc++ (GNU C++ Library), яка використовує численні вбудовані функції та шаблони: тут розробники libstdc++ вирішили використовувати ліцензію GPL зі спеціальним додатком[13], яка дозволяє розробнику поєднувати libstdc++ із власницьким кодом, причому власницький код не повинен бути ліцензований за GPL або LGPL (але, звичайно, може бути). Зокрема, в цьому випадку відпадає вимога, щоб кінцевий користувач міг підключати бібліотеку libstdc++ у зміненій формі (статичній або динамічній), і тому вона є менш обмежувальною для власницьких розробників, які використовують бібліотеку, ніж LGPL.
Однак діє принцип, що будь-які зміни в самих частинах LGPL (якщо ці зміни були зроблені не виключно для власного використання, а продаються як програма або поширюються будь-яким іншим чином) завжди повинні бути доступними для кінцевих користувачів. Розкриття власного коду, який не залежить від коду LGPL, необхідне лише в тому випадку, якщо в загальному програмному забезпеченні містяться частини вихідного коду (або воно базується на таких частинах), які підпадають під ліцензію GPL і, отже, підлягають принципу копілефту.
LGPL містить опцію опублікувати змінену версію програмного забезпечення під ліцензією GPL. Це дає програмістам вільного програмного забезпечення можливість опублікувати свої розширення за бажанням під ліцензією «копілефт»[14].
Remove ads
Дивіться також
- GNU General Public License (GPL) — Загальна громадська ліцензія GNU.
- Affero General Public License (GNU AGPL) — посилена версія ліцензії GPL, призначена мережевого серверного програмного забезпечення, яка вимагає, щоб повний початковий код програми був доступним до будь-якого користувача мережі, який працює з цією програмою.
- GNU Free Documentation License (GNU FDL, GFDL) — ліцензія документації, яка спочатку призначалася для використання з документацією для програмного забезпечення GNU, але також була прийнята для інших проєктів, одним з найбільших з них є Wikipedia.
Примітки
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads
