licensing/ru
│ English (en) │ русский (ru) │
Примечание: Эта страница ссылается на 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.
Сохранение исходного кода, связанного с GPL
Если вы распространяете что-либо под GPL, вам следует хранить полные исходные коды части GPL (ваши собственные и сторонние части) в течение трех лет для выполнения запросов на исходник (за которые вы можете взимать номинальную плату).
Обратите внимание, что для обычного приложения Lazarus это невозможно. Наиболее вероятный случай - если вы используете mysql (клиент) без отдельной коммерческой лицензии.
- См. параграф 4.1.2 в статье "Практическое руководство по соответствию GPL", который, в общем, является практическим ресурсом лицензирования.
Проблема 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.
Коммерческие сторонние плагины
Вышеупомянутый параграф 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, любезно предоставлены их авторами с двойной лицензией. Мы уважаем это, и поэтому будем принимать только те материалы, которые имеют аналогичную двойную лицензию, так как мы должны иметь возможность передавать исправления обратно первоначальным авторам.
Лицензирование/авторские права на статьи Wiki
Поскольку на Wiki не указана конкретная лицензия, все авторские права и копирайты на материалы остаются за первоначальными авторами. Единственные права, которые они предоставляют другим в отношении материалов, которые они создали сами, - это те, которые указаны в форме для отправки: такие материалы «могут редактироваться, изменяться или удаляться другими участниками».
Контент, который был скопирован из другого места, должен быть общественным достоянием или аналогичным бесплатным ресурсом, и должны соблюдаться условия лицензии оригинальной работы (например, с точки зрения возможных требований относительно упоминания источника или первоначального автора).