MIT против лицензии GPL [закрыто]

122

Лицензия MIT совместима с GPL. Совместима ли лицензия GPL с MIT? т.е. я могу включить код под лицензией MIT в продукт под лицензией GPL, но могу ли я включить код под лицензией GPL в продукт под лицензией MIT?

Мне кажется, что главное различие между лицензией MIT и GPL состоит в том, что MIT не требует, чтобы модификации были открытыми, тогда как GPL требует. Это правильно? Является ли GPL более строгой, чем лицензия MIT?

fruzer
источник
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 лицензии не позволяют вам делать с этим «что угодно». В эту категорию может попадать только код без лицензии. Cheers
Хорхе Орпинель
3
Снова неверно, это то, чем должен быть stackoverflow для stackoverflow.com/help/on-topic . Тот, кто думает, что это не по теме, так не делает. Тем не менее, у меня есть свобода выражения мнений, и это своего рода общественное место, так что ... Да. Вы просто не можете справиться с ошибкой. На самом деле я пытаюсь помочь вам и другим читателям, если могу. В любом случае, удачи
Хорхе Орпинель
8
@JorgeOrpinel "Только код без лицензии может попадать в эту категорию". Это очень неправильно, код без лицензии является СОБСТВЕННЫМ / "все права защищены". Если вы будете распространять код, созданный другими людьми без лицензии, вы рискуете получить много юридических проблем. Вы говорите, что пытаетесь «помочь себе и другим читателям», но подавать в суд на читателей не очень полезно. Просто к вашему сведению.
точка с запятой,
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.

Пока вы являетесь автором, решать вам.

Таким образом, самым строгим человеком является автор, независимо от того, какую лицензию он выбирает;)

hakre
источник
1
«Код MIT внутри пакета будет по-прежнему доступен в MIT», я не совсем уверен в этом. проект GPL + MIT должен превратиться в проект с открытым исходным кодом, включая часть MIT. В остальном LGPL менее навязчив для всего проекта.
magallanes
13
Хотя вы поясните позже в своем ответе, очень ошибочно начинать с утверждения, что «вы можете» включать код под лицензией GPL в проект под лицензией MIT. Проект, который изначально был лицензирован MIT, больше не может распространяться в целом по лицензии MIT, если он содержит код, доступный только по GPL.
антином
3
Также неверно утверждать, что ограничения являются субъективными. Разумный и не субъективный вопрос - «какие действия я могу законно выполнять с этими файлами, которые я получил?» Согласно GPL, этот набор действий фактически является правильным подмножеством того, чем эти действия были бы согласно MIT.
антином
1
@hakra: Включение кода под лицензией GPL в проект под лицензией MIT невозможно, потому что полученное целое больше не лицензируется MIT, даже если вы его не распространяете. (Если бы это было так, то условия лицензии MIT позволили бы вам распространять его!)
antinome
9
tl; dr: приложение с лицензией MIT может включать код GPL, но полученное приложение не лицензировано MIT.
антином
16

Вы правы, что GPL более строгие, чем лицензия MIT.

Вы не можете включать код GPL в лицензированный продукт MIT. Если вы распространяете комбинированную работу, которая сочетает в себе код GPL и MIT (за исключением некоторых конкретных ситуаций, например, «простая агрегация»), это распространение должно соответствовать GPL.

Вы можете включить лицензионный код MIT в продукт GPL. Вся объединенная работа должна распространяться в соответствии с GPL. Если вы внесли изменения в части кода MIT, вам необходимо будет опубликовать источник этих изменений, если вы распространяете приложение, содержащее код GPL и MIT.

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

JosephH
источник
3
если только проект не находится под двойной лицензией, например jquery.
buggedcom 08
7
@buggedcom - вы можете получить двойную лицензию на части, которые были под лицензией MIT, но вы не можете получить двойную лицензию на комбинированную библиотеку MIT / GPL - она ​​должна быть лицензирована только по GPL. (Вы не можете брать части под лицензией GPL и повторно лицензировать их по лицензии MIT, поскольку это противоречит условиям GPL). В случае с jQuery владельцы авторских прав на код выпустили его по двойной лицензии, так что это не проблема, но если они «позаимствовали» какой-то код GPL где-то еще, они больше не смогут лицензировать MIT объединенную работу. ,
Mark H
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.
JosephH
5

IANAL, но, как я вижу ...

Вы можете комбинировать код GPL и MIT, но GPL портит. Это означает, что пакет в целом получает ограничения GPL. Поскольку это более строгие ограничения, вы больше не можете использовать его в коммерческом (или, скорее, с закрытым исходным кодом) программном обеспечении. Это также означает, что если у вас есть проект MIT / BSD / ASL, вы не захотите добавлять зависимости в код GPL.

Добавление зависимости GPL не меняет лицензию вашего кода, но ограничивает то, что люди могут делать с артефактом вашего проекта. По этой же причине ASF не допускает зависимости от кода GPL для своих проектов.

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

tcurdt
источник
1
+1 На самом деле Microsoft отлично определяет эту проблему, GPL вирусна, потому что превращает каждый проект в открытый код.
magallanes
10
Это не проблема . GPL вирусна по своей задумке. Он предназначен для использования людьми, которые хотят сделать свой код бесплатным, чтобы другие люди могли использовать его так, как они хотят, но также требуют, чтобы другие люди , публикующие копии этого программного обеспечения или его производные, уважали пользователей таким же образом. GPL о пользователях . Речь идет не о компаниях, максимизирующих прибыль за счет государственных монополий, поэтому тот факт, что он рекурсивен, на самом деле является его красотой и силой, а не «проблемой», которую Microsoft может «точно определить». Не нужно особого понимания, чтобы признать, что GPL вирусна ~ Википедии достаточно.
Карл Смит