Понять GPL

nikola1956

Свободная лицензия GPL хороша всем, кроме непонятного требования открывать всем свой собственный, "кровно созданный", исходный код в случае, если этот код использует GPL-компоненты.
Не понятно, почему нельзя открыть только небольшой модуль своей программы, который построен на измененном GPL-компоненте (и сам этот измененный компонент а всю остальную часть кода оставить закрытой и защищенной законом об авторском праве? Или так можно?
Текст лицензии мало дает в плане понимания последствий этой лицензии, сколько лет не читаю, понять до конца не могу смысла требования открывать ВЕСЬ свой новый код.

carusya

Из вики по ссылке же :(
GNU GPL не позволяет включать программу в проприетарное ПО. Если данная программа является библиотекой, вероятно, лучшим будет разрешить проприетарному ПО линковаться с ней. Для данной цели необходимо использовать GNU Lesser General Public License вместо GPL

yolki

Читай про GPL-вирус.
На одной GPL свет не сошёлся клином.
есть послабже LGPL
есть MPL, MIT, Apache License в конце-концов.

nikola1956

Не понимаю до конца, что здесь написано.
Значит ответ на мой вопрос — НЕТ. Или все-таки "да"?

nikola1956

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

carusya

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

yolki

если переработанный код - часть модуля (.exe) программы, то ответ - НЕТ.
можно обособить переработанный код в .dll, повесить на неё ярлык GPL (и по требованию пользователей выдавать исходники и тогда ответ - да.

yolki

Надо смотреть лицензию на компонент. Если он распространяется под разными лицензиями - выбрать наиболее приемлемую.
Я бы взял MIT

nikola1956

можно обособить переработанный код в .dll, повесить на неё ярлык GPL (и по требованию пользователей выдавать исходники и тогда ответ - да.
Здорово, спасибо! Об этом и спрашивал :)

yolki

да, поправка. всё-таки LGPL - необходимое условие

yolki

можно посмотреть на исходный компонент?

nikola1956

Нет, его нет. Просто хотел понять применение gpl в конкретной ситуации.

nikola1956

Недавно, например, использовал библиотеку ksoap2, отредактировал в ней один класс под свои нужды. Сейчас посмотрел — оказалось MIT-лицензия, все нормально. А с GPL, насколько я сейчас понял, такие простые манипуляции не прошли бы :(
В общем, если участвовать в каком-либо открытом проекте, то под MIT, а не под странной GPL-лицензией. До сих пор не понимаю, зачем нужно было вводить такие жесткие ограничения? ПО под GPL с трудом можно назвать свободным, на мой взгляд.

stm5872449

В общем, если участвовать в каком-либо открытом проекте, то под MIT, а не под странной GPL-лицензией.
Linux не переживет этой потери для сообщества в твоем лице. :(

nikola1956

Linux не переживет этой потери для сообщества в твоем лице
 :grin:
Вот бы понять, почему для Linux стали использовать GPL, а не MIT. Кто-нибудь знает? Тогда, думаю, смысл GPL прояснился бы.

tokuchu

Вот бы понять, почему для Linux стали использовать GPL, а не MIT. Кто-нибудь знает? Тогда, думаю, смысл GPL прояснился бы.
http://www.gnu.org/philosophy/open-source-misses-the-point.h...
Ну и в целом:
http://www.gnu.org/philosophy/philosophy.html
:)

agaaaa

А объясните тогда, почему Андроид не весь GPL? Чем связь между далвиком, Google Play Services и линуксом в нём отличается от любого другого использования GPL продуктов в составе дистрибутива ПО?

nikola1956

Стал читать текст по первой ссылке в поисках ответа на свой вопрос.
Дошел до места:
============================================
Чистый энтузиаст открытого исходного текста — тот, кто совершенно не подвержен влиянию идеалов свободного программного обеспечения, скажет: “Я не думал, что вы сумеете заставить программу работать так хорошо без применения нашей модели разработки, но вы это сделали. Как мне получить копию?” Такое отношение будет поощрять схемы, которые отнимают у нас свободу, и приведет к ее утрате.
Активист свободного программного обеспечения скажет: “Ваша программа очень привлекательна, но не стоит моей свободы. Так что я обойдусь без нее. Вместо этого я поддержу проект, который развивает свободную альтернативу вашей программе”. Раз мы ценим свою свободу, мы должны действовать, чтобы поддержать и защитить ее.
http://www.gnu.org/philosophy/open-source-misses-the-point.r...
============================================
О чем здесь идет речь?
Сначала автор текста тщательно отмежевывается от сторонников методологии открытого исходного текста. Говорит, что они — это не мы! Наше движение за свободное ПО глубже, имеет этическое измерение и является идеологией на уровне категорий добра и зла, а у них, сторонников открытого исходного текста, все лишь программистская методология.
Итак, перед нами некое общественное движение, вроде Гринписа или Красного Креста, возможно, даже как бы полусекта, основанная на общих ценностях (ценность "свободы" ПО). Это движение защищает себя, поэтому вводит охранительное положение, "заражающее свободой", например, через лицензию GPL (о нем я спрашивал). Лицензия GPL отвечает ценностям этой идеологии.
Показалось, что текст Р. Столлмана написан не совсем ясно, но вроде бы суть я понял правильно, как вы думаете?

tokuchu

О чем здесь идет речь?
О том, что открытие исходников ещё не делает программу свободной в их понимании. И о том, что анальное рабство GPL лучше других вариантов анального рабства.

nikola1956

В отрывке из текста Столлмана речь идет не об этом. И то, что ты пишешь про разницу между свободой и открытостью, и так понятно и не отвечает на мой вопрос.
Вопрос глубже: почему GPL , а не MIT, например? Свой ответ предложил в предыдущем сообщении и надеюсь услышать конкретные возражения, дополнения или разъяснения от всех, кто знаком с этой темой.

PITACHOK

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

nikola1956

Большое спасибо за комментарий и что упомянули про BSD лицензию (аналог MIT)!
Узнал теперь, что это два больших и целостных мира лицензирования — GPL и BSD.
Поискал в инете материалы на тему GPL vs BSD. Оказывается, известная тема для споров! Эти споры открыли мне суть моего непонимания/неприятия GPL.
Вот, например, статья на хабре 2008 года. Интересны также комментарии пользователей, вскрывающие самую суть проблемы:
==================================
Или так неймется поучить «неверных» своей «единственно правильной» религии GPL?
---------------------------------------------------------------------------
Я никому никакой «религии» не навязываю. Но я привык к тому, что написанное в лицензии (будь то BSD или GPL) — если правила, которые только и нужно соблюдать. Но почему-то BSD'шники всегда сквозь пальцы смотрят на то, что делают с их кодом крупные корпорации (Microsoft, Oracle, etc но стоит кому-то навесить на него ярлык «GPL» — как тут же у них крышу сносит (хотя навешивание ярлыка «GPL» только же законно как и навешивание ярлыка «Microsoft EULA»). Зависть, ревность, не знаю. Но атака всегда начинается со стороны стронников BSD и никогда — со стороны сторонников GPL…
---------------------------------------------------------------------------
Очень их понимаю. Совершенно не против того, чтобы моим кодом хоть зад подтирали, но категорически против того, чтобы он использовался для ограничния чужих прав, в том числе права на продажу закрытого софта — программисты тоже кушать хотят. Соответственно я против того, чтобы код распространялся под лицензией GPL (но, конечно же не против использования его в GPL-продуктах)...
==================================
 :grin:
В общем, теперь все стало более-менее ясно.
Себя отношу скорее к сторонникам BSD-лицензии, но думаю, что нужно ее дополнить пунктом о запрете запрещать со стороны GPL использование исходного BSD-кода в закрытых продуктах. Со стороны GPL тоже добавить пункт о взаимодействии с BSD, чтобы GPL-мир не лишился кода, лицензируемого BSD.
P.S. Небольшой яркий отрывок из той статьи:
===============================================
GPL и BSD олицетворяют собой две точки зрения на мир свободного программного обеспечения. Первая считает, что ПО должно быть свободным и порождать свободное ПО. «Свобода или Смерть» — лозунг Столлмана как нельзя лучше отражает смысл этой точки зрения. Вторая точка зрения предполагает, что свобода должна заключаться и в том, чтобы делать несвободное ПО. Это более либеральная точка зрения. По сути, здесь возникает философский вопрос: можно ли считать свободой разрешение на ограничение свободы.
На самом деле хорошо, что большинство разработчиков не увлекаются и подходят к вопросу просто: если они хотят видеть части своего ПО только в подобных свободных продуктах, то они выбирают GPL, если им все равно, то они часто выбирают BSD-лицензии. Именно безразличие к судьбе своего ПО и характеризует отличный от GPL подход к свободе.
http://habrahabr.ru/post/46329/
===============================================

Kira

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

nikola1956

Да, похоже ты прав, почитал подробности.
Кроме того, кому интересна эта тема, сравнил BSD-образные лицензии (BSD, MIT, Apache 2.0). Все они по сути одинаковые, но вроде бы Apache 2.0 самая удобная, так как формально требуется дописывать наименьшее количество текста и можно оставить только ссылку на подробности, относящиеся к лицензии.
Видимо не зря Google лицензировал не линуксовскую часть Android с помощью Apache 2.0.

nikola1956

А объясните тогда, почему Андроид не весь GPL? Чем связь между далвиком, Google Play Services и линуксом в нём отличается от любого другого использования GPL продуктов в составе дистрибутива ПО?
Хороший вопрос. Не знаю подробностей, но вроде бы здесь все более-менее понятно.
В Википедии написано, что Google согласно требованиям GPL-лицензии выложил в GNU исправленный код Linux-а, который был использован в Android, а остальную часть Android-а лицензировал с помощью Apache 2.0. Похоже это считается корректной процедурой, ибо лицензия Apache 2.0 слабее GPL (то есть ближе к "общественному достоянию") и юридически, видимо, как-то автоматически "конвертируется" в GPL.
А в моем примере часть приложения хотелось сделать закрытой, оставив открытым только измененный модуль на основе GPL-кода, то есть это совершенно другая ситуация.

agaaaa

Хороший вопрос. Не знаю подробностей, но вроде бы здесь все более-менее понятно.
В Википедии написано, что Google согласно требованиям GPL-лицензии выложил в GNU исправленный код Linux-а, который был использован в Android, а остальную часть Android-а лицензировал с помощью Apache 2.0. Похоже это считается корректной процедурой, ибо лицензия Apache 2.0 слабее GPL (то есть ближе к "общественному достоянию") и юридически, видимо, как-то автоматически "конвертируется" в GPL.
А в моем примере часть приложения хотелось сделать закрытой, оставив открытым только измененный модуль на основе GPL-кода, то есть это совершенно другая ситуация.
Не, я всё равно не понял.
Если я правильно понимаю GPL, то если ты публикуешь дистрибутив продукта, в котором есть хоть грамм кода на GPL, ты обязан весь продукт выкладывать под GPL (т.е. предоставлять исходники по запросу).
Андроид на нексусе содержит в себе ядро линукс, как неотъемлемую часть. Тем не менее, я не могу получить доступ к исходникам Google Play Services.
WTF или я что-то упустил?

yroslavasako

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

tokuchu

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

agaaaa

Вроде нет, только на части программы это распространяется. Разные взаимодействующие программы могут быть под разными лицензиями
Т.е. можно завернуть библиотеку в исполняемый файл, представляющий IPC интерфейс к библиотеке, то с ним можно творить что угодно, не раскрывая исходников?

tokuchu

Т.е. можно завернуть библиотеку в исполняемый файл, представляющий IPC интерфейс к библиотеке, то с ним можно творить что угодно, не раскрывая исходников?
Если ты с GPL кодом как с отдельной программой через IPC взаимодействуешь, то, несомненно, твоя программа может быть как угодно лицензирована. По крайней мере GPL это вроде не запрещает, но лицензия твоей программы разве что может запрещать ей так взаимодействовать с GPL. :)
Кстати, ещё есть такая тонкость, если я правильно помню. В GPL2 (в 3-й кажется устранили) — если ты не передаёшь свою программу никому, не распространаяешь её никак (веб-приложение, например то ты не обязан код предоставлять.

stm5872449

Кстати, ещё есть такая тонкость, если я правильно помню. В GPL2 (в 3-й кажется устранили) — если ты не передаёшь свою программу никому, не распространаяешь её никак (веб-приложение, например то ты не обязан код предоставлять.
Насколько я помню, в GPLv3 это наоборот явно разрешили.

tokuchu

Насколько я помню, в GPLv3 это наоборот явно разрешили.
Может быть и так. Про 3-ю не скажу. Может быть да, решили "узаконить", чтобы разночтений не было.

bleyman

Вот бы понять, почему для Linux стали использовать GPL, а не MIT. Кто-нибудь знает? Тогда, думаю, смысл GPL прояснился бы.
О, давненько тут не было ГПЛ срачей!
Ссылки, которые тебе дали, гарантированно неправильные, ибо с гну.орг.
Если читаешь по английски и хочется занять себя на пару часов, можешь найти старый срач между Линусом Торвальдсом и другими людьми (включая Мигеля де Иказу (Gnome, MC, Mono порадовала ирония) про кто иль что есть истенный смысл ГПЛ, связанный с переходом на GPLv3 (и почему Линус их всех считает мудаками и не перевёл бы линукс даже если б это было практически возможно).
Если вкратце: смысл ГПЛ с точки зрения её автора, РМС, в том, чтобы постепенно удушить и когда-нибудь полностью уничтожить проприетарный софт. Потому что он и соратники с гну.орг считают проприетарный софт аморальным, ну, типа, как рабство (прочитай последнюю секцию в man su, чтобы прочувствовать).
При этом они практичны в том смысле что понимают что бескомпромиссная война против проприетарного софта обречена на поражение, поэтому если необходимо то идут на тактические компромиссы, например использование LGPL для некоторых библиотек (позволяет использовать библиотеку в проприетарном софте возможность компилировать проприетарный софт gcc, возможность запускать проприетарный софт под линуксом и тому подобное. Но конечная цель именно такая и когда они считают себя в позиции силы, позволяющей не идти на компромисс, они не идут.
Линус Торвальдс с другой стороны никакой особой ненависти к проприетарному софту не испытывает и обосновывает выбор GPLv2 для линукса, гита и другого своего софта идеей что люди, которые используют его бесплатный софт, принуждены "платить" ему отдавая обратно бесплатно же улучшения которые они сделали для этого софта. Ну типа резонно, чо.
BSD-style лицензии этого не требуют, хотя на самом деле обычно так всё равно и получается, потому что есть дикий стимул попытаться отдать свои улучшения обратно чтобы их включили в основной код, вместо того, чтобы трахаться вручную портируя свои улучшения на каждую следующую версию. И наоборот, есть интересная статья http://www.informit.com/articles/article.aspx?p=1390172 про то, в частности, как попытка принудить Эппл открыть свою имплементацию Objective C в GCC, часто упоминаемая как одна из "побед ГПЛ", на самом деле оказалась тотально Пирровой победой — не только тем, что свободная версия компилятора так и осталась более или менее бесполезной потому что Эппл не открыла свою имплементацию стандартной библиотеки, но и потому что в результате Эппл озлобилась и сделала свой компилятор, clang, с блэкджеком, шлюхами, и под БСД лицензией.
Ну так вот, в результате когда гну чуваки в очередной раз почувствовали силу и сделали третью версию ГПЛ, требующую например возможности реально запускать свой модифицированный код на железе с которым он распространяется (потому что TiVO сделали тюнер с поддержкой DRM (АНАЛЬНОЕ РАБСТВО!11 который криптографически проверяет что там запущена именно их версия линукса, с поддержкой DRM) и ещё например AGPL (требует открытия исходников даже если ты запускаешь гпл прогу на своём сервере Линус, такой, да вы ебанулись, я никогда не буду ничего писать под такими лицензиями, мне б только получать модифицированный код обратно как плату за свои труды, а гну чуваки попытались его убедить что он ваще не понимает в чём смысл ГПЛ, а он, такой, да меня не ебёт, GPLv2 прекрасно работает для моих целей, а они, такие, ОМГ ну ты ваще не в теме, и получился тот прекрасный срач, о котором я говорил.

PITACHOK

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

tokuchu

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

bleyman

Неправильные — в смысле изо всех сил стараются дать неправильный ответ на вопрос "почему Линус выбрал ГПЛ". Для них это вопрос принципа, в смысле, и их ответ, и наврать об истинном ответе. Я не знаю почему именно так, наверное же враньё не является необходимым свойством коммунизма и похожих учений, "наша идеология всесильна потому что она верна" как бы не требует этого, но все современные версии таких идеологий почему-то ставят промывание мозгов любой ценой во главу угла.
@: ну, дураки у вас в менеджменте сидят, что нового. Прозреваю что и ГПЛный софт от вас ничего хорошего не получает.

yroslavasako

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

tokuchu

Неправильные — в смысле изо всех сил стараются дать неправильный ответ на вопрос "почему Линус выбрал ГПЛ".
А по тем ссылкам разве есть что-то по этой теме?

nikola1956

Большое спасибо за обстоятельный рассказ!
Тему про GPL теперь считаю для себя почти полностью раскрытой.

Kira

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

что-то не находится :(

Phoenix

 
Если вкратце: смысл ГПЛ с точки зрения её автора, РМС, в том, чтобы постепенно удушить и когда-нибудь полностью уничтожить проприетарный софт. Потому что он и соратники с гну.орг считают проприетарный софт аморальным, ну, типа, как рабство (прочитай последнюю секцию в man su, чтобы прочувствовать).

А в чём принципиальные различия GPLv2 и GPLv3?
я правильно понимаю, что весь сахар этих gpl, что если пользователю попалась программа с куском кода на gpl (ну т.е. берём какой-нибудь антигплирус, которые смотрит известные ему куски в бинарники и говорит, заражён файл или нет то можно затребовать весь исходник.
А так, чтобы специально что-то публиковать заранее и т.п. нет. ?
 
Если корпорация использует GPL-код, то она вынуждена контрибьютить в апстрим.

Разве? Нельзя почтой по запросу выдавать? А кто-то другой уже будет контрибьютить?
Если не распространять ПО или делать это как-то между своими(внутри холдинга либо вообще не распространять(внутренняя разработка для себя то вроде как никто не предъявит?

stm5872449

что-то не находится
Я думаю, речь про это

Kira

о, спасиб! будет на что попрокрастинировать.
Оставить комментарий
Имя или ник:
Комментарий: