vitus_wagner: My photo 2005 (Default)
vitus_wagner ([personal profile] vitus_wagner) wrote2011-03-10 01:31 pm

Про зловредную libreadline

У [livejournal.com profile] beldmit в журнале обсуждают злобных дебиановцев, которые собрали psql без libreadline потому что readline-вская GPL несовместима с OpenSSL-евской лицензией.

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

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

Давно бы написали такую универсальную запускалку для программ с собственной командной строкой, с которой можно было бы запускать хоть ftp, хоть оракловый sql-плюс. Ну там пришлось бы правила completion-а для каждого такого приложения отдельно описывать. Но вообще-то много где их и так расширяемым делать приходится.

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

Upd оказывается, полезная программа rlwrap существует. А я и не знал. Надо постгресовским мейнтейнерам предложить вместо всяких глючных libedit просто заворачивать psql в скрипт, запускающий его через rlwrap.
arilou: (Default)

[personal profile] arilou 2011-03-10 11:06 am (UTC)(link)
Вот так явно запрещает?
Или просто требует указать, что "слинковано с таким-то кодом под такой-то лицензией"?
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 11:19 am (UTC)(link)
Тогда в чём конфликт?
allter: (Default)

[personal profile] allter 2011-03-10 11:57 am (UTC)(link)
Конфликт в том, что GPL явно требует, что бы на получающийся код не накладывалось иных ограничений, в частности, требований о печати сотен информационных строк в рекламных материалах. GPL больше заточен под непосредственные интересы конечных пользователей, а не разработчиков.

[identity profile] beldmit.livejournal.com 2011-03-10 12:05 pm (UTC)(link)
Я заметил, как учтены эти интересы. Не нужны конечному пользователю символы с кодами, больше 127!
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 12:21 pm (UTC)(link)
Проблема не в libreadline, а в psql. Пусть выбрасывают OpenSSL и переводят код в GPL, если хотят линковаться с libreadline.

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

[identity profile] beldmit.livejournal.com 2011-03-10 12:28 pm (UTC)(link)
Я вижу другие системы. На которых этой проблемы нет. CentOS, например.

Вижу варианты:

1. CentOS на неувязки лицензий положили.
2. CentOS добавили ссылку на OpenSSL
3. Проблемы просто нет, а Debian - это религия.

Если бы libreadline не было, то я бы не жужжал. sqlplus в Oracle вон совсем примитивный был, поскольку без readline.
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 01:20 pm (UTC)(link)
Есть приложение, нарушающее лицензии используемых компонент. Контрафакт. Распространять его -- соучаствовать в нарушении и подсталять пользователей. Будем ожидать повестки в суд к авторам psql, после чего программу вообще запретят?

[identity profile] beldmit.livejournal.com 2011-03-10 01:23 pm (UTC)(link)
Да. Потому что тогда напишут что-то работающее.
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 01:27 pm (UTC)(link)
Ну вот, считайте, что это прекрасное будущее уже наступило и psql нет.

[identity profile] beldmit.livejournal.com 2011-03-10 01:28 pm (UTC)(link)
Ну и славно. Я проголосовал рублем и ушел с Debian-а.
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 01:41 pm (UTC)(link)
Нет, ну вопрос вареза каждый решает сам для себя.

[identity profile] beldmit.livejournal.com 2011-03-10 03:39 pm (UTC)(link)
Так я - это я, а CentOS (и, видимо, RHEL) и сборщики RPM-ов для Pg его решили по-другому, чем в Debian!
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 05:26 pm (UTC)(link)
Политика Ходжи Насреддина. Обычно прокатывает.

[identity profile] nuclight.livejournal.com 2011-03-10 01:14 pm (UTC)(link)
Нет, проблема именно в readline. Никто не мешал им сделать http://en.wikipedia.org/wiki/GPL_linking_exception ведь - распространенная практика же.

Маразм ситуации в том, что два свободных проекта не могут слинковаться по надуманному поводу. А говорить, что проект большего размера должен подстраиваться под проект меньшего - маразм вдвойне.
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 01:23 pm (UTC)(link)
Кто-то заставляет пользоваться Readline? Почему у вас нет таких претензий к проприетарным библиотекам, которые тоже вам не предоставляют безграничную халяву?

[identity profile] beldmit.livejournal.com 2011-03-10 03:12 pm (UTC)(link)
Альтернатива есть? libedit не предлагать, multibyte chars не умеет.
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 03:25 pm (UTC)(link)
Проприетарные клиенты БД ведь как-то обходятся без Readline.

[identity profile] beldmit.livejournal.com 2011-03-10 03:40 pm (UTC)(link)
Telnet! Лучше для программиста нет!
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 12:17 pm (UTC)(link)
Странно, я воспринимаю GPL как заточенную на разработчика (в том числе пользователя-разработчика). Просто права первичного и последующих разработчиков более уравнены, и ни один не может ограничить другого.
allter: (Default)

[personal profile] allter 2011-03-10 12:43 pm (UTC)(link)
Ну, да, речь шла именно о пользователях-"пользователях" и пользователях-"доразработчиках", которые (в случае BSD) могут ограничить первых в доступе к исходному коду, сделав бинарный форк.

Ну а GPL, через эти ограничения "доразработчиков", более заточена на первоначальных владельцев копирайта, т.к. даёт им монополию на ограничение пользователей (в форках под второй лицензией).
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 01:35 pm (UTC)(link)
Я так понимаю, что это защита прежде всего оригинального автора от того, чтобы "доразработчики" обошли его, присвоив код (именно этим руководствовался Торвальдс). Эта же защита распространяется и на "доразработчиков", что делает доразработку более привлекательной. И лишь в третью очередь это гарантирует некоторую стабильность и уверенность простым пользователям.

Преимущества первоначальных владельцев копирайта полностью сохраняются только в случае передачи им прав от соавторов. Что в случае Linux (или LibreOffice) не так.
allter: (Default)

[personal profile] allter 2011-03-10 08:46 pm (UTC)(link)
Это гарантирует простым пользователям гарантию того, что он всегда может дозаказать необходимый функционал у "доразработчиков". Но, естественно, никаких потребительских качеств не гарантируется - чистый "AS IS".

Linux и Libreoffice - не знаю, а FSF раньше (не знаю, как сейчас) требовала передачу прав на патчи им (и права на первоначальный релиз рекомендует им передавать, если релизерам влом заниматься этим самим). Ну и, кроме того, можно в проприетарный продукт бэкпортировать только "тривиальные" фиксы от общества, которые не защищаются копирайтом: всё равно, как правило, основной функционал разрабатывается внутри GPLщика, а общество - лишь "догоняет".
sergey_cheban: (Default)

[personal profile] sergey_cheban 2011-03-10 02:00 pm (UTC)(link)
Вот есть у нас exe, и есть исходники от него. Одна часть исходников - OpenSSL, она требует ссылки на OpenSSL в документации, и эту ссылку, по условиям лицензии, никак нельзя оторвать. Другая часть - GPL. Она требует, чтобы всё, что с ней слинковано, распространялось на условиях GPL. То есть - без требований ссылок в документации. GPL - "вирусная" лицензия, она "заражает" весь код, который слинкован с чем-нибудь GPL'ным. А OpenSSL содержит требование, не позволяющее менять лицензию.

Что характерно, GPLv3 несовместима с GPLv2 по той же самой причине: каждая из них пытается подмять весь код под себя, и каждая - не даёт менять лицензию на свой код.