Difference between revisions of "licensing/ru"

From Free Pascal wiki
Jump to navigationJump to search
Line 80: Line 80:
  
 
{{Note| Вопреки распространенному мнению, эта ситуация вообще '''не''' изменится, когда пакеты времени разработки будут динамически загружаться с использованием '''[[packages|системы пакетов]]'''. Вся связанная форма все еще является «большим произведением» в смысле GPL.}}
 
{{Note| Вопреки распространенному мнению, эта ситуация вообще '''не''' изменится, когда пакеты времени разработки будут динамически загружаться с использованием '''[[packages|системы пакетов]]'''. Вся связанная форма все еще является «большим произведением» в смысле GPL.}}
{{Note| BigChimp, June 2013: I'd like to see the reasoning behind the statement above, as I'm not sure it applies. Regardless, some extra factual information to justify this statement will be nice.}}
+
{{Note| BigChimp, июнь 2013: Я хотел бы увидеть доводы в пользу приведенного выше утверждения, поскольку я не уверен, что оно применимо. Тем не менее, будет неплохо иметь некоторую дополнительную фактическую информацию для обоснования этого утверждения.}}
  
 
=== Commercial 3rd party plugins===
 
=== Commercial 3rd party plugins===

Revision as of 20:50, 19 August 2020

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: Я хотел бы увидеть доводы в пользу приведенного выше утверждения, поскольку я не уверен, что оно применимо. Тем не менее, будет неплохо иметь некоторую дополнительную фактическую информацию для обоснования этого утверждения.

Commercial 3rd party plugins

The above MPL issues relating to Lazarus paragraph also applies to e.g. 3rd party plugins.

MPL issues relating to FPC

MPL issues in general only affect the official FPC release distribution, not the programs generated with Free Pascal (unless the generated programs are GPL), since unlike Lazarus, no linkage to the compiler's GPL code is needed for normal operation.

We wish to keep the FPC distribution licensing somewhat uniform for the benefit of our users. This means the following licenses: for

  • libraries: LGPL-modified, or something fully compatible (like e.g. a (modified/modern) BSD license), and
  • for end user binaries: GPL, LGPL, BSD or PD (public domain). In general anything free (the FSF or the normal way) that is GPL compatible (e.g. MIT).
  • build scripts, Makefiles and the like are mostly considered throw away tools, and their licensing is usually not explicitely locked down.

The result of this policy is that strict MPL libraries must not be added to the core FPC distribution at this point. Several projects (Jedi's Apilib, -Math and -SDL ) kindly dual-licensed their offerings to LGPL-modified though to work around this, and were added, for which we are eternally grateful. Some 3rd party component distributors (like VirtualStringTree) appear to have changed even without asking, which I hope means it will turn up in Lazarus soon.

Some other projects (e.g destructor.de's libtar) moved away from the original license of their own design and re-licensed their sources under a GPL/LGPL compatible license, for consistency's sake. Again, our eternal gratitude will accompany him. Especially because it was a package we urgently needed :-)

Maintenance/release engineering

Note that inclusion of a package in the general FPC or Lazarus distribution does not imply that the FPC/Lazarus core development teams take control/maintainership of a package.

It is merely done to create a more clear and synchronized versioning (of the package with the last FPC/Lazarus release), and ease of use. It also moves the FPC specific release engineering of the build process to FPC, allowing the source projects to focus on Delphi release engineering.

In general these directories in the FPC repository are multi-licensed (original license and modified LGPL), and all fixes accepted for them are considered such. (In other words, contributions to Jedi winapi are considered to be also MPLed, so that the original authors of the packages can merge them back)

Choosing different licenses for FPC distributions

Third party groups can still create custom FPC distributions that are a patchwork of licenses, as long as they are compatible with each other. The GPL/LGPL compability of the official distribution is self imposed only to make licensing of the main distribution consistent.

Dual licensed packages in the FPC/Lazarus distributions

As said before, some packages like SDL are kindly dual-licensed by their original authors. We respect that, and therefore only will accept contributions that are similarly dual-licensed, since we must be able to pass the fixes back to the original authors.

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).