Предположим, что есть библиотека, которая лицензирована под лицензией GPL. Я хочу использовать это закрытый исходный проект. Я делаю следующее:
- Создайте небольшое приложение-оболочку для этой библиотеки GPL, которая прослушивает сокеты, анализирует сообщения и вызывает библиотеку GPL. Затем возвращает результаты обратно.
- Выпускать свои источники (чтобы соответствовать GPL)
- Создайте клиент для этой оболочки в моем основном приложении и не выпускайте исходники.
Я знаю, что это добавляет огромные накладные расходы по сравнению со статическим / динамическим соединением, но мне интересен теоретический подход.
Ответы:
С юридической точки зрения я бы сказал, что все будет в порядке (но я не юрист - проконсультируйтесь с юристом).
Морально это довольно предосудительно. Если вам не нравится GPL, то «правильное» решение - не использовать библиотеку GPL.
Изменить : Чтобы уточнить, какой бы ни был юридический статус GPL в отношении того, разрешено или нет динамическое связывание, LGPL был специально создан с намерением разрешить динамическое связывание в случае библиотек. Поэтому мне кажется очевидным, что, выбирая GPL вместо LGPL, автор библиотеки делал это явно, чтобы запретить динамическое связывание. На мой взгляд, использование технических средств для обхода правовых ограничений, выражающих явное намерение автора в отношении его кода, является предосудительным.
Кстати, лично я не фанат GPL (я предпочитаю более разрешительную лицензию, такую как MIT или BSD). Тем не менее, я большой поклонник уважения к работе других разработчиков, и если они не хотят, чтобы вы связывали их библиотеку с программным обеспечением с закрытым исходным кодом, то это прерогатива.
источник
IANAL, но я думаю, что вы в порядке, соответствующий раздел GPL3 находится в конце раздела 5:
Вероятно, это будет зависеть от того, что именно делает ваш «клиент». Ответ mouviciel, вероятно, является хорошим руководством о том, как сделать это безопасно.
Если вы считаете, что ваше приложение является расширением библиотеки, а не чем-то скомпонованным с ней, то вы, вероятно, правы (вам следует знать об этом), и в этом случае вам лучше всего связаться с автором и попытаться получить другая лицензия
это , казалось бы поддержать свою позицию , что это явно разрешено лицензией GPL, предполагая , что все сделано правильно.
источник
Посмотрите, я бы хотел включить программное обеспечение, покрытое GPL, в свою проприетарную систему. Я могу это сделать?
Вопрос в том, является ли ваше приложение-обертка чем-то полезным? Если вы сделали версию вашей программы для командной строки под лицензией GPL, вы можете выпустить графический интерфейс под другой лицензией. Например, вы можете сделать IDE для gcc с закрытым исходным кодом или инструмент визуального сравнения на основе diff.
Однако, если вы завернули библиотеку, она не используется, кроме как используемой вашей программой, и вы не пользуетесь программой без этой библиотеки, кроме как производная работа, которая должна быть выпущена под лицензией GPL.
источник
ИМО, юридически все нормально. (IANAL) Чтобы улучшить моральную сторону проблемы, не называйте это «оболочкой FooBar, которая делает FooBar легально доступной для MyClosedApp», называйте ее сервером. Сделайте это миленькой программой с открытым исходным кодом, которая "позволяет делать FooBar по сети". Разместите его на SourceForge или посвятите ему веб-сайт со страницей проекта, инструкциями и прочим. Тогда пусть «MyClosedApp» просто использует «сервер FooBar».
источник
Насколько я понимаю, вы можете оставить свое программное обеспечение закрытым, если оно может выполнять свою работу без библиотеки GPL. Смотрите библиотеку GPL как плагин, отсутствие которого не делает вашу программу бесполезной.
источник
Есть также несколько спорный вариант. Под большинством законодательных органов динамическое соединение должно быть границей с "производной работой". Логика заключается в том, что при динамическом связывании вы просто включаете заголовочные файлы в свою программу. Во многих законодательных актах заголовочные файлы считаются определением API и явно исключаются из авторского права. С другой стороны, при динамическом связывании фактическое соединение с библиотекой GPL выполняется в системе конечного пользователя. Но, как я уже сказал, с этим много противоречий, Столлман решительно настроен против этого.
источник
Было бы законно, чтобы Адам Браун написал программу, которая использовала бы библиотеку GPL и действовала как «сервер», если бы он выпустил весь исходный код для всего, что с ним связано, но единственный выпущенный им клиентский код был довольно слабым, потому что это все он написал на стороне клиента? Я не вижу оснований думать, что это не так.
Если Чарльз Довер найдет «сервер» Адама Брауна и решит написать программу с закрытым исходным кодом для связи с ним, будет ли GPL каким-либо образом ограничивать его действия? Не то, чтобы я мог видеть, так как его единственным использованием программного обеспечения GPL было бы как двоичные файлы, которые он получил от Адама Брауна. Если бы он распространял двоичные файлы Адама, он должен был бы также включить ссылку на источник, но ничто другое в GPL не повлияет на любой код Чарльза.
Что касается одного человека, который пишет сервер под лицензией GPL, а затем использует сервер для своих собственных целей с закрытым исходным кодом, я не думаю, что должны быть какие-либо юридические проблемы, если при написании сервера он приложил добросовестные усилия, чтобы сделать его полезно для других, которые могут захотеть использовать предоставленный код GPL таким же образом. В частности, общедоступной документации интерфейса должно быть достаточно, чтобы позволить компетентному программисту либо написать код для сервера, который будет принят клиентской программой, так же, как и оригинал, и написать клиентские программы, которые будут использовать сервер так же, как авторское приложение.
источник