Введение

Исключение 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.

Исключение Classpath

Проект GNU Classpath является примером использования подобного исключения из лицензии GPL. Библиотека GNU Classpath распространяется под следующей лицензией:

В связи с этим, её можно использовать для запуска, создания и распространения широкого спектра приложений и апплетов. Использование GNU Classpath в неизменном виде в качестве основной библиотеки классов для виртуальной машины, компилятора языка Java или программы, написанной на языке программирования Java, не оказывает влияния на условия лицензирования при непосредственном распространении этих программ.

Лицензия GNU Lesser General Public License

В то время как версия 2.1 LGPL была самостоятельной лицензией, текущая версия LGPL 3 основана на отсылке к GPL. По сравнению с лицензией GNU Classpath, указанной выше, LGPL предъявляет более строгие требования к исключению при связывании: лицензиаты должны разрешать модификацию используемых ими частей библиотеки, а также обратную разработку (их программного обеспечения и самой библиотеки) для отладки этих модификаций.