Спокойный единственный EXE с LGPL? [закрытый]

11
задан tshepang 24 October 2012 в 08:37
поделиться

2 ответа

Нет, если ваша программа с закрытым исходным кодом и вы хотите ссылаться на LGPL-версию Qt, вы должны использовать динамическое связывание. Если вы хотите статически компоновать, то вы должны купить лицензию на Qt.

Чтобы применить код LGPL в вашем проекте с закрытым исходным текстом, пользователь должен иметь возможность заменить часть кода lgpl. Самый простой и наиболее распространенный способ сделать это - поместить весь код LGPL в dll, а затем пользователь может заменить dll по своему усмотрению.

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

Не имеет значения, является ли ваш продукт бесплатным или платным. Вы можете продавать продукты под GPL/LGPL.

13
ответ дан 3 December 2019 в 01:24
поделиться

Вообще-то, LGPL разрешает статическое связывание, если вы выполняете несколько очень специфических требований. Например, если все распространение ведется с вашего сайта, где у вас есть StaticProgram.exe, вы не против, если пользователи могут также загрузить StaticProgram.obj и LGPL-library-source.tar.gz. Вы также можете распространять StaticProgram.exe с письменным предложением предоставить другие файлы.

В частности, статическое связывание создает один исполняемый файл, который является производным от кода LGPL, поэтому вы должны соблюдать раздел 6 LGPL:

6) В качестве исключения из Разделов выше, вы можете также объединять или связывать "произведение, использующее Библиотеку", с Библиотекой, чтобы создать произведение, содержащее части Библиотеки, и распространять это произведение на условиях по вашему выбору, при условии, что условия разрешают модификацию произведения для собственного использования клиента и обратного проектирование для отладки таких модификации.

Вы должны направлять заметное уведомление с каждой копии произведения о том, что Библиотека используется в этом произведении и что Библиотека и ее использование подпадают под действие настоящей Лицензии. Вы обязаны предоставить копию настоящей Лицензии. Если во время выполнения произведения отображается уведомление об авторском праве, вы обязаны включить уведомление об авторском праве на Библиотеки, а также ссылку, направляющую пользователя на копию настоящей Лицензии. Кроме того, вы должны сделать одно из следующих действий:

a) сопроводить произведение полным соответствующим машиночитаемым исходным текстом Библиотеки, включая все изменения использованные в произведении (которые должны быть распространяться в соответствии с разделами 1 и 2 выше); и, если произведение является исполняемый файл, связанный с Библиотекой, с полным машиночитаемым "произведение, в котором используется Библиотека", в виде объектный код и/или исходный код, так чтобы пользователь мог модифицировать Библиотеку и затем перелинковать для создания модифицированного исполняемый файл, содержащий модифицированную Библиотеку. (Подразумевается, что пользователь, изменяющий содержимое файлов определений в Библиотеке, будет не обязательно сможет перекомпилировать приложение для использования измененных определения.)

b) Использовать подходящий механизм разделяемой библиотеки для связывания с Библиотекой. Подходящим механизмом является тот, который который (1) использует во время выполнения копию библиотеки, уже имеющейся в компьютерной системе пользователя, а не копирования библиотечных функций в исполняемый файл, и (2) будет работать правильно работать с модифицированной версией библиотеки, если пользователь установит ее, при условии, что модифицированная версия совместима по интерфейсу с версией с которой была сделана работа.

c) Сопровождать работу письменным предложением, действительным в течение как минимум трех лет, предоставить тому же пользователю материалы, указанные в подразделе 6a, выше, за плату, не превышающую затрат на осуществление такого распространения.

d) Если распространение произведения осуществляется путем предложения доступа к экземпляру из специально отведенного места, предлагать эквивалентный доступ к копированию вышеуказанных указанные материалы из того же места. e) Убедитесь, что пользователь уже получил копию этих материалов или что вы уже отправили этому пользователю копию.

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

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

28
ответ дан 3 December 2019 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: