Имеется screen-4.0.2-alt3 на Compact 3.0, обновлённом до текущего Sisyphus. При запуске выдаётся заставка с предложением "[Press Space or Return to end.]" При нажатии на указанные клавиши screen зависает, до получения SIGKILL из соседней консоли. По-видимому, имеется некая проблема, связанная с нахождением командного интерпретатора, т.к. при указании /bin/bash в командной строке screen он успешно стартует (т.е. 'screen -s /bin/bash' работает). Переменная окружения SHELL установлена: $ set | grep SHELL= SHELL=/bin/bash Локального ~/.screen нет. Глобальный /etc/screenrc - из пакета, без изменений.
У меня работает, screen-4.0.2-alt3 bash-3.1.1-alt1
У меня пакеты те же. screen-4.0.2-alt3 bash-3.1.1-alt1 Разница, как я понимаю, в системах: у меня обновлённый до Sisyphus Compact 3.0rc10. На паре имеющихся вблизи Compact 3.0rc10 + backports ситуация та же.
Да, с тем же screen и на Sisyphus, ведущим свой начало с Master 2.4, всё работало.
Нет, не в командном интерпретаторе дело... От пользователя работает запуск вида $ screen -U или $ LANG=ru_RU.KOI8-R screen От root - и просто 'screen'... Итого: при локали UTF-8 без инициализации поддержки юникода screen виснет после вывода экрана приветствия.
Кажется, в федоре сделали автовключатор этой самой инициализации -- мож у них патчик стырить?
Не вижу в федоре такого патчика. Зато в 4.0.3 исправили пару каких-то юникодных багов.
Для screen-4.0.3-alt1 проблема актуальна (система ведёт начало от M22, /etc/screenrc никогда не трогался). Её может замаскировать ~/.screenrc с отключением баннера: startup_message off Вообще мож отключить его по умолчанию? А то анноит, честно говоря.
Лёш, поправь по возможности. А то с UTF-8 из коробки скрин у нас будет в ней "нерабочий". На крайняк хоть screenrc.
screen 4.0.3-alt2 - без изменений. Отключение баннера через директиву "startup_message off" в файле конфигурации снимает проблему разве что с зависанием: текст на русском ввести при этом не удастся, часть символов (например, 'ф') передаётся не правильно. Добавление в ~/.screenrc директив 'defutf8 on', 'utf8 on on' также ничего не даёт.
Не знаю что делать. У меня пока нет utf консоли, а то бы я занялся отладкой. Впрочем, utf консоль, может быть, скоро будет.
Алексей, можно запустить терминал в локали ru_RU.UTF-8. тот же uxterm
(In reply to comment #10) > Не знаю что делать. У меня пока нет utf консоли, а то бы я занялся отладкой. > Впрочем, utf консоль, может быть, скоро будет. Тю. :) --- ~/bin/uterm --- #!/bin/sh G_FILENAME_ENCODING=utf-8 LC_ALL=ru_RU.UTF-8 LC_COLLATE=uk_UA.UTF8 LC_CTYPE=uk_UA.UTF8 exec urxvt +sb -fn '-*-terminus-bold-*-*-*-20-*-*-*-*-*-iso10646-*' -rv -cr yellow -tn xterm &
screen -U работает
Это известно, но не всем. На RH-производных -U сейчас не требуется.
*ping*
Не знаю, что делать. Нет идей.
Попробую собрать ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/screen-4.0.3-1.el5.src.rpm
Created attachment 2027 [details] screen.spec for 4.0.3-alt0.1 based on 4.0.3-1 Тэкс... чего было сделано: спек подчищен до приложенного состояния, сборка поставлена в сизифовый контейнер после удаления родной и беглой проверки, что не осталось ошмётков (а, кроме группы в /etc/group). cd # поскольку там фигурировали startup_message off и KOI8 mv .screenrc .screenrc- mv .i18n .i18n- export LC_ALL=ru_RU.UTF-8 LANG=ru_RU.UTF-8 screen -- проблема не воспроизводится, поскольку startup message не вываливается (причём так и есть в /etc/screenrc). Думаю, достаточно просто добавить такое же # don't display the copyright page startup_message off в /etc/screenrc, как и предлагалось довольно давно. Сборка доступна здесь: http://paq.osdn.org.ua/~mike/RPMS/screen/
(In reply to comment #9) > Отключение баннера через директиву "startup_message off" в файле конфигурации > снимает проблему разве что с зависанием: текст на русском ввести при этом не > удастся, часть символов (например, 'ф') передаётся не правильно. Это осталось, причём явно не проблема терминала -- который дёргается так: #!/bin/sh G_FILENAME_ENCODING=utf-8 LANG=ru_RU.UTF-8 LC_ALL=ru_RU.UTF-8 LC_COLLATE=uk_UA.UTF8 LC_CTYPE=uk_UA.UTF8 exec urxvt +sb -fn '-*-terminus-bold-*-*-*-20-*-*-*-*-*-iso10646-*' -rv -cr yellow -tn xterm & и сам по себе позволяет ввод e.g. "фыва" или "йцукен". > Добавление в ~/.screenrc директив 'defutf8 on', 'utf8 on on' также ничего не > даёт. screen -U из сборки в предыдущем комментарии при этом работает нормально.
<morozov> Коммит f64bee34fba522762a12e9afa54289de0824d5db (screen-4.0.2-alt-cp866.patch) ломает работу screen'а в UTF-8
Коммит f64bee34fba522762a12e9afa54289de0824d5db (screen-4.0.2-alt-cp866.patch) ломает работу screen'а в UTF-8
(In reply to comment #21) > Коммит f64bee34fba522762a12e9afa54289de0824d5db (screen-4.0.2-alt-cp866.patch) > ломает работу screen'а в UTF-8 Вы сам патч-то видели? + { "CP866", 0, 0x80|'#', 0, 1, 0 }, + { "IBM866", 0, 0x80|'#', 0, 1, 0 }, Это имеет какое-либо отношение к UTF8? Думаю, что "раз не работает с этим, то давайте оторвём" явно не выход.
Отключать startup_message нежелательно из соображений GPL 2c.
Точняк, если откатить cp866.patch, то startup_message перестает зависать.
Там есть --help, которого довольно многим; если это годится для RH, для нас скорее тоже сгодится. 2 mouse: мне неудобно перед тобой, но предпочитаю факты отсутствию предположений. Докопаться до причины ломания двумя строчками чего-то, кроме гвоздей в индексах или ещё какой неявной завязки на порядок -- не могу. (мож попробовать эти две строчки в конец списка или по крайней мере строчкой ниже сдвинуть?)
+1 к startup_message off by default
$ grep -C1 -m1 announcement /usr/share/license/GPL-2 interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide $ Это отключается в ~/.screenrc.
ls или less при запуске, однако, не вываливают пол-экрана legalese с проблемами в юникоде :) В RH сочли осмысленным отрубить, да и у меня в таскаемом .screenrc это первая и последняя строчка. Не надо доводить до абсурда, дух же там в удобстве, да и буква без особого фундаментализма. Впрочем, это всё может быть здесь неактуально (FR про анноящий экран, а не bug про UTF-8).
Я откатил cp866.patch (взял коммит из morozov/packages/screen.git). Респект Морозову! Я также исправил все warnings в режиме -DDEBUG -Werror. Желающие прикрутить назад cp866 благоволят собирать screen в режиме rpmbuild --enable debug. Там какой-то чумной код прохода по этим таблицам, в котором я, увы, с ходу не разобрался. (ЕСТЬ ЗАСАДА: теперь в кмулятивный патч не помещается бинарный файл кодировки cp866; к сожалению mouse в свое время не открыл способ получения этого файла.) Закрываю баг как FIXED; может быть переоткрою баг с cp866, чтобы не забылось.
Спасибо!
(In reply to comment #27) > $ grep -C1 -m1 announcement /usr/share/license/GPL-2 Алексей, между удобством для пользователя и следованием букве закона я предлагаю выбрать удобство, для нас, для пользователей. Иначе, это походит на фанатизм Столлмана и то как это сделано в Debian (где после логина на консоль вываливается подобное предупреждение на пять строк). Почти всё отключают это приветствие, а кто не отключает, то, наверное, просто не в курсе, что его можно отключить ;)
То что сочли в RH это не аргумент. Авторы GNU screen сочли нужным по умолчанию выводить startup_message во исполнение требования GPL (которое, впрочем, не является слишком строгим). Я не свожу к абсурду, просто думаю оставить как есть. Если авторы less надумают выводить announcement, это конечно будет более актуальной проблемой. В отличие от less, screen я запускаю один раз per uptime. При переподключении к сессии announcement не выводится. Короче, можно открыть отдельный баг и там будем дальше спорить. :)