Лицензия MIT vs GPL - программирование

Лицензия MIT vs GPL

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

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

4b9b3361

Ответ 1

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

Правда - вообще. Вам не нужно открывать свои изменения, если вы используете GPL. Вы можете изменить его и использовать для своих целей, пока вы его не распространяете. НО... если вы его распределите, то ваш весь проект, использующий код GPL, также автоматически станет GPL. Это означает, что он должен быть открытым, а получатель получает все те же права, что и вы, то есть они могут развернуться и распространять его, модифицировать, продавать и т.д. И это будет включать в себя ваш собственный код, который тогда не будет дольше проприетарный - он становится открытым исходным кодом.

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

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

Да, очень.

Ответ 2

Можно ли включить лицензионный код GPL в лицензированный продукт MIT?

Вы можете. GPL - это бесплатное программное обеспечение, а также MIT, обе лицензии не ограничивают вас объединением кода, где "include" всегда имеет двусторонний характер.

В авторском праве на комбинированную работу (то есть две или более работ вместе образуют произведение), это не имеет большого значения, если одна работа "больше", чем другая.

Итак, если вы включили лицензионный код GPL в лицензированный продукт MIT, вы одновременно включите лицензионный продукт MIT в лицензионный код GPL.

В качестве второго мнения OSI перечислены следующие критерии (более подробно) для обеих лицензий (MIT и GPL):

  • Свободное перераспределение
  • Исходный код
  • Производные работы
  • Целостность исходного кода автора
  • Никакой дискриминации против лиц или групп
  • Никакая дискриминация против полей Индевор
  • Распространение лицензии
  • Лицензия не должна быть специфичной для продукта
  • Лицензия не должна ограничивать другое программное обеспечение.
  • Лицензия должна быть технологически нейтральной.

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

Если объединение двух работ считается производным, то это также не ограничено обеими лицензиями.

И обе лицензии не ограничивают распространение программного обеспечения.

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

GPL не требует, чтобы вы выпускали свои модификации только потому, что вы их создали. Это не точно.

Вы можете смешать это с распространением программного обеспечения под GPL, о котором вы не просили напрямую.

Правильно ли это - GPL является более ограничительным, чем лицензия MIT?

Вот как я это понимаю:

Что касается распределения, вам нужно поставить весь пакет под GPL. Код MIT внутри пакета по-прежнему будет доступен в MIT, тогда как GPL применяется к пакету в целом, если не ограничивается более высокими правами.

"Ограничительный" или "более ограничительный" / "менее ограничительный" во многом зависит от точки зрения. Для программного пользователя-пользователя MIT может привести к более ограниченному программному обеспечению, чем тот, который доступен в GPL, даже некоторые из них теперь называют GPL более ограничительным. Этот пользователь в конкретном случае будет называть MIT более ограничительным. Это просто субъективно сказать так, и разные люди дадут вам разные ответы на это.

Как только субъективно говорить об ограничениях разных лицензий, вы должны подумать о том, чего бы вы хотели добиться:

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

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

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

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