Часто задаваемые вопросы по лицензии MPL 2.0
Об этих вопросах
Это часто задаваемые вопросы по лицензии Mozilla Public License версии 2.0 (MPL 2.0). Этот текст призван ответить на наиболее распространенные вопросы людей об использовании и распространении кода в рамках MPL.
Пожалуйста, обратите внимание, что, хотя этот текст призван быть точным и полезным, он не является лицензией и может не охватывать важные вопросы, которые влияют на вас и вашу конкретную ситуацию. В результате чтение его не должно заменять чтение самой лицензии или обращение за юридической консультацией к юристу.
Если вы видите какие-либо ошибки в этом материале или у вас есть предложения по дальнейшим вопросам, пожалуйста, напишите по электронной почте licensing@mozilla.org .
Часто задаваемые вопросы MPL версии 1.1 по-прежнему доступны здесь, но их следует использовать только в качестве ссылки на ту лицензию.
О лицензии MPL
Вопрос 1: Что такое Публичная лицензия Mozilla (Mozilla Public License)?
MPL - это простая копилефтная лицензия. "Авторское лево" лицензии MPL "на уровне файла" предназначено для поощрения контрибьюторов делиться изменениями, которые они вносят в ваш код, в то же время позволяя им комбинировать ваш код с кодом под другими лицензиями (открытыми или проприетарными) с минимальными ограничениями.
Вопрос 2: Зачем нужна еще одна лицензия для открытого исходного кода?
Лицензия MPL заполняет полезное пространство в спектре лицензий на программное обеспечение со свободным и открытым исходным кодом, находясь между лицензией Apache, которая не требует раскрытия исходного кода внесенных изменений, и семейством лицензий GNU, которое требует такого раскрытия при гораздо более широком наборе обстоятельств, чем MPL.
Вопрос 3: Кто поддерживает MPL?
MPL поддерживается проектом Mozilla, глобальным некоммерческим сообществом, занимающимся повышением открытости, совместимости и расширением возможностей пользователей в Интернете. Проект Mozilla работает в рамках системы распределенных полномочий, известной как Система владения модулем (Module Ownership System). Как и у других модулей Mozilla, у лицензии MPL есть владелец модуля и участники, которые отвечают за поддержание лицензии. Текущий владелец и участники перечислены на странице Владельцев модулей.
Использование и распространение программного обеспечения по лицензии
Вопрос 4: Я хочу использовать Mozilla Public License для программного обеспечения, которое я написал. Что я должен сделать?
Чтобы применить Mozilla Public License к написанному вами программному обеспечению, добавьте заголовок из Приложения A лицензии к каждому файлу исходного кода в вашем проекте. Примеры заголовков для различных стилей комментариев доступны здесь. Вы также можете добавить дополнительные точные уведомления об авторском праве, такие как имя правообладателя, но в этом нет необходимости.
Вопрос 5: Я хочу использовать программное обеспечение, доступное в рамках MPL. Что я должен сделать?
Ничего. Как и все другое бесплатное программное обеспечение с открытым исходным кодом, программное обеспечение, доступное по лицензии MPL, доступно любому (включая частных лиц и компании) для использования в любых целях. MPL налагает на вас обязательства только если вы хотите распространять программное обеспечение за пределами своей организации.
Вопрос 6: Я хочу распространять программное обеспечение, доступное по лицензии MPL, модифицированное или нет, в моей организации. Что я должен сделать?
Ничего. Право на частную модификацию и распространение (такое действие внутри компании или организации считается "частным") - это еще одно право, гарантированное лицензиями на бесплатное программное обеспечение с открытым исходным кодом, включая MPL.
Вопрос 7: Я хочу распространять (за пределами моей организации) полные и неизмененные исполняемые программы, созданные на основе чужого программного обеспечения, использованного мною по лицензии MPL. Что я должен сделать?
До тех пор, пока люди, которые предоставили вам программу, соблюдали MPL, то как правило, ничего. Чтобы проверить и убедиться, что люди, которые предоставили вам программу, соблюдали MPL, найдите уведомление, в котором указано, где доступно программное обеспечение в форме исходного кода (т.е. проверьте, соответствует ли оно разделу 3.2(a)), а затем проверьте, доступен ли исходный код в этом месте, включая уведомление, в котором сообщается, что исходный код доступен в соответствии с условиями MPL (т.е. проверьте, соответствует ли он разделу 3.1).
Если вы распространяете только библиотеки или распространяете только некоторые части программы в том виде, в каком вы ее получили, возможно, вам потребуется предпринять дополнительные шаги, чтобы убедиться, что пользователи вашей программы надлежащим образом проинформированы об их правах, как того требует раздел 3.2(a).
В случае Mozilla Firefox исполняемые программы, предоставляемые Mozilla, уже соответствуют требованиям раздела 3, включая уведомления, требуемые разделами 3.1 и 3.2.
Если вы хотите добавить свои собственные условия при распространении программного обеспечения, раздел 3.2(b) требует, чтобы эти условия не ограничивали права получателя в соответствии с MPL, и если вы предоставляете гарантию на программное обеспечение, раздел 3.5 требует, чтобы вы четко указали, что она предлагается только вами.
Вопрос 8: Я хочу распространять (за пределами моей организации) исполняемые программы или библиотеки, которые я скомпилировал из чужого неизмененного исходного кода под лицензией MPL, либо отдельно, либо как часть более крупной работы (larger work). Что я должен сделать?
Вы должны сообщить получателям, где они могут получить исходный код, лицензированный под MPL, в распространяемой вами исполняемой программе или библиотеке (т.е. вы должны соблюдать раздел 3.2). Вы можете распространять любые созданные вами исполняемые файлы по лицензии на ваш выбор, если эта лицензия не нарушает права получателей на исходный код в соответствии с условиями MPL.
Вопрос 9: Я хочу распространять (за пределами моей организации) исходный код с лицензией MPL, который я модифицировал. Что я должен сделать?
Чтобы ознакомиться с полным набором требований, прочтите лицензию. Однако, в целом:
- Вы должны сообщить получателям, что исходный код предоставляется им в соответствии с условиями MPL (раздел 3.1), включая любые созданные вами Модификации (как определено в разделе 1.10).
- Вы должны предоставить разрешения, описанные в разделе 2 лицензии.
- Вы должны соблюдать ограничения на удаление или изменение уведомлений в исходном коде (раздел 3.4).
Вопрос 10: Я хочу распространять (за пределами моей организации) исполняемую программу, основанную на исходном коде, использованном мною по лицензии MPL, который я модифицировал. Что я должен сделать?
Вы должны предоставить доступ к частям исходного кода, использованном вами по лицензии MPL, как описано в предыдущем вопросе, и сообщить получателям, как они могут получить такой исходный код (раздел 3.2).
Другие распространенные вопросы
Вопрос 11: Насколько "вирусной" является MPL? Если я использую код по лицензии MPL в своем проприетарном приложении, придется ли мне раскрывать весь исходный код?
Нет. Лицензия требует, чтобы Модификации (как определено в разделе 1.10 лицензии) были лицензированы в соответствии с MPL и были доступны любому, кому вы распространяете Исходный код. Однако новые файлы, не содержащие код, лицензированный по MPL, не являются Модификациями, и поэтому их код не нужно раскрывать в соответствии с условиями MPL, даже если вы создаете Крупную Работу (см. Larger Work как определено в разделе 1.7), используя, компилируя или распространяя файлы, отличные от MPL, вместе с файлами, лицензированными по MPL. Это позволяет, например, статически связывать программы, использующие код с лицензией MPL, и распространять их как часть более крупного проприетарного программного обеспечения, что обычно невозможно в соответствии с условиями более строгих копилефтных лицензий.
Вопрос 12: Как копилефтная часть лицензии MPL соотносится с копилефтными LGPL и GPL?
Вообще говоря, область действия лицензий MPL, LGPL и GPL можно резюмировать следующим образом:
- MPL: "Авторское лево" применяется к любым файлам, содержащим код MPL.
- LGPL: "Авторское лево" применяется к любой библиотеке, основанной на коде LGPL.
- GPL: "Авторское лево" распространяется на все программное обеспечение, основанное на коде GPL.
Однако мы бы рекомендовали прочесть лицензи, чтобы лучше понять их сферу применения и, в частности, понять, как LGPL и GPL определяют понятие "на основе".
Вопрос 13: Могу ли я объединить код с лицензией MPL и код с лицензией BSD в одной и той же исполняемой программе? А как насчет Apache?
Ответ для обоих случаев - да. В настоящее время Mozilla делает это с помощью кода под лицензией BSD. Например, libvpx, который используется в Firefox для декодирования видео WebM, лицензируется под BSD.
Вопрос 14: Могу ли я объединить код по лицензии MPL и код по лицензии (L)GPL в одной и той же исполняемой программе?
Да, путем создания "Крупной работы" (Larger Work) в соответствии с условиями раздела 3.3. В частности, должны быть выполнены следующие три требования:
- Программное обеспечение не должно быть “несовместимым со Вторичными лицензиями” (Secondary Licenses). Программное обеспечение может стать “Несовместимым со Вторичными лицензиями” одним из двух способов: первоначальный автор помечает его как таковое, добавляя заголовок файла в Приложении B, или первоначальный автор опубликовал программное обеспечение по лицензии MPL версии 1.1 и не использовал двойное или тройное лицензирование кода с лицензией(ями) (L)GPL.
- Крупная Работа должна представлять собой "комбинацию Программного обеспечения с произведением, в отношении которого действует одна или несколько Вторичных лицензий". Таким образом, вы не можете просто сказать: "Я действительно предпочитаю (L)GPL" - у вас должна быть потребность в сочетании с другим существующим произведением, лицензированным под GPL. (Это отличается от традиционной двойной лицензии, которая не требует от вас объединения, а вместо этого позволяет вам просто сказать: "Я решил использовать только GPL".)
- Вы должны "дополнительно распространять" в соответствии с лицензией (L)GPL. Другими словами, вы должны предоставить исходный код с лицензией MPL своим получателям как под лицензией MPL, так и лицензией (L)GPL. Кто-то из последующих ваших пользователей может затем использовать только лицензию (L)GPL или только лицензию MPL. Это отличается от традиционной двойной лицензии, которая никогда не требует публикации под обеими лицензиями и поэтому всегда дает вам возможность выпустить код с несовместимой лицензией.
Никакая лицензия, совместимая с GPL, не может полностью сохранить способность оригинального автора повторно использовать производные произведения, но последние два ограничения повышают вероятность того, что такое повторное использование может произойти при максимально разнообразных обстоятельствах.
Мы написали документ, объясняющий, как это сделать на практике, т.е. что делать с заголовками лицензий и так далее.
Вопрос 15: Приводит ли возможность раздела 3.3 лицензии сочетать её с другими лицензиями к большему разнообразию лицензий?
Опыт Mozilla касательно лицензии MPL 1.1 и опыт некоторых наших консультантов показали, что на практике несовместимость лицензий часто устраняется с помощью пользовательских дополнительных разрешений или двойных и тройных лицензий. Каждая комбинация двойной или тройной лицензии или пользовательских дополнительных разрешений еще больше усложняет взаимодействие с лицензиями и анализ разнообразия. Мы считаем, что раздел 3.3, заменив эти разовые решения единым стандартизированным решением для наиболее распространенных ситуаций, должен снизить, а не увеличить практический риск разнообразия лицензий.
Вопрос 16: Является ли исходный код JavaScript "уменьшенным"?
Нет. Уменьшенный JavaScript, хотя и не является "исполняемым" в смысле разработки программного обеспечения, является языком, сложным для чтения, редактирования и изменения человеком. Как таковой, он не является "предпочтительной формой для модификации" и поэтому не является Исходным Кодом (Source Code), как определено лицензией. Следовательно, уменьшенный JavaScript является Исполняемой формой (Executable form), и при распространении уменьшенного JavaScript, лицензированного под MPL, вами должны соблюдаться обязанности лицензии, относимые к распространению Исполняемой формы.
Это означает, среди прочего, что вам не нужно и, вероятно, не следует сохранять шаблон MPL (который начинается со слов: "Эта форма Исходного кода ...") при уменьшении JavaScript. Однако вам необходимо соблюдать раздел 3.2(a), сообщив получателям уменьшенного исходного кода, как они могут получить его копию. Как именно вы это сделаете, будет зависеть от того, как они смогут получить эту копию, но один из способов - добавление комментария со ссылкой на исходный код либо на странице, на которой используется JavaScript, либо в самом файле JavaScript.
Обратите внимание, что обработка уменьшенного JavaScript в качестве исполняемого файла повышает гибкость дистрибьютора кода, позволяя объединять код под лицензией MPL в один файл с исходным кодом JavaScript, лицензируемого под другой лицензией, не требуя распространения кода под такой другой лицензией в соответствии с условиями MPL.
Вопрос 17: Что означает "распространять"?
MPL использует понятие "распространять" в смысле доставки копии программного обеспечения другому физическому или юридическому лицу. Мы не используем слово "распространять" в значении "предоставлять доступ" в понимании как "предоставлять функциональность через Интернет без доставки копии программного обеспечения". Так, например, в веб-приложении код, который выполняется на сервере, не "распространяется" пользователю, но код, который отправляется клиенту (например, HTML, CSS, JavaScript), считается "доставленным" пользователю.
Вопрос 18: Следует ли использовать MPL для иных произведений, кроме программного обеспечения?
MPL была написана применительно для программного обеспечения и, как правило, должна использоваться именно для программного обеспечения. Однако, для согласованности и простоты MPL может быть целесообразно использована для иных произведений (таких как документация, изображения и звуковые файлы), которые написаны в основном для использования в программном обеспечении, лицензированном под MPL.
Вопрос 19: Могу ли я удалить или изменить уведомления, отображаемые во фрагментах программного обеспечения?
Раздел 3.4 запрещает большинство изменений в уведомлениях о лицензии, которые видны при просмотре исходного кода. Мы не поощряем изменение уведомлений о лицензировании и уведомлениях, которые отображаются при запуске программного обеспечения. Однако такие изменения разрешены лицензией, так что исходный код может быть повторно использован между программами с очень разными пользовательскими интерфейсами.
Вопрос 20: Я скачал копию некоторого программного обеспечения MPL. Являюсь ли я "правообладателем" этого программного обеспечения для целей раздела 1.1?
Нет. Простое скачивание программного обеспечения не делает вас правообладателем в понимании раздела 1.1.
Вопрос 21: Дает ли MPL 2.0 мне разрешение на создание собственной лицензии путем изменения MPL?
Да, но, как и в случае с MPL 1.1, мы настоятельно не рекомендуем вам этого делать. Это почти наверняка сделает ваше программное обеспечение гораздо менее популярным и менее широко используемым. Разработчики программного обеспечения и компании уже знают и понимают популярные лицензии, такие как MPL. Если вы создадите свою собственную, им придется провести юридическую оценку ваших изменений - и они могут прийти к выводу, что это не стоит усилий. Или вы можете случайно сделать свое программное обеспечение несовместимым с Определением свободного программного обеспечения (Free Software Definition) или Определением открытого исходного кода (Open Source Definition), или с другими часто используемыми лицензиями на свободное программное обеспечение, с которыми совместима лицензия MPL 2.0.
Если вам нравится лицензия MPL 2.0, просто используйте ее как есть - это ясная, современная, универсальная лицензия без привязки к конкретной юрисдикции. В условиях лицензирования нет ничего специфичного для Mozilla или конкретной страны или проекта.
Для получения дополнительной информации о проблемах, связанных с созданием собственной лицензии, см. статью Википедии о разнообразии лицензий.
Вопрос 22: Требует ли MPL 2.0, чтобы заголовок уведомления о лицензии MPL 2.0 включался в каждый файл?
Уведомление о лицензии должно быть каким-то образом "прикреплено" к каждому файлу (см. раздел 1.4.) В случаях, когда поместить его в файл невозможно или нецелесообразно, это требование может быть выполнено путем размещения уведомления в месте, где получатель "скорее всего, будет искать такое уведомление", например, в файле LICENSE в том же каталоге, что и файл (Прил. A.). Уведомление о лицензии должно быть как можно короче (3 строки), чтобы упростить его размещение как можно в большем количестве файлов различных типов.
В то время как лицензия разрешает размещать заголовок где-то, кроме самого файла, отдельные файлы часто распространяются сами по себе, без остального программного обеспечения, с помощью которого они были созданы. Как итог, размещение уведомления о лицензии в файле является самым надежным способом гарантировать, что получатели всегда будут уведомлены.
Для вашего удобства Mozilla создала стандартные заголовки, отформатированные с использованием нескольких распространенных синтаксисов "комментариев", подходящих для копирования и вставки.
Вопрос 23: Что означает "использованный" в определении "Контрибьюторской версии" (раздел 1.2)?
“Использованный” в разделе 1.2 означает результат действия, предпринятого в процессе создания Контрибьюта или Модификации.
Вопрос 24: "Контрибьютор" означает того, кто создает "Программное обеспечение", а понятие "Программное обеспечение" включает "Исполняемую форму" исходного кода, лицензированного под MPL. Означает ли это, что компиляция неизмененного кода для создания исполняемого файла делает кого-то Контрибьютором?
Нет. Мы предполагаем, что Контриьюторами будут те, кто создал дополнение или изменение в программе, которое добавляет новое выражение - защищенный авторским правом материал - в уже существующий код. Простая компиляция не является актом авторства, она не создает такого дополнения и, следовательно, не делает вас Контрибьютором.
Вопрос 25: Что произойдет, если кто-то не будет использовать шаблон для каждого файла, а просто предоставит копию полного текста MPL 2.0 со своим кодом?
Код явно лицензирован под MPL 2.0. Это не считается несовместимым со Вторичными лицензиями. Создание кода, несовместимого со Вторичными лицензиями, требует активного выбора со стороны лицензиара; это не значение по умолчанию. Уведомление в Приложении B не считается "приложенным" просто потому, что оно присутствует в качестве Приложения B копии полного текста MPL 2.0.
Единственным исключением является случай, когда код был лицензирован под MPL 1.1 и был обновлен до лицензии MPL 2.0, и в этом случае он был бы несовместим со Вторичными лицензиями (раздел 1.5 b).
Вопрос 26: Я хотел бы распространять исходный код с помощью курьера или других физических средств. Является ли это "разумным" для целей выполнения моих обязательств в соответствии с разделом 3.2(a)?
В современной разработке программного обеспечения распространение происходит почти исключительно через Интернет из-за удобства и низкой стоимости. В то время как MPL допускает альтернативы, когда это необходимо, в целом любое средство (например, курьер), который увеличивает стоимость и сложность без конкретной, необходимой цели для его использования, не является разумным и поэтому не соответствует требованиям раздела 3.2(a).