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.

[identity profile] beldmit.livejournal.com 2011-03-10 10:34 am (UTC)(link)
Слушай, а давай немножко разовьем логику лицензий?

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

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 10:56 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 12:03 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 12:24 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 12:30 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 13:26 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 13:03 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 13:14 (UTC) - Expand
allter: (Default)

[personal profile] allter 2011-03-10 11:22 am (UTC)(link)
Разве GNU Affero не для этого? Коммерческий код - через вебсервис, а GPL-ный можно ещё и путём линковки.

(no subject)

[personal profile] allter - 2011-03-10 11:36 (UTC) - Expand

(no subject)

[identity profile] lqp.livejournal.com - 2011-03-10 12:16 (UTC) - Expand

(no subject)

[personal profile] allter - 2011-03-10 12:36 (UTC) - Expand

(no subject)

[identity profile] lqp.livejournal.com - 2011-03-10 22:46 (UTC) - Expand

(no subject)

[personal profile] allter - 2011-03-11 20:13 (UTC) - Expand

(no subject)

[identity profile] lqp.livejournal.com - 2011-03-17 13:24 (UTC) - Expand

(no subject)

[identity profile] lqp.livejournal.com - 2011-03-11 17:05 (UTC) - Expand

(no subject)

[identity profile] lqp.livejournal.com - 2011-03-17 13:25 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 11:54 (UTC) - Expand

[identity profile] slobin.livejournal.com 2011-03-10 12:11 pm (UTC)(link)
Мне уже это приходило в голову: после 2020 года (цифра условная) 98% информации, гоняемой поверх интернета, будет служебная юридическая: автоматический поиск совместимых лицензий, автоматический отзыв лицензий и посылка cease and desist уведомлений, автоматическое формирование патентных пулов для распределения нагрузки... Ну, типа заголовки пакетов такие. ;-) Чем, собственно, несовместимость лицензий хуже несовместимости протоколов или кодировок?

... Откуда про реальность знаешь, мужик? ...

(no subject)

[identity profile] p_govorun.livejournal.com - 2011-03-10 14:43 (UTC) - Expand

[identity profile] nuclight.livejournal.com 2011-03-10 01:06 pm (UTC)(link)
Что именно имеется в виду? А то под это описание, например, CDDL есть. Правда, придется s/GPL/LGPL/ сделать.

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 13:09 (UTC) - Expand
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 10:36 am (UTC)(link)
А rlwrap не оно?

[identity profile] lazyreader.livejournal.com 2011-03-10 10:38 am (UTC)(link)
+1, я тоже удивился - вроде как сто лет есть.

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 10:46 (UTC) - Expand

[identity profile] djdfy [lj.rossia.org] (from livejournal.com) 2011-03-10 07:34 pm (UTC)(link)
У меня rlwrap оставил ощущение "всё равно не работает, придется пересобирать с readline", когда в squeeze (еще testing) подобным образом сломали mysql-client. Пароль при вводе светился точно, насчет багов с utf-8 уже не помню.

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 20:25 (UTC) - Expand

[identity profile] kouzdra.livejournal.com 2011-03-10 10:41 am (UTC)(link)
И почему-то ни до кого до сих пор не доперло, что вообще-то GPL запрещает что-то с чем-то линковать, но не запрещает запускать как субпроцесс программы с какой угодно лицензией и общаться с ними через пайп, псевдотерминал или что угодно.

Это, кстати, спорный вопрос.

(no subject)

[identity profile] kouzdra.livejournal.com - 2011-03-10 11:26 (UTC) - Expand

(no subject)

[identity profile] kouzdra.livejournal.com - 2011-03-10 11:31 (UTC) - Expand

(no subject)

[identity profile] kouzdra.livejournal.com - 2011-03-10 12:29 (UTC) - Expand

(no subject)

[identity profile] p_govorun.livejournal.com - 2011-03-10 14:49 (UTC) - Expand

(no subject)

[identity profile] rdia.livejournal.com - 2011-03-10 21:41 (UTC) - Expand
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 10:49 am (UTC)(link)
А насчёт зловредности -- так это OpenSSL зловредная, раз запрещает её линковать с libreadline.

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 11:10 (UTC) - Expand

(no subject)

[identity profile] shaplov.livejournal.com - 2011-03-10 11:47 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 12:13 (UTC) - Expand

(no subject)

[identity profile] shaplov.livejournal.com - 2011-03-10 12:26 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 13:15 (UTC) - Expand
arilou: (Default)

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

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 11:19 (UTC) - Expand

(no subject)

[personal profile] allter - 2011-03-10 11:57 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 12:05 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 12:21 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 12:28 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 13:20 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 13:23 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 13:27 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 13:28 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 13:41 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 15:39 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 17:26 (UTC) - Expand

(no subject)

[identity profile] nuclight.livejournal.com - 2011-03-10 13:14 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 13:23 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 15:12 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 15:25 (UTC) - Expand

(no subject)

[identity profile] beldmit.livejournal.com - 2011-03-10 15:40 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 12:17 (UTC) - Expand

(no subject)

[personal profile] allter - 2011-03-10 12:43 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2011-03-10 13:35 (UTC) - Expand

(no subject)

[personal profile] allter - 2011-03-10 20:46 (UTC) - Expand

(no subject)

[personal profile] sergey_cheban - 2011-03-10 14:00 (UTC) - Expand

[identity profile] http://users.livejournal.com/_slw/ 2011-03-10 11:12 am (UTC)(link)
debian -- это религия.
не поможет

(no subject)

[identity profile] ckotinko.livejournal.com - 2011-03-10 11:46 (UTC) - Expand
avysk: (Default)

[personal profile] avysk 2011-03-10 11:29 am (UTC)(link)
Ещё есть ledit.

[identity profile] nec-p1us-u1tra.livejournal.com 2011-03-10 11:34 am (UTC)(link)
И не только rlwrap. Я для ocaml'овского cli помнится использовал что-то на окамле и написанное.

[identity profile] potan.livejournal.com 2011-03-10 11:49 am (UTC)(link)
Таких программок вагон и маленькая тележка.
Но меня они не устраивают по двум пунктам.
Комплетишен они не умеют и их сложно ему научить.
Если оборачиваемая ими программа запускает другие, так же работающие со стандартными вводом/выводом, но истории их смешиваются.
Из-за этого я воевал в окамловской рассылке, даже пач им прислал, позволяющий подобные библиотеки цеплять, но они от своего ledita отказаться не могут. Больше я OCaml стараюсь не использовать, благо есть куча приличных языков с нормальным REPLом.

[identity profile] potan.livejournal.com 2011-03-10 03:04 pm (UTC)(link)
Ну там пришлось бы правила completion-а для каждого такого приложения отдельно описывать.

И учить ее имена таблиц и встроенных функций данного psql вытаскивать.
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 03:29 pm (UTC)(link)
Форкните rlwrap и научите её вытаскивать имена таблиц и встроенных функций базы. Упс, получился клиент к PostgreSQL.

[identity profile] paracloud.livejournal.com 2011-03-10 06:11 pm (UTC)(link)
Хмм, берем язык, который поддерживает метафору динамического связывания через передачу сообщений. Питон там какой или Objective-C. Заворачиваем его вокруг socket или ещё какого message based IPC. Наворачиваем этот интерфейс вокруг readline и используем в проприетарной программе через distributed objects или тому подобный IPC.

Что скажет дух закона FSF на такую линковку?

ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2011-03-10 08:28 pm (UTC)(link)
Скажет: «Жениться вам, барин, пора».

[identity profile] mithraen.livejournal.com 2011-03-12 11:38 pm (UTC)(link)
А не проще ли в этом конкретном случае вынести в отдельный процесс таки работу с SSL?

(no subject)

[identity profile] mithraen.livejournal.com - 2011-03-13 14:25 (UTC) - Expand