Исключение для связывания в лицензии GPL: Разъяснение и примеры
GPL linking exception
Исключение GPL для линковки: как использовать GPL-библиотеки без распространения под GPL. Разъяснения, риски нарушений и практика Free Software Foundation.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Исключение GPL модифицирует GNU General Public License (GPL) таким образом, что позволяет программным проектам, предоставляющим библиотечный код, быть "связанными" с программами, которые их используют, без применения всех условий GPL к использующей программе. Связывание – это технический процесс соединения кода в библиотеке с кодом, использующим его, для создания единого исполняемого файла. Оно выполняется либо во время компиляции, либо во время выполнения для получения функционального машиночитаемого кода. Фонд свободного программного обеспечения заявляет, что без применения исключения о связывании программа, связанная с кодом библиотеки GPL, может быть распространена только под лицензией, совместимой с GPL. Это не было явно проверено в суде, однако нарушения, связанные со связыванием, приводили к мировым соглашениям. Лицензия проекта GNU Classpath явно содержит соответствующее заявление. Многие библиотеки свободного программного обеспечения, распространяемые под лицензией GPL, используют эквивалентное исключение, хотя формулировка исключения может различаться. К заметным проектам относятся ERIKA Enterprise, GNU Guile, библиотеки времени выполнения GNAT и исключение GCC Runtime Library. Библиотеки времени выполнения компилятора также часто используют эту модификацию лицензии или эквивалентную ей, например, библиотека libgcc в GNU Compiler Collection, а также все библиотеки проекта Free Pascal. В 2007 году Sun Microsystems опубликовала большую часть исходного кода библиотек классов для проектов Java SE и Java EE под версией 2 лицензии GPL с добавлением исключения Classpath для связывания и использовала ту же лицензию в качестве одной из возможных лицензий для своего корпоративного сервера GlassFish и интегрированной среды разработки NetBeans Java IDE. Версия 3 GNU Lesser General Public License (LGPL) также построена как исключение из GPL.
A GPL linking exception modifies the GNU General Public License (GPL) in a way that enables software projects which provide library code to be "linked to" the programs that use them, without applying the full terms of the GPL to the using program. Linking is the technical process of connecting code in a library to the using code, to produce a single executable file. It is performed either at compile time or run time in order to produce functional machine readable code. The Free Software Foundation states that, without applying the linking exception, a program linked to GPL library code may only be distributed under a GPL compatible license. This has not been explicitly tested in court, but linking violations have resulted in settlement. The license of the GNU Classpath project explicitly includes a statement to that effect. Many free software libraries which are distributed under the GPL use an equivalent exception, although the wording of the exception varies. Notable projects include ERIKA Enterprise, GNU Guile, the run time libraries of GNAT, and the GCC Runtime Library Exception. Compiler runtime libraries also often use this license modification or an equivalent one, e. g. the libgcc library in the GNU Compiler Collection, as well as all libraries of the Free Pascal project. In 2007, Sun Microsystems released most of the source code to the class libraries for the Java SE and Java EE projects under version 2 of the GPL license plus the Classpath linking exception, and used the same license as one possible license for their enterprise server GlassFish and for their NetBeans Java IDE. Version 3 of the GNU Lesser General Public License (LGPL) is likewise constructed as an exception to the GPL.
Исключение Classpath
Проект GNU Classpath является примером использования подобного исключения из лицензии GPL. Библиотека GNU Classpath распространяется под следующей лицензией:
The GNU Classpath project provides an example of the use of such a GPL linking exception. The GNU Classpath library uses the following license:
В связи с этим, её можно использовать для запуска, создания и распространения широкого спектра приложений и апплетов. Использование GNU Classpath в неизменном виде в качестве основной библиотеки классов для виртуальной машины, компилятора языка Java или программы, написанной на языке программирования Java, не оказывает влияния на условия лицензирования при непосредственном распространении этих программ.
As such, it can be used to run, create and distribute a large class of applications and applets. When GNU Classpath is used unmodified as the core class library for a virtual machine, compiler for the Java language, or for a program written in the Java programming language it does not affect the licensing for distributing those programs directly.
Лицензия GNU Lesser General Public License
В то время как версия 2.1 LGPL была самостоятельной лицензией, текущая версия LGPL 3 основана на отсылке к GPL. По сравнению с лицензией GNU Classpath, указанной выше, LGPL предъявляет более строгие требования к исключению при связывании: лицензиаты должны разрешать модификацию используемых ими частей библиотеки, а также обратную разработку (их программного обеспечения и самой библиотеки) для отладки этих модификаций.
While version 2.1 of the LGPL was a standalone licence, the current LGPL version 3 is based on a reference to the GPL. Compared to the GNU Classpath license above, the LGPL formulates more requirements to the linking exception: licensees must allow modification of the portions of the library they use and reverse engineering (of their software and the library) for debugging such modifications.