LINUX.ORG.RU

Совместимость лицензий (GPL, LGPL, BSD)


0

0

Добрый день.

У меня следующая ситуация:
Пишу программу, в которой собираюсь использовать несколько библиотек, которые выпускаются под следующими лицензиями: LGPL, GPL и BSD (BSD-C3). Соответственно встает вопрос: "Имею ли я на это право?". Под какой лицензией будет моя программа - мне все равно, но вот можно ли одновременно использовать GPL и BSD библиотеки, и есть ли при этом какие-то ограничения (к примеру, на статическую линковку)?


Ответ на: комментарий от ratatosk

Линковать сможешь только с GPL-совместимым софтом.

ratatosk
()

Проблема в том, как выбрать лицензию твоей окончательной программы. Как я понимаю, если ты используешь GPL (не LGPL), то это налагает требование, чтобы окончательная лицензия тоже была GPL. Но GPL не содержит требования об упоминании авторов, и GPL запрещает добавлять свои дополнительные требования.

С другой стороны, если ты используешь BSD библиотеку, то на тебя налагается требование упоминать ее авторов. Поэтому тебе нужно добавить такое дополнительное требование.

Получается противоречие..

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

не все BSD лицензии налагают такие требования
лицензия двух пунктов FreeBSD самая в этом плане либеральная

hizel ★★★★★
()

Firends do not let friends read GLP code.

А по теме: GPL не совместима ни с чем. Используеш GPL библотеку -- ССЗБ. Уж проще написать занаво, чем с GPL связываться.

LGPL (не совсем уверен) и BSD/MIT etc. в этом плане безпроблематичны. Указываеш только где-либо в коде/документации авторов библиотеки и в перёд, с песнею под любой лицензией, котороя тебе на душу ляжет. (конечно с оговоркой, что бы требования новой лицензии не противоречили старой)

beastie ★★★★★
()

Но динамически то я могу линковаться с кем угодно (одновременно и с BSD и GPL), или нет?

riYu
() автор топика
Ответ на: комментарий от dilmah

> С другой стороны, если ты используешь BSD библиотеку, то на тебя налагается требование упоминать ее авторов. Поэтому тебе нужно добавить такое дополнительное требование.

Уверен, что аторов надо упоминать при *использовании*? ИМХО только если её код у себя использовать (а не отдельной библиотекой). Так что топикстартер может свою программу выпустить под GPL и спокойно использовать в ней динамические библиотеки под GPL, LGPL и BSD.

А ещё тут есть такая забавная штука: эту программу можно саму по себе сделать под *любой* лицензией, которая накладывает меньше ограничений, чем три вышеуказанные, например AS-IS. Тогда при сборке и использовании программы лицензия "автоматически расширится" до самой строгой - GPL. Но сам код программы (не включающий в себя библиотеки) другие люди смогут копировать и использовать в своих проектах как AS-IS. Например kdelibs были под лицензией LGPL, хотя использовали Qt, которая тогда была под GPL.

И да, программа под лицензией GPL может использовать библиотеки с *любой* лицензией, которая позволяет себя использовать, даже проприетарной. Но не наоборот =).

P.S. Возможно я в чём-то ошибся.

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

> А по теме: GPL не совместима ни с чем. Используеш GPL библотеку -- ССЗБ. Уж проще написать занаво, чем с GPL связываться.

Пишите софт под лицензией GPL и ваши волосы будут мягкими и шелковистыми.

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

Дело сугубо личное. По крайней мере весь мой софт только под BSD/MIT.

Опен-сыр и там и там. Но нарцисское осознание, что моё имя не будет вычеркнуто из списка авторов имеет для меня больший приоритет, чем амморфные идеи Столлмана. А кто и как потом использует мой код -- меня это вообще не чешит.

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

>амморфные идеи Столлмана
Зато если кто-то потрудится надо доработкой твоей либы для своего продукта, в случае с LGPL ты получишь эти доработки, а в случае с BSD - это как получится.

ratatosk
()

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

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

Чего-то я не понимаю про указание авторов...
Вот например, uClibc распространяется под LGPLv2.1

там в одном файле (w_pow.c) есть такая шапка:

/*
* ====================================================
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
* software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/

Это не противоречит LGPL?
Я могу спи**ить кусок этого файла в свою LGPL либу, забив на эту шапку?

Если нет, то как это шапка там оказалась?
Могу ли я взять LGPL либу, добавить туда файл с подобной шапкой, и распространять результат? Не будет ли это противоречить LGPL? (GPL: "You may not impose any further restrictions on the recipients' exercise of the rights granted herein.")

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

Ты можешь использовать любую лицензию для своего кода (либо добавить к свой проект файлы под другой лицензией), хоть по своей лицензии на каждый файл. Соотсветственно, отдельные файлы от туда можно будет взять под разными лицензиями и согласно им использовать, а целый продукт будет распространяться по общей лицензии с объединением всех требований лицензий на разные куски кода и пересечением всех прав. В случае использования (L)GPL и GPL compatible лицензий, такой дицензией будет сама (L)GPL, потому что другие лицензии не налагают относительно нее никаких новых ограничений и предоставляют не меньше прав пользователю кода.

> Я могу спи**ить кусок этого файла в свою LGPL либу, забив на эту шапку?

Сразу видно GPL'щика. Спиздить и закрыть. Нет, разумеется не можешь, потому что во-первых, копирайты остаются копирайтами независимо от лицензии, во-вторых последняя тебе этого не разрешает (provided that this notice is preserved). А использовать с сохранением шапки можешь сколько угодно.

> You may not impose any further restrictions on the recipients' exercise of the rights granted herein

IANAL, но оно не налагает никаких дополнительных ограничений, поэтому выглядит вполне себе GPL compatible.

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

>Нет, разумеется не можешь, потому что во-первых, копирайты остаются копирайтами независимо от лицензии.
Это да, но где в (L)GPL говорится, что я должен эти копирайты везде указывать? Я должен указывать, что я модифицировал код, чтобы мои баги не повесили на автора., но его я упоминать не обязан. Или я ошибаюсь.

>но оно не налагает никаких дополнительных ограничений, поэтому выглядит вполне себе GPL compatible.

А требование вставлять этот notice - почему не дополнительное?

>Сразу видно GPL'щика. Спиздить и закрыть.

И запатентовать еще.

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

> Зато если кто-то потрудится надо доработкой твоей либы для своего продукта, в случае с LGPL ты получишь эти доработки, а в случае с BSD - это как получится.

Вот за это я GPL'щиков и не люблю. И от куда у них такая прыть -- урвать, да по-больше?... С какого такого испугу ты берёш себе моральное право требовать с кого-либо его работу?!

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

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

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

Ты похоже не понимаешь зачем нужна GPL. Она нужна не для того, чтобы кто-то обязательно отдал автору первоначального продукта изменения, а чтобы конечный пользователь вместе с бинарниками гарантированно получил и исходники. Которые он в случае чего сможет исправить/доработать сам или нанять для этого программиста.

GPL защищает права пользователей. Разработчиков она наоборот довольно сильно ограничивает. BSD - наоборот.

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

Может оно и так, но почему я должен уступать какому-ту иммагинерному пользователю свои права и свободы? Я не хочу менять этот мир. Я не борчун, я -- элитарное быдло, которого и как пользователя и как разработчика абсолютно устраивает bsd и абсолютно не устраивает gpl.

К тому же я абсолютно не вижу связи между лицензией и доступу к сырцам. Опен-сыр ведь ни кто не отменял. Ни в первом ни во втором случае. Исходный код открыт. И даже если кто-либо не захочет пускать _его_ производный продукт в открытое плавание -- так и чёрт с ним! Исходная программа ведь открыта -- исправляй, дорабатывай, нанимай программиста в своё удовольствие! Где тут ущимление прав пользователя?

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

> почему я должен уступать

не должен

> не устраивает gpl ... Опен-сыр ведь ни кто не отменял. ... Где тут ущимление прав пользователя?

man free software

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

> Может оно и так, но почему я должен уступать какому-ту иммагинерному пользователю свои права и свободы? Я не хочу менять этот мир. Я не борчун, я -- элитарное быдло, которого и как пользователя и как разработчика абсолютно устраивает bsd и абсолютно не устраивает gpl.

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

> К тому же я абсолютно не вижу связи между лицензией и доступу к сырцам. Опен-сыр ведь ни кто не отменял. Ни в первом ни во втором случае. Исходный код открыт. И даже если кто-либо не захочет пускать _его_ производный продукт в открытое плавание -- так и чёрт с ним! Исходная программа ведь открыта -- исправляй, дорабатывай, нанимай программиста в своё удовольствие! Где тут ущимление прав пользователя?


Допустим ты написал какую-то программу и выпустил её под лицензией BSD вместе с исходниками. Эти исходники нашёл Вася Пупкин, добавил много полезных для пользователей изменений, но код решил не открывать. Выпустил только freeware бинарники под windows (твоя программа работала ещё и под *nix). Но это только пол беды. Потом Васе надоело развивать свою программу, или возможно его насмерть сбил автобус. И всё, мало того что программа перестала развиваться, дак она ещё и стала несовместима с новой Windows Eight (tm). Итого получаем мёртвую программу, которая когда-то кому-то была очень полезна, но от неё пришлось отказаться.

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

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

> Зато если кто-то потрудится надо доработкой твоей либы для своего продукта, в случае с LGPL ты получишь эти доработки, а в случае с BSD - это как получится.

Зато если кто-то подумает о доработке твоей либы для своего продукта, в случае с BSD он это сделает, а в случае с LGPL -- это как получится.

Получение доработок может отсутствовать в обоих случаях, но в случае с BSD не проблема указать авторство.

Nihilist
()

Отвечая на изначальный вопрос: да, можешь использовать BSD-C3 с GPL. В версии BSD-C3 убран пункт об обязательности указывания авторов. Где-то выше приводилась ссылка на страницу описывающую что совместимо с GPL а что нет.

Если бы лицензия была оригинальной BSD лицензией, то не мог бы.

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

Кто-то использует твой труд, почему ты не можешь с него что-то спросить? Или от противного: какое моральное право у тебя на то, чтобы требовать от другого человека указать твое авторство при релизе доработаной софтины?

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