licensing/ru

From Free Pascal wiki
Jump to navigationJump to search

English (en) русский (ru)

Light bulb  Примечание: Эта страница ссылается на Lazarus иногда вводящим в заблуждение образом. Это либо относится к Lazarus в целом, либо делает различие между «библиотеками» и «средой» (IDE).
Однако «библиотеки» в этом контексте должны быть ограничены LCL (код в папке /lcl/ ). Другие библиотеки (например, в папке компонентов) иногда следуют лицензированию LCL, но иногда имеют совершенно другие лицензии.


Лицензирование использования FPC / Lazarus

Лицензирование Free Pascal довольно либерально, включая некоторые дополнительные условия, чтобы избежать опасений некоторых людей и некоторых практических проблем, связанных с лицензированием LGPL/GPL. Основное отличие состоит в том, что статическое связывание с библиотеками времени выполнения(runtime libraries) FPC разрешено поверх LGPL, что допускает только совместно используемое связывание. Создание таких исключений довольно стандартно для библиотек времени выполнения(runtime libraries): GPL with linking exception. LGPL является таким исключением, которое предназначено для связывания общих объектов; модификация FPC идет на шаг впереди и также допускает статическое связывание.

Базовый принцип лицензирования заключается в том, что использование FPC и его библиотек должно быть возможно нормальным и ответственным образом. Это означает, что все, что связано с программами конечных пользователей, должно быть использовано в коммерческих программах в классическом смысле, без кучи дополнительных пунктов, которые затрудняют лицензирование. Это реализуется путем выбора лицензии LGPL с дополнительными пунктами, которые устраняют любые сомнения или двоякие толкования в отношении статических ссылок. Эта комбинированная лицензия (формальный текст LGPL + дополнительное устранение неоднозначности FPC) обычно обозначается как "FPC modified LGPL". Положение такое:

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

Это условие в основном предназначен для того, чтобы избежать (возможно, даже оправданной) неопределенности в отношении пунктов LGPL "shared linking only"(только совместное связывание) и "reverse engineering"(обратная обработка).

Lazarus следует тем же принципам.

Лицензирование, относящееся к самой программе FPC (компилятор)/Lazarus (IDE)

Бинарные файлы FPC и Lazarus в основном имеют лицензию GPL. Однако продукты, созданные с помощью программ GPL, не подпадают под действие GPL автоматически, поэтому это применимо только в том случае, если вы изменяете или интегрируете (путем статической компоновки) сам двоичный код ядра компилятора. Поскольку существует много неправильных представлений о реальном значении GPL, в случае сомнений лучше СПРОСИТЕ (на форуме или в списках рассылки)!

Ниже приведены некоторые из наиболее популярных заблуждений и их опровержения:

  • Если я распространяю FPC с моим приложением для внутренних сценариев, я также должен включить в пакет исходный код FPC.
Нет, ссылки на сайт FPC в приложении об авторских правах достаточно, хотя вы должны хранить исходный код самостоятельно в течение трех лет, см. следующий абзац.
  • Если я изменяю FPC и распространяю его вместе со своим приложением (но я не связан с ним), я должен отправить исходный код своего приложения.
Нет, только если вы свяжете свое приложение с кодом под GPL. Если вы его включаете в пакет, публикация модификаций (измененного исходного кода) на вашем сайте или ресурсе с дистрибутивом будет достаточно.
  • Если я ссылаюсь на код GPL, я должен публиковать свои собственные исходники.
Да, но только если вы распространяете их за пределами своей организации. См. раздел лицензирования Lazarus и GPL-faq. Обратите внимание, что FPC настроен таким образом, что связывание с кодом GPL обычно не требуется.

Короче говоря, GPL применяется только в том случае, если вы пытаетесь интегрировать основной двоичный файл FPC (fpc.exe, ppudump.exe и т.д.) в свое приложение. И нет, если вы просто вызываете его. Однако есть одна неприятная деталь, см. раздел лицензирования Lazarus.

Light bulb  Примечание: Строго говоря, GPL указывает, что исходный код должен предоставляться по запросу тем, кто отправляет исходник, за «номинальную плату, покрывающую расходы», но, поскольку работа также является платной, вы можете взимать за это плату на основе коммерческой почасовой ставки, вплоть до 25-50 евро за каждый случай. На практике эта возможность не будет проблемой, поскольку большинство предпочтет просто скачать, а те немногие, кто этого не сделает, заплатят за эту привилегию.

Сохранение исходного кода, связанного с GPL

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

Обратите внимание, что для обычного приложения Lazarus это невозможно. Наиболее вероятный случай - если вы используете mysql (клиент) без отдельной коммерческой лицензии.

Проблема MPL

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

Это большая проблема для проекта FPC, поскольку он использует несколько двоичных файлов, которые являются GPL, в то время как большинство компонентов с открытым исходным кодом в мире Delphi являются MPL (это выбор Borland для компакт-дисков Jedi и сопутствующих компакт-дисков).

Передать лицензию на FPC сложно, так как проекту более 14 лет, и у него много участников. К счастью, в некоторых случаях есть выход: MPL предоставляет пункт о двойной лицензии LGPL-MPL, хотя этот пункт необходимо явно указать в заявлении о лицензии. По сути, это перелицензирование (хотя для удовлетворения требований GNU это скорее технический аспект, чем масштабное изменение лицензирования.

Насколько я могу понять из текста лицензии и из Интернета, различия между MPL и LGPL заключаются скорее в разнице во взглядах и формулировках, соответственно:

  • идеология открытого исходного кода (GNU)
  • корпоративный закон(MPL),

чем в содержании).

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

Если ваш проект MPL все еще находится в контакте со всеми его участниками, вы можете спросить их разрешения на перелицензирование по двойной лицензии MPL. Раньше это делали Jedi APILib и Jedi SDL (и теперь они являются частью дистрибутива FPC). Jedi Math завершил его (и JediMath будет включен в дистрибутив FPC позже).

Jedi JCL обсуждал это, но точный окончательный результат неизвестен (что нужно сделать: вставить детали, когда они будут найдены). Их случай, вероятно, также усложняется тем, что они чаще принимают крупные внешние пожертвования.

Ссылка, которая позволяет обобщить GPL и MPL: http://www.tomhull.com/ocston/docs/mozgpl.html

Проблемы MPL, связанные с Lazarus

Лицензирование Lazarus практически такое же, как и для самого FPC. Библиотеки модифицированы LGPL, сама среда - GPL. Однако библиотеки времени разработки(designtime libraries) подключаются к Lazarus, что делает их предметом GPL.

Команды Lazarus сглаживают эту ситуацию, используя свойство GPL: GPL не применяется, пока вы не распространяете результат. В этом случае результат/продукт в смысле лицензии GPL - это сам двоичный файл Lazarus с подключаемыми компонентами.

Приложения, разработанные с помощью Lazarus

GPL не распространяется на двоичные файлы приложений, созданные с помощью Lazarus. Сам двоичный файл приложения ограничен только компонентами, на которые вы фактически ссылаетесь, а в проекте FPC/Lazarus это все LGPL_with_exception. Таким образом, хотя это потенциально сбивает с толку, это лицензирование не является проблемой при разработке двоичных файлов с помощью Lazarus, даже если у вас есть коммерческие компоненты с частями времени разработки. Это потому, что вам нужно только открыть исходный код, когда вы распространяете результат (то есть Lazarus с предустановленными компонентами).

Исходные и предустановленные коммерческие компоненты

Как указано выше, вы также можете с удовольствием распространять свои коммерческие компоненты и позволять пользователям компилировать их в Lazarus самостоятельно.

Однако у этого есть один побочный эффект. Если вы распространяете двоичный файл Lazarus с предустановленными компонентами, они должны быть также совместимы с GPL. Другими словами, эта возможность отпадает, например, для поставщиков компонентов, которые предоставляют двоичный файл Lazarus с установленными компонентами, или создают дистрибутив Lazarus с предустановленными компонентами Jedi только для MPL.

Light bulb  Примечание: Вопреки распространенному мнению, эта ситуация вообще не изменится, когда пакеты времени разработки будут динамически загружаться с использованием системы пакетов. Вся связанная форма все еще является «большим произведением» в смысле GPL.
Light bulb  Примечание: BigChimp, июнь 2013: Я хотел бы увидеть доводы в пользу приведенного выше утверждения, поскольку я не уверен, что оно применимо. Тем не менее, будет неплохо иметь некоторую дополнительную фактическую информацию для обоснования этого утверждения.

Коммерческие сторонние плагины

Вышеупомянутый параграф MPL, относящийся к Lazarus также применим, например, к сторонние плагины.

Вопросы MPL, связанные с FPC

Проблемы MPL в целом влияют только на официальный выпуск релиза FPC, а не на программы, созданные с помощью Free Pascal (если только сгенерированные программы не являются GPL), поскольку, в отличие от Lazarus, для нормальной работы не требуется связывание с кодом GPL компилятора.

Мы хотим, чтобы лицензированное распространение FPC было несколько единообразным в интересах наших пользователей. Это означает следующие лицензии:

  • для библиотек: модифицированная LGPL или что-то полностью совместимое (например, (модифицированная/современная) лицензия BSD) и
  • для двоичных файлов конечного пользователя: GPL, LGPL, BSD или PD (общественное достояние). В общем, все бесплатное (FSF или обычный способ), совместимое с GPL (например, MIT).
  • сценарии сборки, файлы Makefile и т.п. в основном считаются инструментами на выброс, и их лицензирование обычно не ограничивается явно.

Результатом этой политики является то, что строгие библиотеки MPL не должны добавляться в основной дистрибутив FPC на этом этапе. Несколько проектов (Jedi's Apilib, -Math и -SDL) любезно предоставили двойную лицензию на свои предложения для LGPL-модифицированной части для обхода ограничений, и были добавлены, за что мы им бесконечно благодарны. Некоторые сторонние дистрибьюторы компонентов (например, VirtualStringTree), похоже, изменились, даже не спрашивая, что, я надеюсь, означает, что это скоро появится в Lazarus.

Некоторые другие проекты (например, libtar destructor.de) отошли от исходной лицензии собственного дизайна и повторно лицензировали свои исходники под лицензией, совместимой с GPL/LGPL, для обеспечения согласованности. И снова наша вечная благодарность будет сопровождать их. Тем более, потому что это был пакет, который нам срочно понадобился :-)

Разработка сопровождения/релизов

Обратите внимание, что включение пакета в общий дистрибутив FPC или Lazarus не означает, что основные группы разработчиков FPC/Lazarus берут на себя контроль/сопровождение пакета.

Это просто сделано для более четкого и синхронизированного управления версиями (пакета с последним выпуском FPC/Lazarus) и простоты использования. Это также перемещает специфичную для FPC разработку релиза процесса сборки в FPC, позволяя исходным проектам сосредоточиться на разработке выпусков Delphi.

Как правило, эти каталоги в репозитории FPC имеют несколько лицензий (исходная лицензия и модифицированная LGPL), и все исправления, принятые для них, считаются таковыми. (Другими словами, вклады в Jedi winapi также считаются MPL, так что оригинальные авторы пакетов могут объединить их обратно).

Выбор разных лицензий для дистрибутивов FPC

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

Пакеты с двойной лицензией в дистрибутивах FPC/Lazarus

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

Licensing/copyright of Wiki articles

As there is no specific license indicated on the wiki, all author's rights and copyrights of submissions remain with the original authors. The only rights they grant to others for contributions they authored themselves are the ones mentioned in the submission form: such contributions may be edited, altered, or removed by other contributors.

Content that was copied from elsewhere must be public domain or a similar free resource, and the license conditions of the original work must be respected (e.g. in terms of possible requirements regarding mentioning the source or original author).