Требует ли лицензия MIT с открытым исходным кодом, чтобы производные работы были обнародованы (в соответствии с лицензией MIT)?

9

Я ищу лицензию с открытым исходным кодом для библиотеки, которую я хочу опубликовать. В идеале, нужно разрешить использовать эту библиотеку в бесплатных или коммерческих приложениях, не платя мне плату, но если создается какая-либо производная работа из библиотеки (например, любое улучшение библиотеки), она должна быть доступна для всех в соответствии с этим. та же лицензия.

Другими словами, я хочу изложить следующую этику: «Вы получаете выгоду от этой работы бесплатно, и если вы улучшите ее, я тоже получу выгоду от вашего улучшения бесплатно». Это лицензия с авторским левом, которую я ищу.

Лицензия MIT выглядит как возможное решение, но мне неясно, ДОЛЖНЫ ли ОБЯЗАТЕЛЬНО быть доступны производные работы кода, охватываемого этой лицензией, ПУБЛИЧНО для всех. Кто-нибудь может уточнить / подтвердить это? Если есть другая более подходящая лицензия с открытым исходным кодом, отвечающая моим потребностям, я тоже заинтересован. Спасибо.

Жером Верстринг
источник
Немного более подробное обсуждение здесь: programmers.stackexchange.com/questions/12394/…
Дипан Мехта

Ответы:

9

Лицензия MIT не требует, чтобы производные работы были открыты. Вы ищете GPL .

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

Муравей
источник
1
GPL вынуждает пользователя публиковать производную работу под GPL, которая выдвигает слишком много ограничений. Я только хочу, чтобы модификации моей библиотеки были доступны. Должен ли я использовать LGPL?
Жером Верстринг
8
В этом случае, да - LGPL является более подходящим.
Муравей
Обратите внимание, что (L) GPL срабатывают только при перераспределении. Конечный пользователь, который создает производное произведение только для частного использования, не связан обязательствами (L) GPL. Т.е. строго говоря это не ответ на поставленный вопрос.
MSalters
7
@MSalters: Я думаю , что это было бы почти невозможно знать , что кто - то что - то выводится из вашего кода , если они не опубликованы его в какой - либо форме, делая этот вопрос несколько спорный вопрос.
Муравей
6

Короткий ответ

Комбинация Eclipse Public License и LGPL обеспечивает именно то, что вы хотите: изменения кода должны быть доступны, но использование кода в более крупном продукте не приводит к повторному лицензированию более крупного продукта. Комбинация необходима для того, чтобы код мог использоваться как в проектах GPL, так и не-GPL.

Это способ, которым такие проекты, как JGraphT, сделали. Они обновили свой проект под EPL и LGPL. Мотивация и порядок действий описаны в их вики .

Длинный ответ

Я думаю, Общественная Лицензия Mozilla ( MPL ) или публичная лицензия Eclipse ( EPL ) - это лицензия, которую вы ищете, потому что «если создается какая-либо производная работа из библиотеки (например, любое улучшение библиотеки), она [IS ] доступно всем под той же лицензией. "

Лицензия MPL и EPL находится между GPL и MIT.

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

GPL заставляет пользователя отдавать все код сообществу, даже если ваша библиотека составляет всего 1% от всего продукта.

LGPL заставляет пользователя отказаться от модификации LGPL-части кода.

MPL и EPL похожи на LGPL: это также вынуждает пользователя сделать модифицированный источник доступным. «Модифицированный источник» включает в себя только часть кода, покрытого MPL / EPL. Это означает, что пользователь может создать новый продукт из вашей библиотеки. Если он делает модификацию MPL- / EPL-части, он должен опубликовать ее. Новые вещи им не нужно публиковать.

Я считаю, что MPL / EPL более уместен, поскольку LGPL явно говорит о «библиотеках», а MPL просто говорит о «покрытом программном обеспечении» (что является более широким охватом).

Однако выбор EPL вызывает проблемы при объединении программного обеспечения с программным обеспечением GPL: EPL несовместим с GPL . Это не тот случай, если вы просто используете MPL .

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

Примеры

  • JGraphT
  • Logback
  • qooxdoo . Они планируют «упростить и модернизировать условия лицензирования qooxdoo» и, таким образом, они перейдут с двойного лицензирования на MIT.
koppor
источник
Не могли бы вы объяснить, почему вы считаете, что MPL соответствует критериям, которые ищет ОП?
maple_shaft
Должна ли «двойная лицензия» выглядеть как «если вы используете это программное обеспечение в продукте GPL, это программное обеспечение предоставляется вам по лицензии GPL, иначе - по лицензии MPL»? Есть ли проекты, которые делают такую ​​вещь?
9000
@ 9000 Согласно FAQ в GNU , код распространяется как на MPL, так и на GNU. Второй абзац немного странный, и я не совсем понял последствия.
Коппор