Xpoint
   [напомнить пароль]

Использование GPL и LGPL

Метки: лицензия, gpl
2005-08-30 18:58:36 [обр] damner(0/3)[досье]
Хотелось бы обсудить возможность использования GPL и LGPL скриптов в "своих" проектах. Какие ограничения накаладывает это на проекты?
Обязательно ли чтоб проект использующий GPL скрипт (например: GeSHi, "The DHTML Calendar"[www.dynarch.com/projects/calendar/], dTree[www.destroydrop.com/javascript/tree/]) распространялся бы тоже по лицензии GPL?
спустя 6 часов [обр] Дмитрий Донцов+++(9/68)[досье]

damner[досье]

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

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

спустя 19 часов [обр] damner(0/3)[досье]
Дмитрий Донцов[досье] Ну а если, к примеру, я не распространяю код сторонних программ GPL, но предусматриваю возможность устанавливать программу GPL, как подключаемый модуль то что? Что если сделать автоматическое скачивание и встраивание в мою программу, например, того же DHTML Calendar, уже после установки системы?
спустя 41 минуту [обр] Дмитрий Донцов+++(9/68)[досье]

damner[досье]
ну, а какая разница?

вы ведь не будете утверждать, что
скачивание программы вручную и установка ее вручную
и
скачивание программы автоматически и установка ее автоматически
суть разные действия...
результат-то один и тот же - получение, распространение...

я повторюсь... вы можете не показывать код всем подряд, и не распространять ваше решение публично (лицензия к этому не принуждает), но вы должны предоставить код тем, кому Вы отдаете (продаете) ваше решение...

зы
я не юрист, и высказываю свое, сугубо личное мнение, как я понимаю GPL
может найдется еще кто-нибудь кто прокомментирует...

спустя 3 часа 16 минут [обр] Владимир Палант(149/4445)[досье]
Насколько я помню, использование GPL-библиотеки не обязывает открывать код всего остального приложения. Ну а LGPL вообще менее строг...
спустя 14 часов [обр] damner(0/3)[досье]

Дмитрий Донцов[досье] ну как мне кажется что автоматическое скачивание программы GPL более похоже на скачивание и установка программы GPL конечным пользователем (не разработчиком до распространения). Получается что исходные коды GPL-программы не распространяются.

Владимир Палант[досье] Я б тоже хотел бы так понимать, но к сожалению много в сети встречал высказываний протеворечущих вашей формулировке. Вот я и решил выяснить, мож кто на практике делал комерческое ПО с испоользованием GPL, и хорошо разбирается в этом вопросе. А на счёт LGPL вроде всё ясно, какжется с ним вообще заморочек в этом плане нет :)

спустя 1 день 3 часа [обр] Андрей Иванов(0/3)[досье]

Вкратце.

Использование кода из GPL-продукта обязывает использование для своего продукта лицензии GPL.
Например, когда переделываешь какой-нибудь MidnightCommaner, добавляешь туда какие-нибудь фичи, лицензия на него не может быть ограниченнее GPL.

Использование GPL-тулзов обязывает к упоминанию о таком использовании, твоя лицензия может быть любой.
Например, можно использовать в своей коммерческой программе с закрытым кодом Миранду. Но только как целое приложение, без прямых вызовов её функций. Грубо говоря, можно создавать процессы и передавать им при этом параметры вызова, но нельзя напрямую вызывать GPL-код из своего кода.

LGPL предназначена для библиотек. Позволяет использовать LGPL-код в коде с любой лицензией, но требует упоминания о таком использовании.

Примерно так.
Можно поискать в поисковиках ответ. Почитав несколько описаний сложится более-менее реальное понимание лицензии.
Они из-за юридических формальностей сильно всё там усложнили.

спустя 1 месяц 1 день [обр] Закиров Руслан(1/341)[досье]

Андрей Иванов[досье] Я не согласен, что нельзя вызывать методы, а только создавать процессы, тогда получается, что нельзя выполнять системные вызовы ядра или любой Perl интерфейс к GPL библиотеке должен быть под лицензией GPL.

В GPL есть понятие "derived work" - производная работа, вот все, что является такой работой должно иметь лицензию GPL. У этого определения достаточно хитрая и неоднозначная интерпретация, особенно в случае библиотек. Для решения этих неоднозначностей была написана LGPL или по другому "GPL версии 2.1". Прошу отметить, что GPL-2.1 отличается от GPL-2.0 и термин LGPL является синонимом первого, но не второго.

По поводу производных и непроизводных работ. Получается, что если программой предусмотренны интерфейсы для работы с ней, то использование этих интерфейсов не является производной работой.

Если вы распространяете свою программу вместе с программой GPL, то вы должны отметить это в тексте своей лицензии, а так же указать где пользователь может получить код распространяемый под GPL и текст самой лицензии GPL. Распространять исходные коды и тест лицензии GPL не обязательно, но можно указать ссылку.

Вот вы взяли календарь и поменяли его стиль под стиль в вашего сайта с помощью css - это не является "производной работой" так как интерфес календаря предусматирвает изменение стилей внешними средствами(CSS) и вы можете отправлять пользователя смело к первоисточнику и говорить, что вы используете их решение.

Допустим календарь не поддерживает локализацию, и вам пришлось заменить все тексты на русский вариант - это будет "производная работа" со всеми вытекающими, но если календарь поддерживает локализацию через .po файлы или какую другую схему с внешними источниками данных, то ваше право распространять источник данных под любой лицензией.

Тоже самое происходит с расширением функционала. Если программное обеспечение поддерживает расширение функционала через plugin'ы или другой методы, то плагин не является наследуемой работой и может распространятся под любой лицензией. Эту схему чиспользуют другие компании, для реализации своих закрытых решений на базе GPL решений., но даже если программа изначально не поддерживает плагинов, то можно реализовать возможности плагинов и распространять расширеный вариант под GPL, а закрытую часть в форме плагина под любой другой лицензией.

Опять же все эти разговоры о GPL в нашей стране могу не иметь смысла. И много чего еще.

Все изложенное выше безусловно IMHO.

спустя 2 месяца 7 дней [обр] Андрей Иванов(0/3)[досье]

Закиров Руслан[досье]

Я не согласен, что нельзя вызывать методы, а только создавать процессы, тогда получается, что нельзя выполнять системные вызовы ядра или любой Perl интерфейс к GPL библиотеке должен быть под лицензией GPL.

Когда делается Perl-интерфейс к GPL-библиотеке, этот интерфейс обязан быть под лицензией GPL.
Системные вызовы ядра это что? Из воздуха берутся? Наверняка они оформлены в виде библиотек и имеют лицензию, похожую на LGPL (или её саму). Поэтому с системными вызовами всё нормально - можно использовать в софте с любой лицензией.

У этого определения достаточно хитрая и неоднозначная интерпретация, особенно в случае библиотек.

Неоднозначные интерпретации были в первой версии GPL. Потом ею занимались юристы и неоднозначности к текущей версии убрали.

Получается, что если программой предусмотренны интерфейсы для работы с ней, то использование этих интерфейсов не является производной работой.

Масло масляное. Если программа распространяется под лицензией GPL, вызывать напрямую её методы нельзя, если LGPL, то можно. Всё просто. Зачем усложнять? Программа с возможностью и лицензией библиотеки есть библиотека, к чему плодить сущности?
Прямой вызов метода это включение хедера. А включение хедера это использование кода. Если лицензия GPL, значит лицензия твоего продукта тоже обязана быть GPL. И пофигу, есть интерфейс, нет интерфейса - если я опубликую свою библиотеку под GPL, использовать её может только GPL-софт.

Вот вы взяли календарь и поменяли его стиль

Это называется конфигурирование, а не использование чужих кода и/или бинарников в своём. Это я про "поменяли", а "взяли", конечно, будет влиять на лицензию использующего продукта.

Опять же все эти разговоры о GPL в нашей стране могу не иметь смысла.

Отчего же? У нас нарушителей лицензий совсем не на порядки больше, чем в любой другой стране. Плюс, знать и понимать такие вещи девелоперу полезно.

И много чего еще.

Например?

Все изложенное выше безусловно IMHO.

Это можно не писать - очевидно, что не-IMHO изложено в соответствующих документах на сайте gnu.org, а мы тут высказываем своё видение этих документов =)

спустя 1 день 13 часов [обр] Сергей Чернышев(27/589)[досье]

То есть получается, что если я хочу сделать Open Source только часть своей системы, то под GPL мне никак ее не выложить?

А что там с моментом про dual licansing который может делать автор кода? можно выложить под GPL для всех и под чем-то другим для себя? как тогда быть с обновлениями кода, пришедшими извне? есть ли возможность их как-нибудь добавить не превращая свою лицензию в GPL?

спустя 12 минут [обр] Сергей Чернышев(27/589)[досье]

Андрей Иванов[досье]
Кстати, вот у меня есть задачка выбрать лицензию для проекта:

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

Данные у обоих модулей пересекаются и можно сказать что они обмениваются ими управляя работой друг-друга.

Так вот вопрос - можно ли один модуль выпустить под лицензией GPL, а другой под любой другой лицензией? Не является ли такой способ взаимодействия, вызовом одним модулем функций другого модуля?

спустя 3 дня [обр] Закиров Руслан(1/341)[досье]

Андрей Иванов[досье] Вот тут написано про совмещение GPL и proprietary софта. Если программа распростроняется под лицензией GPL, то вызывать ее можно, например вызвать grep вы можете из любой программы, это относится и к системным вызовам. Вы даже можете распространять программы вместе, но только нужно дать понять пользователю, что лн получает не одну прогрмму, а несколько и часть из них под GPL.

Перечитал еще раз материалы в сети и понял, что линковатся с GPL кодом нельзя ни динамически ни статично.

Еще раз подумал про пример с календарем, то получается, что используя на сайте модуль(библиотеку, не суть) календаря, который распространяется под GPL, то я должен все исходники сайта сделать доступными под GPL. Или нет? Какое это использование? Сразу вспоминается Google, который на своем кластере использует измененный linux kernel (во всяком случае я такое где-то читал), но при этом они не делают доступными свои изменения.

Если говорить о нашей стране, то я не считаю, что у нас нарушителей много, но мне кажется, что нарушителя нет возможности призвать к ответу.

Сергей Чернышев[досье] Только владелец авторских прав может применить другую(двойную) лицензию к GPL коду, а это значит, что вы либо отказываете во включении любых изменений из вне, лиюо с каждым contributor'ом подписываете соглашение о передаче авторских прав и последний вариант - распространяете GPL код с коментарием, что расспространяя любой contributor передает свои права компании бла-бла или Васе Пупкину. Последний вариант используется компанией Best Practical Solutions и в каждом файле стоит такая пометка, без нее компания не может рапространять под второй лицензией продукт с включенными изменениями от пользователей.

Интересный FAQ про двойную лицензию Qt и почему не были выбранны GPL и LGPL для free варианта.

Про пример с модулем я думаю, что случай не является нарушением GPL. Аналогичные пример продукт на выходе компилятора или редактора. http://www.gnu.org/licenses/gpl-faq.html#TOCCanIUseGPLToolsForNF

спустя 1 час 11 минут [обр] Владимир Палант(149/4445)[досье]
Закиров Руслан[досье]
Я понимаю пункт 2b) лицензии так, что открывать изменения нужно только для распространения программы. Модификация для собственных нужд не ограничена. Соответственно Google имеет право менять ядро Linux сколько угодно. Пока он не решит это ядро продавать, открывать изменения ему не придется.
спустя 18 часов [обр] Старынин Валерий(2/57)[досье]

Владимир Палант[досье]

Пока он не решит это ядро продавать

Не продавать, а просто распространять. Я понял так. Ведь продавать GPL-софт нельзя. :-)

спустя 2 часа 18 минут [обр] Владимир Палант(149/4445)[досье]
Да, я имел в виду "продавать бесплатно" :)
спустя 15 часов [обр] Сергей Чернышев(27/589)[досье]
Старынин Валерий[досье]
Что за ерунда! Почему это продавать GPL софт нельзя?! Нельзя закрывать его исходный код, а продавать его никто не мешает совершенно!
спустя 3 часа 36 минут [обр] Владимир Палант(149/4445)[досье]
Сергей Чернышев[досье]
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
спустя 1 день 10 часов [обр] Сергей Чернышев(27/589)[досье]
Владимир Палант[досье]
Ну, а я разьве что-то не так написал? естественно, теряется смысл продаваит лицензию на использование, но брать деньги за "physical act of transferring a copy" - вполне нормально. Или это уже на "продавать" не тянет?
спустя 1 день 21 час [обр] Закиров Руслан(1/341)[досье]

"Продавать софт" — брать деньги за интеллектуальную собственность и/или возможность ее использования. Вопрос терминов, но так как мы залезли в область законов, то термины играют самую важную роль. Все, что распространяется под лицензией GPL, продавать нельзя, но можно брать деньги:

  • затраты на распространение
  • гарантиийную защиту

RH и другие дистро-строители, цены на продукты которых много выше цен распространения компактов, берут деньги за предоплаченный саппорт и/или утилиты, которые входят в состав, но имеют другую лицензию.

спустя 36 минут [обр] Сергей Чернышев(27/589)[досье]

А какова цена распространения компакта? Что мешает мне не давать саппорта и других утилит, а при этом брать больше RedHat-а за само распространение? Это я к тому что не важно какая составляющая оплачивает товар.

Что значит, "брать деньги за интеллектуальную собственность и/или возможность ее использования"? Я понимаю, что нельзя брать деньги за возможность использования интеллектуальной собственности, но в чем заключается понятие "брать деньги за интеллектуальную собственность" если не принимать в рассчет "возможность использования интеллектуальной стобственности"? Можно пример?

спустя 19 часов [обр] Закиров Руслан(1/341)[досье]

Наверное нужно было выразится так: - "брать деньги за различные варианты использования интеллектуальной собственности." Мне например кажется, что например нельзя продать (передать за деньги) авторские права.

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

спустя 15 часов [обр] Сергей Чернышев(27/589)[досье]

Закиров Руслан[досье]
Не - нельзя ни на кого подать в суд за такое ведь у каждого свои принципы формирования себестоимости - их просто экономически задавят - ведь каждый может легко скопировать то что они продают и продавать дешевле если это экономически выгодно.

Кстати, про авторские права - это интересно. Как же тогда делать двойное лицензирование в случае если нет возможности самому все написать? Предположим, я нанимаю программиста для написания кода, который потом буду распространять под GPL и под своей лицензией. Принадлежат ли мне авторские права или они принадлежать программисту написавшему код? Думаю, что авторское право неотъемлимо от автора, но по нему ли идет ограничение в GPL?

спустя 4 часа 36 минут [обр] Андрей Иванов(0/3)[досье]

Сергей Чернышев[досье]

если я хочу сделать Open Source только часть своей системы, то под GPL мне никак ее не выложить?

OpenSource и GPL не одно и то же. Софт может быть коммерческим и при этом OpenSource. GPL просто обязывает делать код OpenSource.
Если имеется в виду, что OpenSource будет только часть софта, который весь под GPL, то нельзя. Могут быть какие-нибудь другие варианты - например, OpenSource часть выполнить в виде библиотеки и публиковать библиотеку под LGPL, а остальную часть публиковать под любой другой лицензией.

можно выложить под GPL для всех и под чем-то другим для себя?

Не понял вопроса. Какой смысл делать одну из самых открытых лицензий для всех и что-то с более строгими правилами для себя?

Не является ли такой способ взаимодействия, вызовом одним модулем функций другого модуля?

Не является. Вызов функции имеется в виду при линковании и/или использовании GPL кода.
Если модули через БД передают имена функций или адреса, это линкование. Общее определение может и есть или можно придумать, но времени на его обдумывание нет =)

Что мешает мне не давать саппорта и других утилит, а при этом брать больше RedHat-а за само распространение?

Лицензия GPL. Очевидно, что затраты на производство и распространение у всех будет примерно равны, поэтому если вышеперечисленное будет стоить больше, чем стоит оно же у других участников рынка, плюс саппорт, найдутся желающие проверить правильность использования лицензий.

Я понимаю, что нельзя брать деньги за возможность использования интеллектуальной собственности

Весь софт именно так и продаётся. Потому что, покупая WindowsXP, например, покупается право пользования этой ОС, а не сама ОС, которая является кодом и какими-то ресурсами.

в чем заключается понятие "брать деньги за интеллектуальную собственность" если не принимать в рассчет "возможность использования интеллектуальной стобственности"? Можно пример?

Можно купить какую-нибудь компанию-конкурента, все её разработки и закрыть нафиг всё.

Не - нельзя ни на кого подать в суд за такое ведь у каждого свои принципы формирования себестоимости - их просто экономически задавят - ведь каждый может легко скопировать то что они продают и продавать дешевле если это экономически выгодно.

Можно подать за такое в суд. Просто если нет доказательств нарушения лицензии, то смысла подавать тоже нет.

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

В случае с одним программистом автором является он. Если работали несколько человек (может и не программисты), то авторство совместное. При заключении трудового договора обычно работодатель ставит условие эксклюзивного использования результатов труда работника, то есть, работник хоть и является автором чего-либо, никаких прав на использование вне работодателя у него нет, а работодатель может делать с результатами работы что угодно, включая публикацию под двумя лицензиями.

Закиров Руслан[досье]

Если программа распростроняется под лицензией GPL, то вызывать ее можно

Это и далее в абзаце к чему? ;) Я об этом писал ещё в самом первом посте =) Просто "вызов программы" это как-то по-юзерски, поэтому использую "создание процесса".

используя на сайте модуль(библиотеку, не суть) календаря, который распространяется под GPL, то я должен все исходники сайта сделать доступными под GPL

Да. Для избежания этого существует лицензия LGPL, позволяющая использовать библиотеки в коммерческом софте без обязательсв по его лицензированию.

Сразу вспоминается Google, который на своем кластере использует измененный linux kernel (во всяком случае я такое где-то читал), но при этом они не делают доступными свои изменения.

По этому поводу я согласен с Владимир Палант[досье].

Если говорить о нашей стране, то я не считаю, что у нас нарушителей много, но мне кажется, что нарушителя нет возможности призвать к ответу.

Есть. Только не всегда овчинка стоит выделки.

Мне например кажется, что например нельзя продать (передать за деньги) авторские права.

Автор это тот, кто что-то сделал. Ни за деньги, ни как-либо иначе нельзя сделать автором другого человека =)

спустя 3 часа 36 минут [обр] Сергей Чернышев(27/589)[досье]
Андрей Иванов[досье]
Речь идет именно о GPL, который не позволит остальным вносить изменения в тот код, который я открываю не принеся этих изменений в общий котел и о коммерческой лицензии, которая позволит МНЕ вносить подобные изменения и продавать продукт или сервис на основе этого продукта.
спустя 5 часов [обр] Закиров Руслан(1/341)[досье]

Автор и авторские права — разные понятия. http://www.copyright.ru/right_trans-1561.html

Сергей Чернышев[досье] Работодатель может указать в контракте пункт передачи авторских прав компании. Смотрите пункт 3) по ссылке выше.

Андрей Иванов[досье] Еще немного подумал про пример с календарем на сайте. Ситуация получается как с Google. Я ничего не распространяю, а только использую, значит могу использовать любую лицензию для исходников сайта.

спустя 2 часа 16 минут [обр] Сергей Чернышев(27/589)[досье]
Закиров Руслан[досье]
То есть если OpenSource-продукт это какой-нибудь софт, публично используемого сервиса типа LiveJournal, то я могу его модифицировать и продавать услуги моего DroukJournal-а и класть на лицензию LiveJournal будь она хоть GPL?
спустя 18 минут [обр] Закиров Руслан(1/341)[досье]
Сергей Чернышев[досье] Именно так, но только, если это GPL. Про другие лицензии мы не говорим.
спустя 11 часов [обр] Сергей Чернышев(27/589)[досье]
Закиров Руслан[досье]
Ага. А могу ли я потом продать этот сайт кому-нибудь вместе с модификациями, которые я сделал?
спустя 17 часов [обр] Закиров Руслан(1/341)[досье]

Наверное вы можете эксклюзивно передать все права другой компании, но только лишившись возможности использовать эту систему самому.

Мне кажется, что чистый GPL не самый лучший вариант для совмещения с классическим проприетарным софтом, тут нужны другие модели получения прибыли, например custom development, cross-system integration, support и другие платные сервисы.

спустя 8 часов [обр] Сергей Чернышев(27/589)[досье]
Закиров Руслан[досье]
Мне не нужна другая модель получения прибыли - мне нужна какая-нибудь модель OpenSource если вообще нужна.
спустя 5 дней [обр] Закиров Руслан(1/341)[досье]
Сергей Чернышев[досье] Есть куча других OS лицензий, которые позволяют совмещать комерческое и некомерческое использование.
спустя 9 часов [обр] Сергей Чернышев(27/589)[досье]
Закиров Руслан[досье]
Ну, так как разработка, скорее всего, будет на Perl, то я выберу как раз Perl standard - Artictic/GPL по желанию юзера.
Powered by POEM™ Engine Copyright © 2002-2005