Вопрос по GPL
От: c3p0  
Дата: 12.02.21 10:31
Оценка:
1. Есть проприетарный продукт "P".
2. Есть библиотека под GPL с твиками, пусть "G".

Продукт P можно скачать на сайте и его бинарники не содержат библиотеки G.

Пользователь устанавливает продукт P, далее скачивает и самостоятельно подбрасывает библиотеку G в нужную папку.
В результате получает фичу, которая поддерживается библиотекой G.

Вопрос1. Нарушает ли такое использование GPL? (если нарушает, то продукт P "заражается" GPL и требуется открыть его исходники).

Вопрос2. Если такое использование не нарушает GPL, то автоматизируем задачу. Инсталлер устанавливает продукт P, а далее отдельно скачивает библиотеку G и закидывает ее в папку. Нарушает ли такое использование GPL?

От себя могу добавить, что видел как софт предлагает скачать и установить сторонний модуль или драйвер в процессе инсталляции.
Т.е. нарушения в таком случае, похоже что нет. А если давать скачивать библиотеку G со своего же сайта?
Если вы параноик — это еще не значит, что за вами никто не следит
Re: Вопрос по GPL
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 12.02.21 10:45
Оценка:
Здравствуйте, c3p0, Вы писали:

C>Т.е. нарушения в таком случае, похоже что нет. А если давать скачивать библиотеку G со своего же сайта?


Если использовать динамическую библиотеку, то чтобы не было нарушений у неё должна быть лицензия LGPL. Мне больше интересен другой случай, когда есть программа и плагин для неё использующий библиотеку GPL. Если плагин может сделать кто угодно, тогда его код нужно открывать, но не код программы у которой для гарантии может быть другой автор. С другой стороны пытаться заниматься крючкотворством по факту поставки библиотеки, разве в GPL говорится именно об этом? Так бы все подкачивали и плевали на лицензию.
Re: Вопрос по GPL
От: msorc Грузия  
Дата: 12.02.21 10:46
Оценка: +1
Здравствуйте, c3p0, Вы писали:

C>1. Есть проприетарный продукт "P".

C>2. Есть библиотека под GPL с твиками, пусть "G".

C>Продукт P можно скачать на сайте и его бинарники не содержат библиотеки G.


C>Пользователь устанавливает продукт P, далее скачивает и самостоятельно подбрасывает библиотеку G в нужную папку.

C>В результате получает фичу, которая поддерживается библиотекой G.

Это будет "combined work" и ко всему набору должен применяться GPL.
Если G работает как исполняемая отдельно программа, то с ней можно связаться по сети, через командную строку и т.п., то можно G под GPL использовать с другими лицензиями.
Отредактировано 12.02.2021 10:49 msorc . Предыдущая версия .
Re: Вопрос по GPL
От: reversecode google
Дата: 12.02.21 10:52
Оценка:
пока P ~< $1.0000.0000
всем пофиг что там кто линкует и использует
Re: Вопрос по GPL
От: bnk СССР http://unmanagedvisio.com/
Дата: 12.02.21 10:55
Оценка:
Здравствуйте, c3p0, Вы писали:

C>Пользователь устанавливает продукт P, далее скачивает и самостоятельно подбрасывает библиотеку G в нужную папку.

C>В результате получает фичу, которая поддерживается библиотекой G.

C>Вопрос1. Нарушает ли такое использование GPL? (если нарушает, то продукт P "заражается" GPL и требуется открыть его исходники).


Да, нарушает. Если бы лицензия библиотеки была LGPL, то не нарушало бы. LGPL (lesser GPL) же именно для такого случая как ты описываешь и существует.
Re[2]: Вопрос по GPL
От: Pzz Россия https://github.com/alexpevzner
Дата: 12.02.21 11:09
Оценка:
Здравствуйте, reversecode, Вы писали:

R>пока P ~< $1.0000.0000

R>всем пофиг что там кто линкует и использует

Я работал в конторе, на которую FSF решил показательно наехать за нераскрытие кода busybox. Профит там был на тот момент копеешный. Просто под горячую руку подвернулись.

Я им, кстати, пытался заранее объяснить, какие у них риски и что с ними делать. Но работа была организована по принципу "давай-давай, быстрей-быстрей", и от меня просто отмахнулись.
Re: Вопрос по GPL
От: Pzz Россия https://github.com/alexpevzner
Дата: 12.02.21 11:14
Оценка: +1
Здравствуйте, c3p0, Вы писали:

C>Вопрос1. Нарушает ли такое использование GPL? (если нарушает, то продукт P "заражается" GPL и требуется открыть его исходники).


Это очень скользкий момент. А вот еще, есть ядро Linux, оно под GPL. Есть Oracle для Linux, оно проприетарное, и без ядра не работает. Однако никто на Oracle на эту тему в суд не подает.

Я бы считал так, если из библиотеки под GPL делается плагин, исходники этого плагина открыты, и без этого плагина продукт P представляет собой вполне самостоятельное и осмысленное изделие, функциональность которого расширается плагином, но и без плагина P вполне полезен, то скорее всего, GPL не нарушается таким использованием. При других условиях я бы посоветовался не в форуме, а с адвокатом, причем не российским, а из той юрисдикции, где могут быть проблемы.
Re: Вопрос по GPL
От: /aka/ СССР  
Дата: 12.02.21 11:22
Оценка: 15 (2)
Здравствуйте, c3p0, Вы писали:

C>Пользователь устанавливает продукт P, далее скачивает и самостоятельно подбрасывает библиотеку G в нужную папку.

C>В результате получает фичу, которая поддерживается библиотекой G.

Можно назвать библиотеку G плагином? В GPL FAQ прописана официальная позиция GNU по плагинам.

https://www.gnu.org/licenses/gpl-faq.en.html#GPLPlugins

It depends on how the main program invokes its plug-ins. If the main program uses fork and exec to invoke plug-ins, and they establish intimate communication by sharing complex data structures, or shipping complex data structures back and forth, that can make them one single combined program. A main program that uses simple fork and exec to invoke plug-ins and does not establish intimate communication between them results in the plug-ins being a separate program.

If the main program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single combined program, which must be treated as an extension of both the main program and the plug-ins. If the main program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.

Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.


Если считаем, что коммуникации плагина с программой достаточно intimate и программа с плагином form a single combined program, то плагин заражает программу. Если недостаточно intimate, то не заражает.

Но это теория. На практике на уровне CD Ejector не нужно об этом думать. Когда/если взлетит — перепишешь без GPL.
Re[3]: Вопрос по GPL
От: /aka/ СССР  
Дата: 12.02.21 11:24
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Я работал в конторе, на которую FSF решил показательно наехать за нераскрытие кода busybox. Профит там был на тот момент копеешный. Просто под горячую руку подвернулись.


Во что обошёлся конторе этот наезд?
Re[4]: Вопрос по GPL
От: Pzz Россия https://github.com/alexpevzner
Дата: 12.02.21 11:55
Оценка: 1 (1)
Здравствуйте, /aka/, Вы писали:

Pzz>>Я работал в конторе, на которую FSF решил показательно наехать за нераскрытие кода busybox. Профит там был на тот момент копеешный. Просто под горячую руку подвернулись.


A>Во что обошёлся конторе этот наезд?


Деталей не знаю, но все кончилось досудебным урегулированием. Расходы на адвокатов, плюс какие-то выплаты, плюс срочное устранение косяка — ну я предполагаю, что в сумме было 5 нулей (4, если все сделать ОЧЕНЬ организованно и ОЧЕНЬ по-бюджетному).
Re[3]: Вопрос по GPL
От: Michael7 Россия  
Дата: 12.02.21 13:47
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Я работал в конторе, на которую FSF решил показательно наехать за нераскрытие кода busybox. Профит там был на тот момент копеешный. Просто под горячую руку подвернулись.


Ну busybox — это не просто какая-то юзером, линкуемая библиотека, это уже целиком дистрибутив юниксподобной системы.
Re[2]: Вопрос по GPL
От: Michael7 Россия  
Дата: 12.02.21 13:54
Оценка:
Здравствуйте, /aka/, Вы писали:

A>Если считаем, что коммуникации плагина с программой достаточно intimate и программа с плагином form a single combined program, то плагин заражает программу. Если недостаточно intimate, то не заражает.


Надо еще не забывать, что "заражает" при распространении. То есть, что там пользователь у себя делает вообще никак не может нарушить условий GPL в принципе. Она специально так составлена.

Кроме того, емнип, для определения combine work важно еще насколько программа функциональна без скачиваемой библиотеки. Еще вариант обхода — это распространять свою библиотеку с ограниченным функционалом, но по API совместимую с GPL.
Re: Вопрос по GPL
От: wantus  
Дата: 12.02.21 13:55
Оценка:
Здравствуйте, c3p0, Вы писали:

C>Вопрос1. Нарушает ли такое использование GPL? (если нарушает, то продукт P "заражается" GPL и требуется открыть его исходники).


C>Вопрос2. Если такое использование не нарушает GPL, то автоматизируем задачу. Инсталлер устанавливает продукт P, а далее отдельно скачивает библиотеку G и закидывает ее в папку. Нарушает ли такое использование GPL?


Основным критерием является на сколько функционал программы зависит от GPL компоненты. То есть является ли P т.н. "derived work".

Если убрать G, то станет ли P бесполезной или нет. Если станет (или если потеряет существенную часть функционала), то на P распространяется GPL coverage. Даже если G живет в отдельном процессе и P разговаривает с ней через IPC.

Так что ответ1 — зависит, ответ2 — да, нарушает.

Edit — там есть еще нюанс, что если таки G является плагином, то есть ли другие нетривиальные плагины. Если их нет, то однозначно derived work. Если есть, то там уже смотрят был ли plugin interface добавлен, чтобы circumvent the GPL, или он таки появился из натуральных потребностей и потом под него появился GPL плагин.
Отредактировано 12.02.2021 13:59 wantus . Предыдущая версия .
Re: Вопрос по GPL
От: c3p0  
Дата: 12.02.21 14:36
Оценка:
Нет, в моем случае это не плагин. Скорее динамическая библиотека.

Крупный проект, в котором задействованы десятки библиотек.
В проекте есть динамическая библиотека A, которая не заражает код GPL.

Пользователь может также скачать и скопировать в папку библиотеку G, и тогда при запуске она подключится вместо A.
Т.е. по сути, мы не распространяем (не поставляем) бинарники библиотеки G и формально, вроде как нельзя подвести под GPL.

Все эти приседания из-за того, что библиотека A работает медленнее/немного хуже библиотеки G.
Т.е. замена A на G даст пользователям скорость и улучшит работу их фичи.
Если вы параноик — это еще не значит, что за вами никто не следит
Re[4]: Вопрос по GPL
От: Pzz Россия https://github.com/alexpevzner
Дата: 12.02.21 14:38
Оценка:
Здравствуйте, Michael7, Вы писали:

Pzz>>Я работал в конторе, на которую FSF решил показательно наехать за нераскрытие кода busybox. Профит там был на тот момент копеешный. Просто под горячую руку подвернулись.


M>Ну busybox — это не просто какая-то юзером, линкуемая библиотека, это уже целиком дистрибутив юниксподобной системы.


busybox — это программа такая, которая заменяет 100500 мелких утилит. И никому было бы не жалко весь этот подкапотный линух опубликовать, но ни у кого руки вовремя не дошли.

Линух у них, кстати, был не самосборный, а какой-то покупной тулкит. Видимо сочли, что если инструмент куплен за деньги, то можно ни о чем не париться.
Re[3]: Вопрос по GPL
От: reversecode google
Дата: 12.02.21 14:50
Оценка:
я за последние лет 10 столько всякого софта наколупал
могу сказать что все на эти лицухи кладут большой

а что бы наехал сфс нужно наверное быть очень известной компанией
и пофиг как там окупается софт
Re[4]: Вопрос по GPL
От: Pzz Россия https://github.com/alexpevzner
Дата: 12.02.21 17:37
Оценка:
Здравствуйте, reversecode, Вы писали:

R>а что бы наехал сфс нужно наверное быть очень известной компанией

R>и пофиг как там окупается софт

Неа, наоборот. Это был маленький стартап. FSF, видимо, хотела создать судебный прецедент без особых затрат и без особого риска для себя. Наехали бы на крупняк, до сих пор бы, небось, судились.

А так, да, в среднем в суд идут за деньгами, а не за прецедентом. Соответственно, у кого нету денег, с тем нет особого смысла судиться, все равно ничего не отсудишь.
Re[2]: Вопрос по GPL
От: wantus  
Дата: 12.02.21 18:42
Оценка:
C>Все эти приседания из-за того, что библиотека A работает медленнее/немного хуже библиотеки G.
C>Т.е. замена A на G даст пользователям скорость и улучшит работу их фичи.

Если не устанавливать автоматом, то вы — ОК. Но если подсказывать или помогать юзеру ставить, то вы — derived work.
Re[3]: Вопрос по GPL
От: AWSVladimir  
Дата: 12.02.21 22:40
Оценка:
Здравствуйте, wantus, Вы писали:

W>Если не устанавливать автоматом, то вы — ОК. Но если подсказывать или помогать юзеру ставить, то вы — derived work.

Этот как купил системник, а у монитора дрова опенсурсные, ну все приехали, открывай MS свои исходники
Нельзя быть таким категоричным, нюансов м/б больше чем дофига.
Начинать надо с законов государства, ратификации международных законов конкретным государством и пошло поехало.
К слову сказать опенсурсные либы нарушают не какие то лицензии, а конкретные патенты (тот же ffmpeg), но разбираться кто где и сколько нарушает, отдают на откуп самим пользователям, при этом либы нарушающие патенты может скачать любой из официальных репов и никто ни кого не судит, IP не блокирует и не садит в тюрьму.
Re[2]: Вопрос по GPL
От: Cyberax Марс  
Дата: 13.02.21 08:13
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Это очень скользкий момент. А вот еще, есть ядро Linux, оно под GPL. Есть Oracle для Linux, оно проприетарное, и без ядра не работает. Однако никто на Oracle на эту тему в суд не подает.

Ядро чётко ограничивает границу распространения GPL, она останавливается на границе userspace. По сути, у ядра не чистая GPL, а GPL со специальным исключением.

Это документировано в: https://github.com/torvalds/linux/blob/master/LICENSES/exceptions/Linux-syscall-note
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.