Як ліцензії, сумісні з GPL, на зразок MIT, можуть використовуватися в програмах GPL, не підпадаючи під дію положення копілефт?


19

Зараз я вивчаю можливості та наслідки зв’язування бібліотеки GPL для програми в комерційному контексті.

З того, що я зрозумів про GPL, доки додаток використовується внутрішньо, немає зобов'язання випускати його код (навіть якщо копія переміщена до дочірньої компанії, що контролюється).

Що я не розумію, це наступний пункт із FAQ:

Якщо бібліотека випущена під GPL (а не LGPL), чи означає це, що будь-яке програмне забезпечення, яке її використовує, повинно бути під ліцензією GPL або сумісною з GPL ? Так, оскільки програмне забезпечення, яке воно фактично працює, включає бібліотеку.

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

(Примітка: в Adobe Photoshop є ліцензовані підсилювачі, і я не думаю, що код доступний на вимогу)

Найбільш розумним поясненням було б те, що я щось пропускаю ... Скажіть, будь ласка, де я помилився?


1
+1 для пояснення лише тому, чому б ви взагалі вживали це слово в реченні
Джиммі Хоффа

@JimmyHoffa +1 за вашу любов до мови.
Racheet

1
Де ви почервоніли, що Boost був GPL? У нього є своя ліцензія. Стандартне правило полягає в тому, що GPLv2 не змішується з власним програмним забезпеченням. На цьому веб-сайті на тиждень виникає питання, як це обійти. Ми повинні заборонити всі питання GPL.
Ендрю Т Фіннелл

Я бачу, він сказав, що Boost сумісний із GPL. Решта мого коментаря стоїть.
Ендрю Т Фіннелл

Відповіді:


26

Як ліцензії, сумісні з GPL, на зразок MIT, можуть використовуватися в програмах GPL, не підпадаючи під дію положення копілефт?

Коротка відповідь: їх немає. Вони стануть предметом копілефт.

Довга відповідь:

У статті Вікіпедії про сумісність з ліцензіями є хороший розділ про сумісність із GPL :

Багато найпоширеніших ліцензій на безкоштовне програмне забезпечення, такі як оригінальна ліцензія на MIT / X, ... "сумісні з GPL". Тобто їх код може поєднуватися з програмою під GPL без конфлікту ( нова комбінація мала б GPL застосувати до цілого ).

[наголос додано]

І ще чіткіше із FSF FAQ щодо сумісності з GPL :

Це означає, що інша ліцензія та GPL GPL сумісні; ви можете поєднувати код, випущений під іншою ліцензією, з кодом, випущеним під GNU GPL в одній більшій програмі.

І лише для зведення, ось коментарі FSF до різних ліцензій

Коментар FSF щодо ліцензії на підвищення

Це легка, дозвільна ліцензія на безкоштовне програмне забезпечення, яка не належить до копіювання, сумісна з GPL GPL.

Що означає, що все, що має ліцензію на Boost, легко підлягає GPL.

Де стає хитро

Скажімо, у нас є Fooліцензований проект під Boost, а проект Barліцензований під GPL і який хоче використовувати Foo.

Bar+Fooдозволено, оскільки ліцензії сумісні, і випуск Bar+Fooповинен бути GPL, як BarGPL. Foo, сам по собі і без Bar або Bar+Foo все ще доступний за ліцензією Boost. Сказав інший спосіб, Bar+Fooне впливає на Fooсебе ліцензію .

Отримана ліцензія на проектну комбінацію - це подія, яка діє вперед, лише для комбінації. Це не зворотна подія.

Тож якщо хтось інший хоче взяти Fooі зробити щось інше з ним, вони все ще вільні зробити це без надання GPL права копіювання. Однак якщо вони беруть Bar+Foo, видаляють Barта використовують лише +Fooтоді, вони все ще пов'язані умовами GPL, оскільки Bar+FooGPL'd.

Ваше інше питання:

З того, що я зрозумів про GPL, доки додаток використовується внутрішньо, немає зобов'язання випускати його код (навіть якщо копія переміщена до дочірньої компанії, що контролюється).

На це безпосередньо відповідає відповідь на FSF GPL щодо поширення джерел

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

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


3
Цікаво: Якщо працівник з використанням в неопубліковану модифіковану версію в компанії, буде він мати право на отримання вихідного коду від компанії?
unor

@ GlenH7: дякую за дуже корисну експлікацію (особливо частину "Де це стає хитро")
Louis Morazzani

2
@unor - Ні, це може становити приватне використання Компанією (працівник є частиною компанії, а не окремим суб'єктом господарювання).
iheanyi

"Однак якщо вони беруть Bar + Foo, видаляють Bar і використовують лише + Foo, вони все ще пов'язані умовами GPL, оскільки Bar + Foo був GPL'd." Ти впевнений? Foo все ще отримав ліцензію під ліцензією Boost. Як я розумію, ліцензію Boost не слід видаляти навіть у поєднанні з GPL-кодом. ("Ліцензія на [...] вище ліцензії, це обмеження та наступна відмова від відповідальності повинні бути включені до всіх копій Програмного забезпечення, повністю або частково, і всіх похідних творів Програмного забезпечення [...]")
lesderid

2
@ GlenH7 Зрозуміло, але чи їм навіть дозволяти повторне використання ліцензії Fooв рамках GPL? Субліцензування було б добре, але тоді їм також доведеться зберігати ліцензію Boost Bar+Foo, чи не так?
лесдерід

8

Під терміном "сумісність із GPL" вони мають на увазі ліцензію, яка не суперечить GPL. Менш обмежувальна ліцензія, як ліцензія Boost, "сумісна" з GPL, оскільки вона не обмежує користувачів коду робити те, що дозволить користувачеві GPL. Тобто ліцензія Boost дозволяє людям вільно копіювати, а саме те, що GPL вимагає, щоб люди дозволяли.

Прикладом ліцензії, яка не є "сумісною", може бути ліцензія, яка вимагала плати оригінальним авторам для розповсюдження користувачів. Оскільки GPL прямо дозволяє і безкоштовне, і платне розповсюдження, ця більш обмежена ліцензія не буде сумісною.

Іншими словами, GPL говорить: "Ви повинні дозволити $ A, $ B і $ C". Сумісна будь-яка ліцензія, яка дозволяє $ A, $ B, $ C, а також $ D і $ E. Ліцензії, яка дозволяла б $ A і $ B, але не $ C, не буде.


4
Тож нова, комбінована робота повністю ліцензована відповідно до GPL, правда? Але оригінальний код, ліцензований під MIT, все ще може поширюватися окремо під MIT, не працюючи з GPL, правда?
Роберт Харві

1
IANAL, але так, саме так воно працює.
Фабіо Фракассі

4
" тому що це не обмежує користувачів коду робити те, що GPL дозволило б користувачеві робити " - А також тому, що це не заважає користувачеві робити що-небудь, що GPL вимагатиме від них.
Росс Паттерсон

2
Незначний нітпік, але GPL фактично не забороняє стягувати плату за майже будь-що; дивіться gnu.org/licenses/gpl-faq.html#DoesTheGPLAllowMoney
Maximus Minimus

1
Я впевнений, що GPL дозволяє будь-кому стягувати плату за розповсюдження, але не дозволяє людям вимагати від інших платників, якщо вони розповсюджують себе. Іншими словами, я можу стягнути плату за копію, але я не можу вимагати від вас надіслати мені платіж, якщо ви дасте копію третій стороні.
Gort the Robot

1

Ви не помилилися: відповідь на поширені запитання була неповною. Слід сказати, що комбінована програма повинна мати ліцензію відповідно до GPL, а не ліцензії, сумісної з GPL. З цього часу це було виправлено (див. Нижче: Я наголосив на важливій частині):

Так, оскільки програма насправді посилається на бібліотеку. Таким чином, умови GPL поширюються на всю комбінацію. Програмні модулі, які зв'язуються з бібліотекою, можуть мати різні ліцензії, сумісні з GPL, але робота в цілому повинна бути ліцензована відповідно до GPL . Дивіться також: Що означає сказати, що ліцензія "сумісна з GPL"?

Раніше я говорив, що "якщо бібліотека випущена під GPL, то будь-яке програмне забезпечення, яке її використовує, повинно бути під самим GPL через його так званого" вірусного "характеру. Дозвільна ліцензія, сумісна з GPL, така як boost, не може бути використана . " Під "програмним забезпеченням, яке його використовує" я мав на увазі комбіновані модулі та бібліотеку.


Я вважаю, що це звичайне непорозуміння. Не потрібно випускати свою частину коду під GPL, якщо у нього є сумісна ліцензія. Ліцензія зі свого боку також може бути більш дозвільною, але не меншою, ніж GPL. Лише комбінована робота залишається під GPL, тому додаткові обмеження GPL застосовуються лише в тому випадку, якщо ви використовуєте ваш код разом із пов'язаною бібліотекою GPL. Див gnu.org/licenses/gpl-faq.html#GPLModuleLicense
ЕРТ

1
Так, правильно. Моя оригінальна відповідь могла бути витлумачена неправильно. На щастя, це все спірно, оскільки Gnu оновили свої FAQ, щоб сказати правильно.
Bennett McElwee
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.