LINUX.ORG.RU

Лицензии, как быть

 , ,


0

2

Правильно ли я понимаю, что заюзать код gplv3 из кода лицензированного аля bsd, без смены лицензии нельзя?

UPD:

Под «заюзать» я понимаю - взять исходный файл или его часть из gplv3 codebase и добавить его в bsd лицензированный codebase.

В принципе, очевидный ответ - нет. Но, сиё меня безумно расстраивает, видимо по этому я и запостил сей тупнячок.

★★★★★

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

Я не до конца понял, что вы сказали, но почти уверен, что неправильно понимаете.

Zmicier ★★★★★
()

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

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

смотря как заюзать, но почти всегда ответ «да, нельзя».

Почти всегда ответ «нет, можно».

GPL-лицензией

Вы какое-то слово пропустили.

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 2)

А что мешает взять и добавить?
Лицензия BSD не запрещает взять и поменять лицензию на часть кода или даже на весь код целиком.

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

Лицензия BSD не запрещает взять и поменять лицензию на часть кода или даже на весь код целиком.

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

Но не запрещают добавлять иные условия поверх в порядке сублицензирования.

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

UPD:

Здесь, на ЛОРе, на изменения поста уведомления не приходят, так так что ваше «UPD» можно увидеть только случайно.

Под «заюзать» я понимаю - взять исходный файл или его часть из gplv3 codebase и добавить его в bsd лицензированный codebase.
В принципе, очевидный ответ - нет. Но, сиё меня безумно расстраивает, видимо по этому я и запостил сей тупнячок.

Очевидный ответ — да. Бога ради, кто ж вам мешает? (Ну если только вы не имеете в виду оригинальную лицензию БСД со злостным пунктом о рекламе, которая несовместима с лицензиями ГНУ.)

Zmicier ★★★★★
()
Ответ на: Сдесь всё описано: от Vsevolod-linuxoid

http://www.linuxcenter.ru/lib/books/posixbook/ch01.phtml

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

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

По-моему, ты всё-таки можешь лицензировать свой код одновременно под GPL и под BSD, или даже только под BSD. Комбинация из твоего кода и GPL'ного будет исключительно под GPL, но если кто-нибудь перепишет все GPL-only части, то можно будет использовать всю работу и под BSD. Или если части, зависящие от GPL, можно отключить при компиляции, остальное можно скомпилировать отдельно.

Но я в этом не уверен.

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

Ох, раз тут знающие люди примажусь к треду со своим вопросом - а вот есть у меня проект, в котором я использую какие-то сторонние библиотеки. Свой проект я хочу выложить под абстрактным WTFPL и не хочу париться, позволяют ли это сделать лицензии сторонних компонентов. Могу я просто написать что «для работы нужны те и вот те либы, берите их сами, я использовал отсюда - ссылка1, ссылка2»? Будет ли это нарушением того же GPL, хотя мой проект может работать с либой под другой лицензией, которая, по сути, делает все то же самое (если я скажу что использовал GPLную)?

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

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

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

В самом проекте нет.

Не должно быть никаких проблем.

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

Можешь даже приложить бинарники этих библиотек к своему проекту, а в ридми указать ссылку на их исходники.

aplay ★★★★★
()

Делай что хочешь, забей на лицензии и вступай в пиратскую партию.

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

и не хочу париться, позволяют ли это сделать лицензии сторонних компонентов.

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

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

Под «заюзать» я понимаю - взять исходный файл или его часть из gplv3 codebase и добавить его в bsd лицензированный codebase.

Так сделать можно и это вполне легально. Но, естественно, GPLv3 код останется под GPL v3, если ты не договоришься с правообладателем этого кода.

В принципе, очевидный ответ - нет.

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

Есть отдельная проблема, не связанная с лицензиями, но связанная с политикой большинства проектов, лицензированных под BSD — они не примут это в апстрим. Но тут проблема не с самими лицензиями, а именно с политикой конкретных мейнтейнеров.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от Xenius

Это я понимаю. Другое дело что я не хочу разбираться в тонкостях взаимодействия GPL<>MIT<>BSD<>etc, по-этому хочу понять, как следует поступить с библиотеками чтоб их лицензии не мешали ни друг другу, ни моему коду, который вообще может быть проприетарщиной или наоборот выйти с WTFPL (что как минимум противоречит, если я правильно понял, GPL).

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

ни моему коду, который вообще может быть проприетарщиной

Распространять написанный тобой код под проприетарными лицензиями аморально. Не делай так.

Использовать GPL-библиотеки в таком случае ты не можешь. GPL разрешает их использовать только в свободных программах.

или наоборот выйти с WTFPL (что как минимум противоречит, если я правильно понял, GPL).

Не противоречит, если кроме лицензии WTFPL ты предоставил исходные коды.

Не хочу разбираться в тонкостях

Просто нужно соблюсти лицензии всех библиотек. В большинстве случаев возможных комбинаций это нетрудно.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от Xenius

GPL разрешает их использовать только в свободных программах.

Вот, о таких тонкостях я не знал, спасибо!

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

Не противоречит, если кроме лицензии WTFPL ты предоставил исходные коды.

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

Просто нужно соблюсти лицензии всех библиотек. В большинстве случаев возможных комбинаций это нетрудно

Не трудно, но вот эта бюрократия меня абсолютно не интересует. Я хочу код писать.

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

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

Как ты код используешь вообще не важно, хоть напрямую, хоть нет.

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

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

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

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

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

a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.

У тебя немного особенный случай, поэтому требования в переводе на русский получаются примерно такие:
a) В работе должно быть явно указано, что она использует такую-то GPL-библиотеку. Это можно в README поместить или назвать файл COPYING или ещё как-нибудь.
б) Должно быть явно указано, что вся работа как целое распространяется под условиями GPL. Если есть какие-то дополнительные условия то их тоже надо указать, они могут появиться из-за других библиотек например.
в) Вся работак как целое должна быть лицензирована под GPL для всех у кого есть копия этой работы. При этом какие-то части работы могут иметь другие лицензии, если они не противоречат GPL, и это требование никуда не убирает других лицензий. Это значит, что кто-то другой не будет иметь право сделать программу проприетарной, например, пока не уберёт зависимость от GPL-библиотеки, но нормальным свободным пользователям это никак не мешает.
г) Если у программы есть интерактивный пользовательский интерфейс, то в нём должно демонстрироваться уведомление пользователя о его правах, указанных в GPL, но ты его добавлять не обязан, если его не было — а вот удалить его из readline например нельзя, если она его при каких-то условиях демнострирует.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

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

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

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

Дисклеймер: я не юрист, используйте мои советы на свой страх и риск.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 2)
Ответ на: комментарий от Xenius

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

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

Мне вот что не понятно - на своем локалхосте я могу городить что хочу, в том числе и вообще забить на лицензии. Почему я не могу выпустить свой софт под несовместимой с GPL лицензией, при этом в README написать что-то вроде «Нужна %libname% (%url%), но так как она противоречит моей лицензии включить в проект я ее не могу. Либо скачайте сами и дальше разбирайтесь в лицензиях при распространении, либо возьмите другую либу, которая будет делать то же самое, но распространяется под совместимой с моей лицензией»? Опять же я даже и это могу не писать, могу сказать «нужна либа, которая делает вот это и это, где и что возмете - не интересует» или же вообще выпустить свой «продукт» без указания каких-то библиотек (будто я презентую некие сниппеты, а как там в конце концов это используется - не волнует). Я понимаю что в итоге я выпускаю не готовую программу, а просто набор кусков исходников. То есть если кратко - я должен заботиться о лицензиях только при распространении продукта, не означает ли мое «не включение» в проект сторонних библиотек то, что выпускать его я могу под любой лицензией, даже не совместимой с необходимыми для работы либами?

в) Вся работак как целое должна быть лицензирована под GPL для всех у кого есть копия этой работы.

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

alozovskoy ★★★★★
()

Может быть, мне повезло, но когда возникла подобная ситуация, то автора небольшого кусочка кода, лицензированного по gpl, я попросил перелицензировать под bsd3, и он согласился) Но я прежде оценил, что он на это может пойти.

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

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

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

Почему я не могу выпустить свой софт под несовместимой с GPL лицензией, при этом в README написать что-то вроде «Нужна %libname% (%url%), но так как она противоречит моей лицензии включить в проект я ее не могу.

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

е означает ли мое «не включение» в проект сторонних библиотек то, что выпускать его я могу под любой лицензией, даже не совместимой с необходимыми для работы либами?

В любом случае это создаст дополнительные сложности пользователям. И программу эту не включат в дистрибутивы. Тебе надо это? Не лучше ли взять и соблюсти все условия лицензий — тем более что они необременительные?

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

Ну, конечно, если ТС не собирается свой код дальше никуда распространять, то может делать как хочет. А вот если собирается, то только в виде GPL (это же «вирусная» лицензия)

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

А вот если собирается, то только в виде GPL

Да нет же. Слушайте, можно я не буду пересказывать все то, что́, пока я спал, прекрасно растолковал т. Xenius?

(это же «вирусная» лицензия)

Нет такого термина «вирусная лицензия». Это пропагандистское клише пропритарщиков (Микрософта в первую очередь).

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

Если «лицензия БСД», о какой речь — это трех- или двухпунктная, которые не налагают сверх GNU GPL никаких ограничений (говоря техническим языком, совместимы с GNU GPL), то бога ради, сколь угодно вы можете смешивать работы на их условиях с работами под GNU GPL.

Если же речь об исходной четырехпунктной BSDL, то тогда вы правы — только дома под покрывалом.

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

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

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

то суммарный код он должен распространять под GPL

Если ему за каким-то чертом надо распространять исходные тексты не естественным образом, а как некую «сумму» под какой-то одной лицензией, то ни в коем случае ею не будет GNU GPL как таковая, это и будет сумма (кон’юнкция требований) GNU GPL и [23]-BSDL.

То же самое справедливо для любого количества любых лицензий, не дозволяющих перелицензирование хотя бы в одном направлении: [23]-BSDL, Expat и вторая лицензия Apache, к примеру. Ничего специфичного для авторского лева здесь нет.

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 3)
Ответ на: комментарий от Sahas

суммарный код он должен распространять под GPL. Я об этом толкую, по крайней мере...

Всё намного хуже. Например, нельзя в одном проекте объединить куски из ядра Linux (GPLv2) и Samba (GPLv3). Так как они друг с другом принципиально не совместимы.

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от Zmicier

будет сумма (кон’юнкция требований) GNU GPL и [23]-BSDL.

GPL3, 5.c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.

лицензий, не дозволяющих перелицензирование хотя бы в одном направлении:

Их нельзя смешивать в одном проекте. Даже GPL2 и GPL3

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

Нужна %libname% (%url%), но так как она противоречит моей лицензии включить в проект я ее не могу.

Так сделать нельзя. Так как твоя работа всё равно будет производной от %libname%.

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

P.S. Если скорость критична, думаю и shared memory server можно изобрести.

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

Их нельзя смешивать в одном проекте.

Поправка: в одном бинарнике. В том числе разделённом на библиотеки. В одном проекте, но в виде разных бинарников можно.

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

Например, нельзя в одном проекте объединить куски из ядра Linux (GPLv2) и Samba (GPLv3). Так как они друг с другом принципиально не совместимы.

Совершенно верно. Как известно, Линус уперся рогом в своем праве не разрешать распространение Линукса под более поздними GNU GPL. Возможно, это была ошибка Фонда СПО — давать всяким линусам такое право, но да сделанного не воротишь. А возможно и нет — мы не знаем, насколько доверяли разработчики Фонду тогда, в 1991-м — возможно, отсутствие такого права отвадило бы их от использования лицензий ГНУ.

Однако никакого отношения к вопросу т. pon4ik’а это не имеет, поскольку лицензии 2- и 3-BSD совместимы с обеими GNU GPL.

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

Зачем вы мне цитируете GNU GPL? Я ее прекрасно знаю.

лицензий, не дозволяющих перелицензирование хотя бы в одном направлении:

Их нельзя смешивать в одном проекте. Даже GPL2 и GPL3

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

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Zmicier

лицензии ГНУ у нормальных людей обычно назначаются с оговоркой «или более поздней версии».

Мне, например, не нравится настолько бездумное доверие FSF. Появится, скажем, GPLv4 с доп разрешением «FSF может делать с кодом всё, что угодно» и, считай, весь код опубликованный под «GPL ... или более поздней версии» внезапно экспроприирован.

P.S. При попытке добавить патч в любой GNU проект они требуют отказа от прав в пользу FSF. Избежать коллизий можно было бы, если бы в GPL стояло не «распространять производную работу под GPL», а «лицензия на производную работу должна разрешать то, что разрешает GPL». Но FSF осознанно не захотел пойти по этому пути. Поэтому доверия им нет.

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

поскольку лицензии 2- и 3-BSD совместимы с обеими GNU GPL.

В одну сторону. Код (например, драйвера) под GPL нельзя использовать ни в ядре OpenBSD, ни в ядре FreeBSD.

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

Зачем вы мне цитируете GNU GPL? Я ее прекрасно знаю.

Тогда зачем пишете, что на производную работу «будет сумма (кон’юнкция требований) GNU GPL и [23]-BSDL.»?

Или это читать как «GPL требует от производной работ лицензии GPL, BSDL — ничего, следовательно сумма (кон’юнкция требований) GNU GPL и [23]-BSDL. = GPL»?

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

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

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

Мне, например, не нравится настолько бездумное доверие FSF. Появится, скажем, GPLv4 с доп разрешением «FSF может делать с кодом всё, что угодно» и, считай, весь код опубликованный под «GPL ... или более поздней версии» внезапно экспроприирован.

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

Остается в несовместимости Линукса с массой свободных программ винить только тараканы Линуса.

При попытке добавить патч в любой GNU проект они требуют отказа от прав в пользу FSF.

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

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

Код (например, драйвера) под GPL нельзя использовать ни в ядре OpenBSD, ни в ядре FreeBSD.

Это внутренние правила этих проектов, вне из контроля — можете сколько угодно.

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

Тогда зачем пишете, что на производную работу «будет сумма (кон’юнкция требований) GNU GPL и [23]-BSDL.»?

Потому что это так. Вы не можете игнорировать требования лицензий БСД, они никуда не исчезают.

BSDL — ничего

Как это «ничего»? Там два или три пункта — ерунда, конечно, на фоне перечня условий GNU GPL, но они есть. Во второй лицензии Апача, к примеру, их уже будет больше.

кон’юнкция требований GNU GPL и [23]-BSDL = GPL

Равно GNU GPL с двумя (тремя) дополнительными (но допустимыми) требованиями, если угодно. А равно и 2(3)-BSDL с кучей дополнительных требований. Короче: GNU GPLv3+ && 2(3)-BSDL.

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

Нет, ну вы что-то не то прочитали. Там ни в коем случае не сказано, что стандартная библиотека Явы — на условиях GNU GPL. Да это и не так.

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