LINUX.ORG.RU

[GNU][GPL] Законность использования

 ,


0

1

Предположим, я решил сделать некую программу, но для её создания мне понадобился проект под GPL лицензией. Однако, я, допустим, решил закрыть свой собтсвенный код. Для примера, весь функционал программы - мой закрытый код, а графическая библиотека - GPL. Я рисую окошки с помощью GPL библиотеки, и делаю из этого графического интерфейса некий сервер (или, скорее даже, клиент), который будт взаимодействовать с закрытым кодом, линкуясь динамически. Я беру и делаю этот интерфейс opensource-ным - в строгом соответствии с GPL лицензией и распространяю в открытом виде. Тем не менее, без моего закрытого кода этот интерфейс - практически бесполезен. ??? RPFIT! Есть ли здесь подвох?



Последнее исправление: gandjubas (всего исправлений: 1)

> Есть ли здесь подвох?

нет - так можно делать

aho
()

Friends Don't Let Friends Read GPL code.

что то там было такое, что если твоему коду нужен ПЗД код шоб функционировать — то всё ПЗД. но может я и ошибаюсь. вот, что я пока в факу нашёл:

Linking [name of your program] statically or dynamically with other modules is making a combined work based on [name of your program]. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

и дальше по тексту:

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means that combination of the GPL-covered plug-in with the non-free main program would violate the GPL. However, you can resolve that legal problem by adding an exception to your plug-in's license, giving permission to link it with the non-free main program.

одним словом, если есть только такая возможность, то держись от ПЗД по-дальше

beastie ★★★★★
()

>Есть ли здесь подвох?

Нет - так поступают например с блобами в ядре. И да - не служай всяких пздунов.

anonymous
()
Ответ на: Friends Don't Let Friends Read GPL code. от beastie

что то там было такое, что если твоему коду нужен ПЗД код шоб функционировать — то всё ПЗД. но может я и ошибаюсь

Я опубликовал под GPL приложение, которое использует библиотеку, реализации которой бывают под разными лицензиями (например, libGL.so). Если мое приложение юзают в системе с мезой, все нормально (лицензии совместимы, и результат линковки получается GPL). Но вот пользователю надоели тормоза Nouveau и он поставил проприетарный драйвер. Теперь моя программа динамически линкуется с libGL.so, который под лицензией, не совместимой с GPL. Что будет в таком случае? Моя программа не GPL потому, что для своей работы использует неGPL-библиотеку?

В этом случае, конечно, все можно свалить на пользователя - моя программа не нуждается в проприетарной библиотеке, а пользователь, который слинковал с проприетарной библиотекой - ССЗБ (GPL не запрещает пользователю делать с программой что угодно и линковать с чем угодно, если он не будет распространять свои модификации, слинкованные с проприетарщиной или требующие ее).

Но, предположим, моя программа хочет полную поддержку, скажем, OpenGL 4. С одной стороны, теоретически если лет через 100 появиться меза с OpenGL 4 мою программу не обязательно линковать с проприетарщиной - можно взять любую свободную реализацию. Но ведь на самом деле моя программа не будет работать ни с одной свободной реализацией, а работать будет только с проприетарными libGL.so от NVIDIA и AMD. Может ли такая программа быть под GPL?

Deleted
()
Ответ на: комментарий от anonymous

Распространять собранное ядро и собранный блоб вместе нельзя. По GPL их линковать нельзя, но по той же GPL, пользователь-ССЗБ может это делать, если не будет распространять результат такой линковки.

Deleted
()

> закрытый код
> GPL
> линкуясь динамически

низя, это тебе не LGPL.

arsi ★★★★★
()

нельзя, так можно делать только с LGPL

Reset ★★★★★
()

> Есть ли здесь подвох?

Есть. Ты - мудак.

anonymous
()
Ответ на: комментарий от Deleted

> Теперь моя программа динамически линкуется с libGL.so, который под лицензией, не совместимой с GPL. Что будет в таком случае?

Ничего не будет. Лицензия не закон божий.

Всё, что делает пользователь на своём компьютере - его дело.

Вот если бы та распространял вместе с libGL и только, это бы многим не понравилось.

anonymous
()

> который будт взаимодействовать с закрытым кодом, линкуясь динамически

Нельзя, rtfm ( http://www.gnu.org/licenses/gpl-faq.html ). Но ты можешь не линковаться, а звать свободный код через, например, pipe. Эта дыра допустима как минимум с GPLv2

anonymous
()
Ответ на: комментарий от anonymous

> через, например, pipe.
> http://www.gnu.org/licenses/gpl-faq.html

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

не всё так однозначно.

arsi ★★★★★
()

Ты можешь оформить свой проприетарный код в виде плагина, именно так работает Flash-плеер в браузерах, лицензированных под GPL, например, в Konqueror.

Aceler ★★★★★
()
Ответ на: комментарий от Deleted

беда в том, что ПЗД софт может использовать (через проклади) не-ПЗД плагин (если это рассширенная, а не эссенциельная функтиональность), а вот наоборот — имо фигушки. линкуеш с ПЗД? будь добр сними штаны и нагнись.

beastie ★★★★★
()
Ответ на: комментарий от beastie

Да обходится это не так уж сложно (хотя костыльно) - не линковать. Точнее, вместо линковки создать две программы, и в одной реализовать сервис DBus, в другой - его использовать (вместо Dbus может быть любой RPC).

Однако, если у пользователя будет не-GPL софт и GPL-плагин, и пользователь их сам слинкует (а так обычно и получается с плагинами), то нарушения GPL не будет, т.к. в GPL AFAIK сказано, что пользователю положено на своей машине делать что угодно, и если он не распространяет софт, он может не соглашаться с лицензией (в частности, с точки зрения GPL, разработчики инсталляторов не правы, что требуют от пользователя соглашаться с GPL). Только вот будет нельзя распространять вместе софт и плагин.

Deleted
()

Так можно делать.

hp
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.