Ліцензія MIT vs GPL [закрита]


122

Ліцензія MIT сумісна з GPL. Чи сумісна ліцензія GPL MIT? тобто я можу включати ліцензований код MIT в продукт, що має ліцензію GPL, але чи можу я включати код з ліцензією GPL в продукт, що має ліцензію MIT?

Мені здається, головна відмінність між ліцензією MIT і GPL полягає в тому, що MIT не вимагає відкритих змін, тоді як GPL це робить. Це правильно? Чи GPL є більш обмежувальним, ніж ліцензія MIT?


1
en.wikipedia.org/wiki/MIT_License Ліцензія також сумісна з GPL, це означає, що ...
Майкл Петротта

Відповіді:


76

Мені здається, головна відмінність між ліцензією MIT і GPL полягає в тому, що MIT не вимагає відкритих змін, тоді як GPL це робить.

Щоправда - загалом. Вам не доведеться відкривати джерела змін, якщо ви використовуєте GPL. Ви можете змінити його та використовувати для власних цілей до тих пір, поки не поширюєте його. АЛЕ ... якщо ви РОЗРОБИТИ його, то весь ваш проект, який використовує код GPL, також автоматично стає GPL. Це означає, що він повинен бути відкритим, і одержувач отримує всі ті ж права, що і ви - тобто вони можуть обертатись та розповсюджувати, змінювати, продавати і т. Д. І це буде включати ваш власний код, який тоді ні довше бути власником - це стає відкритим кодом.

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

чи GPL є більш обмежувальним, ніж ліцензія MIT?

Так, дуже.


16
Можна лише зазначити, GPL не робить програмне забезпечення "відкритим кодом". Програмне забезпечення під GPL стає БЕЗКОШТОВНИМ (як захист свободи свого користувача). Вільне програмне забезпечення - це рух старіший і змістовніший, ніж відкритий матеріал. Ось стаття про відмінності: gnu.org/philosophy/open-source-misses-the-point.html . Спасибі
Хорхе Орпінель

11
З тих же причин можна стверджувати, що MIT є більш обмежуючим, оскільки він не захищає всіх свобод користувача та може призвести до приватизації програмного забезпечення (= обмеження та втрата користувачем свого контролю). Ще раз дякую
Хорхе Орпінель

3
@tcurdt Чому це не "правильне місце" для розмови про свободу? Чому самоцензура? І ні, на жаль, це не те, що означає "вільний". Навіть "відкритий" означає це. Щоб уточнити, ні ліцензії MIT, ні GPL не дозволяють вам робити що-небудь із цим. Тільки код без ліцензії може потрапити до цієї категорії. Ура
Хорхе Орпінел,

3
Знову ж помилково, це те, що має бути stackoverflow для stackoverflow.com/help/on-topic . Хтось думає, що це поза темою, це не робить це так. Незважаючи на те, у мене є свобода вираження поглядів, і це свого роду публічний простір, так що ... Так. Ви просто не можете впоратися з помилкою. Насправді я намагаюся допомогти вам та іншим читачам, якщо зможу. У будь-якому випадку, удачі
Хорхе Орпінель,

8
@JorgeOrpinel "У цю категорію може потрапити лише код без ліцензії." Це дуже неправильно, код без ліцензії є ВЛАСНИМ / "всі права захищені". Якщо ви обійдетесь і перерозподілите код, який інші люди зробили без ліцензії, ви ризикуєте мати багато юридичних проблем. Ви кажете, що намагаєтесь "допомогти вам та іншим читачам", але подати до суду на читачів не дуже корисно. Просто FYI.
крапка з комою

45

Чи можу я включити ліцензійний код GPL у продукт, що має ліцензію MIT?

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

Авторські права на комбінований твір (тобто два чи більше творів утворюють твір разом), це не має великої різниці, якщо одна робота "більша", ніж інша чи ні.

Отже, якщо ви включите ліцензійний код GPL в продукт, що має ліцензію MIT, ви одночасно будете включати ліцензований продукт MIT і в ліцензійний код GPL.

В якості другої думки OSI перераховував такі критерії (більш детально) для обох ліцензій (MIT та GPL):

  1. Безкоштовний перерозподіл
  2. Вихідний код
  3. Отримані твори
  4. Цілісність вихідного коду автора
  5. Немає дискримінації щодо осіб або груп
  6. Немає дискримінації щодо сфер діяльності
  7. Поширення ліцензії
  8. Ліцензія не повинна бути специфічною для продукту
  9. Ліцензія не повинна обмежувати інше програмне забезпечення
  10. Ліцензія повинна бути нейтральною за технологією

Обидва дозволяють створити комбіновані твори, про що ви і просили.

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

І обидві ліцензії не обмежують розповсюдження програмного забезпечення.

Мені здається, головна відмінність між ліцензією MIT і GPL полягає в тому, що MIT не вимагає відкритих змін, тоді як GPL це робить.

GPL не вимагає, щоб ви звільняли свої модифікації лише тому, що ви їх внесли. Це не точно.

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

Це правильно - чи GPL є більш обмежувальним, ніж ліцензія MIT?

Ось як я це розумію:

Що стосується кількості розповсюдження, то весь пакет потрібно помістити під GPL. Код MIT всередині пакета все ще буде доступний під MIT, тоді як GPL застосовується до пакету в цілому, якщо не обмежується вищими правами.

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

Оскільки просто суб'єктивно говорити про обмеження різних ліцензій, вам слід подумати над тим, чого ви хочете досягти замість цього:

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

Поки ти автор, ти можеш вирішити.

Таким чином, найбільш обмежувальною особою є автор, незалежно від того, яку ліцензію хтось обрав;)


1
"Код MIT всередині пакета все ще буде доступний під MIT", я не повністю впевнений у цьому. проект GPL + MIT повинен перетворити проект з відкритим кодом, включаючи частину MIT. З іншого боку, LGPL менш нав'язливий для всього проекту.
magallanes

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

3
Також оманливим є твердження, що обмежуваність є суб'єктивною. Це розумне і не суб'єктивне запитання "які дії я можу легально виконувати з отриманими ними файлами?" Відповідно до GPL, цей набір дій насправді є належним набором того, що ці дії були б у MIT.
antinome

1
@hakra: Включення GPL-ліцензованого коду в проект, що має ліцензію MIT, неможливий, оскільки отримане ціле більше не має ліцензії на MIT, навіть якщо ви не поширюєте його. (Якби це було, то умови ліцензії MIT дозволили б вам її поширити!)
antinome

9
tl; dr: Додаток, що має ліцензію MIT, може включати код GPL, але отриманий додаток не має ліцензії на MIT.
antinome

16

Ви впевнені, що GPL є більш обмежувальним, ніж ліцензія MIT.

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

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

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


3
якщо проект не має подвійної ліцензії, наприклад jquery.
buggedcom

7
@buggedcom - Ви можете подвоїти ліцензію на частини, що були під ліцензією MIT, але ви не можете подвоїти ліцензію на комбіновану бібліотеку MIT / GPL - вона повинна бути ліцензована лише під GPL. (Ви не можете брати запчастини з ліцензією GPL та повторно ліцензувати їх за ліцензією MIT, оскільки це суперечить умовам GPL). Що стосується jQuery, власники авторського права коду випустили його під подвійною ліцензією, тому це не проблема, але якби вони "запозичили" якийсь GPL-код десь в іншому місці, вони більше не зможуть MIT ліцензувати комбіновану роботу .
Марк Н

AFAIK це не зовсім так. Відповідно до FSF, GPL сумісний з ліцензією MIT [1] На жаль, це не змінює того факту, що сам проект вже не повністю покривається ліцензією MIT ... на що люди зазвичай очікують. Ви більше не зможете використовувати проект у цілому в комерційному контексті, не випускаючи код. Щоб уникнути цієї плутанини, краще не включати GPL-код у ліцензований проект MIT. Те, що ви не можете, помиляється. [1] gnu.org/licenses/license-list.html#SoftwareLicenses
tcurdt

... але я думаю, це залежить від того, що ви визначаєте як "продукт"
tcurdt

2
Продукт з ліцензією MIT (можливо, «додаток» краще слово) не може містити код GPL. Ви можете додати код GPL до продукту MIT, але отриману програму можна поширювати лише за ліцензією GPL. Я ніколи раніше не бачив, щоб хтось описував програму, яку можна розповсюджувати лише за умовами GPL як "ліцензований продукт MIT". Якщо ліцензії не були "сумісними", ви взагалі не могли б створити комбіновану роботу - той факт, що вони сумісні, означає, що ви можете виробляти комбіновану роботу, яку ви можете розповсюджувати та має ліцензію GPL.
ДжозефH

5

IANAL але як я бачу….

Хоча ви можете комбінувати GPL та MIT-код, GPL вказує. Що означає, що пакет в цілому отримує обмеження GPL. Оскільки це більш обмежувальне, ви більше не можете використовувати його в комерційному (а точніше закритому джерелі) програмному забезпеченні. Що також означає, що якщо у вас є проект MIT / BSD / ASL, ви не хочете додавати залежності до GPL-коду.

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

http://www.apache.org/licenses/GPL-compatibility.html


1
+1 Насправді Microsoft ідеально визначила цю проблему, GPL є вірусною, оскільки перетворює кожен проект у відкритий код.
magallanes

10
Це не проблема . GPL є вірусною за конструкцією. Він призначений для використання людьми, які хочуть зробити свій код безкоштовним для використання іншими людьми, але вони вимагають, щоб інші люди, які публікують копії цього програмного забезпечення або похідної продукції, так само поважали користувачів. GPL розповідає про користувачів . Йдеться не про те, щоб компанії максимізували прибуток за допомогою державних монополій, тому факт рекурсивності - це насправді краса та сила, а не «проблема», яку Microsoft може «точно визначити». Не потрібно особливого розуміння, щоб визнати, що GPL вірусний. Вікіпедії достатньо.
Карл Сміт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.