Автор Тема: Совместимость лицензий (GPL, LGPL, BSD)  (Прочитано 4906 раз)

Оффлайн SS

  • Участник
  • *
  • Сообщений: 5
  • Simply Linux 5
Добрый день.

Передо мной встала следующая задача:
Есть две программы:
1) Свободно распространяемая программа. Под какой лицензией она будет
выпускаться, мне все равно. Я хочу использовать в ней 2 библиотеки: одна - GPL,
другая - BSD. Могу ли я одновременно использовать эти библиотеки в своей
программе? Не будет ли GPL-библиотека накладывать ограничения на использование
BSD библиотеки? Если нет, то под какой лицензией я могу выпускать свою
программу, и как я могу ее собирать (можно ли выполнять статическую линковку с
этими библиотеками, или только с одной из них)?
2) Коммерческая программа (пишу на работе). Хотелось бы в ней использовать одну
GPL библиотеку. Могу ли я, к примеру, написать собственную LGPL-библиотеку,
которая будет выступать чем-то вроде прокси к этой GPL-библиотеке? Т. е. LGPL-
библиотека будет динамически слинкована с GPL-библиотекой, а моя программа
будет динамически линковаться с этой LGPL-прокси-библиотекой (заголовочные
файлы LGPL-библиотеки не будут включать в себя каких-либо частей GPL-
библиотеки).

Буду также благодарен за ссылки на статьи/FAQ и т.п. по теме.

Drool

  • Гость
Re: Совместимость лицензий (GPL, LGPL, BSD)
« Ответ #1 : 29.04.2009 23:04:03 »
Это Вам в рассылке на-а-амного быстрее расскажут.

Оффлайн aen

  • alt linux team
  • ***
  • Сообщений: 2 452
Re: Совместимость лицензий (GPL, LGPL, BSD)
« Ответ #2 : 01.05.2009 03:12:41 »
Добрый день.

Передо мной встала следующая задача:
Есть две программы:
1) Свободно распространяемая программа. Под какой лицензией она будет
выпускаться, мне все равно. Я хочу использовать в ней 2 библиотеки: одна - GPL,
другая - BSD. Могу ли я одновременно использовать эти библиотеки в своей
программе? Не будет ли GPL-библиотека накладывать ограничения на использование
BSD библиотеки? Если нет, то под какой лицензией я могу выпускать свою
программу, и как я могу ее собирать (можно ли выполнять статическую линковку с
этими библиотеками, или только с одной из них)?

Можете. Лицензия должна быть GPL.
Цитировать
2) Коммерческая программа (пишу на работе). Хотелось бы в ней использовать одну
GPL библиотеку. Могу ли я, к примеру, написать собственную LGPL-библиотеку,
которая будет выступать чем-то вроде прокси к этой GPL-библиотеке? Т. е. LGPL-
библиотека будет динамически слинкована с GPL-библиотекой, а моя программа
будет динамически линковаться с этой LGPL-прокси-библиотекой (заголовочные
файлы LGPL-библиотеки не будут включать в себя каких-либо частей GPL-
библиотеки).
Нет, так нельзя.
Едиинственный способ использования проприетарного кода c кодом GPL -- механизм plugin. Никакая динамическая линковка,  пусть опосредованная, невозможна.

Оффлайн SS

  • Участник
  • *
  • Сообщений: 5
  • Simply Linux 5
Re: Совместимость лицензий (GPL, LGPL, BSD)
« Ответ #3 : 01.05.2009 13:34:34 »
Спасибо за ответы.
1) ... Не будет ли GPL-библиотека накладывать ограничения на использование
BSD библиотеки??
Можете. Лицензия должна быть GPL.
А BSD-библиотека не будет накладывать дополнительные ограничения? Например обязательное упоминание автора и оригинального названия используемой либы? Может ещё что-то?
Едиинственный способ использования проприетарного кода c кодом GPL -- механизм plugin. Никакая динамическая линковка,  пусть опосредованная, невозможна.
dlopen например?

Оффлайн dottedmag

  • /usr/sbin/control
  • *******
  • Сообщений: 235
Re: Совместимость лицензий (GPL, LGPL, BSD)
« Ответ #4 : 02.05.2009 11:39:55 »
А BSD-библиотека не будет накладывать дополнительные ограничения? Например обязательное упоминание автора и оригинального названия используемой либы? Может ещё что-то?

Есть две версии BSD-лицении: BSD4 и BSD3 (посмотрите в той же википедии). Подавляющее большинство BSD-кода - под BSD3, не требующей упоминания автора в программе.

Едиинственный способ использования проприетарного кода c кодом GPL -- механизм plugin. Никакая динамическая линковка,  пусть опосредованная, невозможна.
dlopen например?

Да. При этом интерфейс между проприетарным кодом и GPL-плагином (или наоборот) имеет смысл лицензировать отдельно (т.е. явно создать хидер с BSD-лицензией или public domain с описанием интерфейса, через который и будут общаться программа и плагин), иначе может оказаться, что проприетарный код "обладает интимным знанием" GPL-ного кода и станет GPL-derived.
Debian Lenny

Оффлайн riYu

  • Участник
  • *
  • Сообщений: 1
Re: Совместимость лицензий (GPL, LGPL, BSD)
« Ответ #5 : 02.05.2009 14:34:46 »
Есть две версии BSD-лицении: BSD4 и BSD3 (посмотрите в той же википедии). Подавляющее большинство BSD-кода - под BSD3, не требующей упоминания автора в программе.
Я вот сейчас читаю BSD3 лицензию, и там написано:
Цитировать
* Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in
  the documentation and/or other materials provided with the distribution.
* Neither the name of [COMPANY] nor the names of its
  contributors may be used to endorse or promote products derived
  from this software without specific prior written permission.
Насколько я понимаю, первые 2 пункта как раз это и требуют. Или я что-то не правильно понимаю?

Да. При этом интерфейс между проприетарным кодом и GPL-плагином (или наоборот) имеет смысл лицензировать отдельно (т.е. явно создать хидер с BSD-лицензией или public domain с описанием интерфейса, через который и будут общаться программа и плагин), иначе может оказаться, что проприетарный код "обладает интимным знанием" GPL-ного кода и станет GPL-derived.
Т. е., к примеру, плагин будет состоять из двух файлов: plugin.c и plugin.h. В plugin.h будет описан только интерфейс плагина. plugin.c будет компилироваться статически или динамически с GPL'ной библиотекой и затем программа будет подгружать его через dlopen? Но, насколько я понимаю, даже если плагин под Public Domain, то при использовании GPL-ной библиотеки его лицензия понижается до более строгой (GPL), и он сам (не исходники, но сам плагин в целом) становится GPL. А в таком случае его уже нельзя подключать динамически к несвободному ПО. Или нет? :)

Оффлайн dottedmag

  • /usr/sbin/control
  • *******
  • Сообщений: 235
Re: Совместимость лицензий (GPL, LGPL, BSD)
« Ответ #6 : 03.05.2009 16:22:53 »
Есть две версии BSD-лицении: BSD4 и BSD3 (посмотрите в той же википедии). Подавляющее большинство BSD-кода - под BSD3, не требующей упоминания автора в программе.
Я вот сейчас читаю BSD3 лицензию, и там написано:
Цитировать
* Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in
  the documentation and/or other materials provided with the distribution.
* Neither the name of [COMPANY] nor the names of its
  contributors may be used to endorse or promote products derived
  from this software without specific prior written permission.
Насколько я понимаю, первые 2 пункта как раз это и требуют. Или я что-то не правильно понимаю?

Да. Это требование оставить copyright notices в самих исходниках.

Да. При этом интерфейс между проприетарным кодом и GPL-плагином (или наоборот) имеет смысл лицензировать отдельно (т.е. явно создать хидер с BSD-лицензией или public domain с описанием интерфейса, через который и будут общаться программа и плагин), иначе может оказаться, что проприетарный код "обладает интимным знанием" GPL-ного кода и станет GPL-derived.
Т. е., к примеру, плагин будет состоять из двух файлов: plugin.c и plugin.h. В plugin.h будет описан только интерфейс плагина. plugin.c будет компилироваться статически или динамически с GPL'ной библиотекой и затем программа будет подгружать его через dlopen? Но, насколько я понимаю, даже если плагин под Public Domain, то при использовании GPL-ной библиотеки его лицензия понижается до более строгой (GPL), и он сам (не исходники, но сам плагин в целом) становится GPL. А в таком случае его уже нельзя подключать динамически к несвободному ПО. Или нет? :)

Можно подключать динамически, но не линковать.
Debian Lenny

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....