> Это что ли? Как быть с динамической библиотекой, которую я динамически подгружаю, а заголовочный файл я сам написал. Моя программа уже не является производной?
Не совсем понял, что ты имел ввиду, но в общем случае надо начинать с лицензии на библиотеку. Если она строго GPL, то может вызываться хоть динамически, хоть статически только из GPL (с некоторыми вариациями) программы. Есть ещё LGPL, та позволяет динамически вызывать.
Либерали́зм (фр. libéralisme) — философская и экономическая теория, а также политическая идеология, которая исходит из положения о том, что человек свободен распоряжаться собой и своей собственностью.
Как одобрение производства закрытых поделий способствует возможностью распоряжаться своей напрограммированой собственностью?
Если уж на то пошло, то только мелкая пропиетарщина позволяет либеральность в ПО.
Ну и GPL тоже, но в GPL либеральность одноразовая. — Человек имеет право подарить свою работу своему сообществу.
> Это что ли? Как быть с динамической библиотекой, которую я динамически подгружаю, а заголовочный файл я сам написал. Моя программа уже не является производной?
On September 6, 2006, the gpl-violations.org project prevailed in court litigation against D-Link Germany GmbH regarding D-Link's inappropriate and copyright infringing use of parts of the Linux Operating System Kernel.[36] The judgment finally provided the on-record, legal precedent that the GPL is valid and legally binding, and that it will stand up in German court.[37]
> Если она строго GPL, то может вызываться хоть динамически, хоть статически только из GPL (с некоторыми вариациями) программы.
А где это написано в лицензии? Я там только про "производное произведение" нашел. Я что конкретно понимать под "производное произведение"? Допустим, Сtrl+C/Сtrl+V куска GPL кода и моя программа становиться производной (это понятно), но вот с динамическим вызовом это спорный вопрос. Динамически подгружаемая библиотека не является частью моей программы, библиотеку можно заменить на аналогичную с другой лицензией, программа не знает ничего о лицензии на библиотеку.
Допустим есть СПО и ППО реализация библиотеки, у них абсолютно одинаковый API и ABI. Я писал свою ППО программу из расчета, что у пользователя будет стоять ППО реализация, а оказалась СПО. В этом случае я вызываю из ППО программы СПО код, значит есть нарушение лицензии. Так? Кто нарушает GPL я или пользователь, и как выйти из такой ситуации? Поясните...
> А где это написано в лицензии? Я там только про "производное произведение" нашел. Я что конкретно понимать под "производное произведение"?
В GPLv2
> that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language.
Вкратце, если в готовую чью-то программу GPL-программа входит полностью или частично, то она считается производной.
> These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.
Требования предъявляются ко всему произведению в целом. Если идентифицируемые части произведения самостоятельны и независимы, то к их отдельным частям требования могут и не применяться, в случае их отдельного распространения.
Смысл этих требований в том, чтобы никто не пытался обойти или паразитировать на GPL, выпустив программу под GPL, которая не имеет смысла без проприетарных компонентов. LGPL смягчает это требование, позволяя в проприетарной программе использовать LGPL-программу (библиотеку) в качестве явно отделимой части.
Также GPL не включает в понятие произведения системные библиотеки и то, что обычно поставлется вместе с компиляторами и т.п.
> Я писал свою ППО программу из расчета, что у пользователя будет стоять ППО реализация, а оказалась СПО. В этом случае я вызываю из ППО программы СПО код, значит есть нарушение лицензии. Так?
ППО реализация это случайно не сертифицированный криптомодуль? :) Нарушения лицензии нет, поскольку СПО не распространяется в комплекте с ППО. Но и пользователь ничего не нарушает, потому что
> Activities other than copying, distribution and modification are not covered by this License; they are outside its scope.
То есть, до тех пор пока пользователь не распространяет и не модифицирует СПО-часть для работы в сочетании с ППО требования лицензии вообще не применяются. В GPL3 это сказано ещё более чётко:
> You are not required to accept this License in order to receive or run a copy of the Program.
>Смысл этих требований в том, чтобы никто не пытался обойти или паразитировать на GPL, выпустив программу под GPL, которая не имеет смысла без проприетарных компонентов. LGPL смягчает это требование, позволяя в проприетарной программе использовать LGPL-программу (библиотеку) в качестве явно отделимой части.
> Может, конечно. LGPL ведь не накладывает дополнительных ограничений.
А может ли проприетарная программа использовать LGPL-PLUGIN, который слинкован с GPL?
Это не троллинга ради, прсто интересно, насколько юридически чиста такая схема. Вроде в другом топике пришли к знаменателю, что через пайпы... но что в данном случае? Вроде это плагин, ПОДКЛЮЧАЕМЫЙ модуль, который вполне можно заменить другим, с тем же функционалом, но линкующийся уже с проприетарным ПО.