LINUX.ORG.RU

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

 , ,


0

2

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

UPD:

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

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

★★★★★

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

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

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

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

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

Вот что написано в FAQ по этому поводу:

All GNU GPL versions permit such combinations privately; they also permit distribution of such combinations provided the combination is released under the same GNU GPL version. The other license is compatible with the GPL if it permits this too.

http://www.gnu.org/licenses/gpl-faq.en.html#WhatDoesCompatMean

Если я правильно понимаю, то производная работа всё же должна быть под GPL. Позволяет ли BSD 2,3 менять лицензию? Я не в курсе

И вот отсюда косвенно следует, что производная работа должна иметь GPL-лицензию: http://www.gnu.org/licenses/gpl-faq.ru.html#IfLibraryIsGPL

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

Позволяет ли BSD 2,3 менять лицензию? Я не в курсе

Она позволяет распространять производные работы с перечисленными в лицензии ограничениями (сохранения авторства). GPL имеет эти же ограничения + свои. Поэтому BSD совместима с GPL (налагает строго меньше ограничений).

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

Не вижу разницы между этими вариантами - я же не вкомпиливаю либу

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

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

Равно GNU GPL с двумя (тремя) дополнительными (но допустимыми) требованиями

Которые GNU GPL также требует.

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

вторая опция — передать ваш патч в общественное достояние

Вот-вот. Почему-то просто использования на правах GNU GPL им недостаточно. К чему бы это? Я вижу только один ответ: FSF хочет иметь право в любой момент сменить лицензию на этих проектах.

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

Равно GNU GPL с двумя (тремя) дополнительными (но допустимыми) требованиями

Которые GNU GPL также требует.

Которые GNU GPL не воспрещает (явно или неявно) требовать. Очевидно, сама по себе она никак не может требовать приводить текст лицензии BSD.

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

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

Или совместимую с ней лицензию. Что вас здесь удивляет?

Мне вот это не нравится.

Грусть-печаль.

А че так? Хотите писать проприетарщину, пользуясь всеми благами, доступными писателям свободных программ?

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

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

Я бы, кстати, на это не рассчитывал. ФСПО такое, может быть, и спустит, а какая-нибудь коммерческая контора может и придраться.

почему я должен придерживаться разных правил в этих похожих случаях?

Интересные у вас вопросы — «почему я должен придерживаться правил». Ну, давайте возьмем какую-нибудь другую, несвободную, лицензию, к примеру на Винду — Microsoft Software License Terms Windows 7 Professional, там есть такой пункт:

You may not:
— use the software for commercial software hosting services.

То есть разместить свой собственный сайт на этой Винде вы можете, а чужой — нет.

Вот почему вы должны придерживаться разных правил в этих похожих случаях?

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

Хотите писать проприетарщину, пользуясь всеми благами, доступными писателям свободных программ?

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

Интересные у вас вопросы — «почему я должен придерживаться правил»

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

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

считаю что раз он какие-то правки вносит

А если не вносит?

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

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

то же предоставление исходников по первому требованию

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

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

Повторюсь — я бы на это не рассчитывал.

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

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

Почему? Формулировка «ИЛИ более поздней версии» подразумевает, что под старой версией лицензии её по-прежнему можно распространять, и поменять это никто не в силах.

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

Товарищ боится, что Фондом СПО якобы могут завладеть проприетарщики и отменить авторское лево, например.

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

И все эти ограничения должны применяться ко всему тексту объединённой программы, правильно я понимаю? Поскольку GPL включает в себя требования BSD, то и получается, что производная программа по сути должна распространяться под GPL. Так я понимаю то, что написано в FAQ

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

Очевидно, сама по себе она никак не может требовать приводить текст лицензии BSD.

Может. GNU GPL3 7a,7d,7f.

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

Хочу не ограничивать пользователя своего продукта в выборе лицензии при его доработке и распространении результатов.

Один из самых простых способов - не распространяй бинарники, распространяй свой продукт в исходниках. Сборка - на компах «клиентов». Кто и что делает на своих компах - GPL не интересует.

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

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

Разумеется. Но тогда GPL вырождается в худшую версию BSD. В худшую, так как из GPL в BSD проекты код переносить нельзя, а все программы с «GPL версии N или выше» становятся доступны либо под GPL, либо тем кто заплатит в FSF. Примерно как Qt Только в Qt за коммерческую лицензию надо платить разработчикам программы, а в GPL — создателям лицензии. И соскочить с этого условия для разработчика нереально: надо собрать согласия всех авторов патчей.

Оружие одноразовое (после применения никто не будет создавать новые проекты под GPL), но эффективное и защиты от него (у разработчиков) нет.

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

Кто и что делает на своих компах - GPL не интересует.

Увы. Распространение исходников, использующих GPL библиотеку, трактуется как распространение производной от GPL работы.

http://www.law.washington.edu/lta/swp/law/derivative.html#The_Problem_With_Pl...

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

Это всё напоминает цитирование старцев, вместо библии :) Трактовки, кто о чём думал... Нет, я не собираюсь спорить с американскими законниками - это последнее, надеюсь, чем я захочу заниматься в этой жизни. Но всегда думал, что GPL ограничивает только распространение бинарных программ. Правда, это было до 3-й версии.

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

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

В GPL2 было «You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. »

Весь вопрос, что значит «derived». FSF и Столлман считают, что #include <gmp> — это уже derived. В суде SCO vs IBM, суд утверждал, что использование API для доступа к функциям не делает программу производной работой.

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

если я использую GPLную библиотеку

Кстати, а такие остались в природе? GMP ушёл на LGPL, у GNU Readline есть BSD-клон libedit. Что-то ещё вообще было?

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

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

alozovskoy ★★★★★
()

Кстати, господа, подскажите мне тоже по лицензированию. Предположим есть программа P под лицензией BSD. У этой программы есть API для плагинов. Есть плагин P1, который использует библиотеку L1 под лицензией GPL. Есть плагин P2, который использует библиотеку L2 под проприетарной лицензией. Предположим что все 3 компонента (P, P1, P2) распространяются разными людьми и независимо друг от друга. Плагин P1 ничего не знает про плагин P2 и таким образом никак не может быть derived work от него и наоборот. При это пользователь легко может установить оба плагина и они будут спокойно работать в одном процессе вместе через BSD plugin API. Это действительно так? Или я что-то упускаю?

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

Это действительно так? Или я что-то упускаю?

Да, так. Главное требование «плагин P1 ничего не знает про плагин P2 и таким образом никак не может быть derived work от него и наоборот.»

Также распространять GPL-плагины обязательно отдельно и программа P должна (иметь возможность) функционировать без GPL-плагинов. Иначе попадёт под «программа, единственной целью которой является запуск GPL-плагина».

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

Также распространять GPL-плагины обязательно отдельно и программа P должна (иметь возможность) функционировать без GPL-плагинов. Иначе попадёт под «программа, единственной целью которой является запуск GPL-плагина».

То есть если это будет тетрис, который бонусом может запускать GPL-плагин, всё ок?

По-моему всё в конце концов всё равно упирается в трактовку понятия «использует» и «производная работа» судьёй.

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

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

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

То есть если это будет тетрис, который бонусом может запускать GPL-плагин, всё ок?

Да. Вот есть SBCL (BSD). Но в нём есть функция foreign-call, которая позволяет выполнить вызов dlopen, а значит потенциально код из любой GPL-библиотеки. И даже есть готовый «плагин» для GNU Readline (https://github.com/mrkkrp/cl-readline). Наличие этой функции не заставляет (авторов SBCL) распространять SBCL под GPL.

всё в конце концов всё равно упирается в трактовку понятия «использует» и «производная работа» судьёй

Тоже верно.

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

Может. GNU GPL3 7a,7d,7f.

Господи, а я вам что́ говорю! «Равно GNU GPL с двумя (тремя) дополнительными (но допустимыми) требованиями, если угодно». «Которые GNU GPL не воспрещает (явно или неявно) требовать».

Сама же по себе GNU GPL (по-умолчаию) приводить текст той или иной лицензии BSD, разумеется, не требует.

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

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

GNU GPL не ограничивает никакое распространение.

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

Кстати, а такие остались в природе?

Вроде как с библиотечными компонентами qgis была мутная история. На сайте написано, что GPL, в других источниках, что LGPL, но на сайте информация первичная... в итоге мы как честные люди отказались от их использования в своей заказной разработке и взяли велосипед попроще, но лицензионно чистый.

P.S. Это было 6 лет назад, с тех пор всё могло измениться.

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

Пожар в треде

Забавно, что ОП набросил и свалил.

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

Да. Вот есть SBCL (BSD). Но в нём есть функция foreign-call, которая позволяет выполнить вызов dlopen, а значит потенциально код из любой GPL-библиотеки. И даже есть готовый «плагин» для GNU Readline (https://github.com/mrkkrp/cl-readline). Наличие этой функции не заставляет (авторов SBCL) распространять SBCL под GPL.

Странноватый пример. SBCL уже́ свободен и его лицензия уже́ совместима с GNU GPL — куда еще дальше-то заставлять?

Есть пример получше: например, возьмем Перл, к программе на нем можно подключить OpenSSL (она под несовместимой из-за злостного пункта от рекламе с GNU GPL лицензией). Для отладки этой программы вы можете использовать perl -d, который по-возможности использует GNU Readline (GNU GPLv3+). В итоге получаем, что у нас в рамках одного процесса связаны программы под несовместимыми лицензиями. Однако проблемы в этом нет, поскольку все это творится на локальной машинке и никуда не распространяется.

А вот распространять готовую программу на том же Перле, что использовала бы OpenSSL и GNU Readline одновременно проблематично.

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

И все эти ограничения должны применяться ко всему тексту объединённой программы, правильно я понимаю?

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

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

такое ощущение, что мы о разных вещам говорим...

Ещё раз: согласно ЧаВо ФСО, при объединении кода под GPL-лицензией с кодом под GPL-совместимой результат должен быть выпущен под GPL-лицензией: «they also permit distribution of such combinations provided the combination is released under the same GNU GPL version».

А то можно такую халяву забабахать: написать Hello-world под BSD-лицензией, потом добавить в него весь код из LibreOffice и выпустить результат под BSD лицензией :)

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

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

Нет. Могут — в смысле, вы имеете такое право

Если объединённая программа распространяется, то да. В смысле, она вся обязана быть под GPL. Если часть под BSD является сама по себе отдельной программой, то её можно распространять отдельно под BSD.

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

GNU GPL не ограничивает никакое распространение.

Да ну? Я уже приводил пример: скомпилировать в одной программе куски из Linux kernel и samba. Скомпилировать можно, использовать можно, распространять GPL запрещает.

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

куда еще дальше-то заставлять

Например, запрещать использовать плагины с CDDL (как для любой GPL программы).

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

скомпилировать в одной программе куски из Linux kernel и samba

Мне показалось, что товарищ Yyk, которому я и ответил, вероятно, слишком общо́ звучащим утверждением, говорил о другом. В этом-то случае, конечно.

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

Ну хоть я-то правильно понял, что ограничивает распространение бинарного софта не GPL, а нежелание хозяев бинарного софта при распространении делиться исходниками в соответствии с GPL?

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

Если часть под BSD является сама по себе отдельной программой

Нет, никакого условия на «отдельность» программы не существует.

В смысле, она вся обязана быть под GPL.

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

Однако, повторюсь — вы разумеется, вправе взять и перемножить все лицензии и назначить результат каждому кусочку вашей программы (то есть все, что было под GNU GPL дообременить условиями лицензии, к примеру, 3-BSD, а все то, что было под 3-BSDL дообременить условиями GNU GPL), но на вас после этого посмотрят как на идиота.

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

нежелание хозяев бинарного софта при распространении делиться исходниками в соответствии с GPL

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

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

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

Нет, никакого условия на «отдельность» программы не существует.

Существует. В тексте GPL. Процитирую пункт 5c ещё раз: «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»

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

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

такое ощущение, что мы о разных вещам говорим

Возможно, я говорю о случае, когда в программе хорошо понятно, где чья часть. А вы говорите о двоичной сборке, в которой неразделимо совмещены программы под двумя или более разными лицензиями, так? Ну и что в вашем случае такого особенного и непонятного, что нужно привлекать ЧАВО ФСПО?

Рассмотрите для начала пример попроще — у вас есть бинарник, собранный из двух программ: одна под 2-BSDL, вторая под лицензия Expat. На каких условиях распространяется этот бинарник?

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

нет, я веду речь про открытые лицензии на сам код. И пример тут такой: у меня есть программа (моя), которую я распространяю под лицензией BSD (исходники и бинарник). Далее, в следующей версии я включаю в свою программу некий чужой код, который распространяется под GPL. Вопрос: под какой лицензией я должен распространять новую версию своей программы? Ответ (от ФСО): под GPL, ибо она накладывает больше ограничений, чем BSD. Ну а право смешивать эти два кода даёт мне тот факт, что BSD является GPL-совместимой.

P.S. Насчёт того, можно ли разные части исходников распространять под разными лицензиями? Вот тут я не знаю, надо поискать инфу...

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

Например, если я беру код с kernel.org, то даже если в конкретном файле написана лицензия BSD, то всё равно к этому файл применяется GPL, так как он распространяется в составе ядра.

Ага-ага. А к файлу, в котором указана GNU GPL, в дополнение применяются еще и требования BSDL, потому что в той же программе где-то присутствует и она? А еще и ASLv2, потому что где-то есть и она? Так что-ли по-вашему выходит?

Процитирую пункт 5c ещё раз...

Извините, но ваши рассуждения — хорошая иллюстрация к тому, как вредно теоретизирование без знания практики. Возьмите любую крупную программу из поставки, что аккуратно блюдет авторские права (из Дебиана, например) — и вы увидите, что никто лицензии не перемножает — не копирует наложенные на, скажем, ncurses требования лицензии X11 на связанный с ними mc, а равно и наоборот — никто не копирует наложенные на mc требования GNU GPL на связанные с ним ncurses — все остается на тех условиях, какие назначили авторы / правообладатели.

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

на сам код

На исходники, вы хотите сказать? Хорошо рассмотрите тот же самый пример, что я вам посоветовал, но на исходниках: у вас есть исходники программы, включающей в себя две части: одна под 2-BSDL, вторая под лицензией Expat. На каких условиях распространяются эти исходники?

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