LINUX.ORG.RU

Сообщения Bass

 

Проблемы с тестированием binutils с DejaGnu 1.6

Пытаюсь прогнать тесты GNU binutils (из git) с переопределённой переменной RUNTESTFLAGS (хочу получить XML-отчёты):

$ make -k RUNTESTFLAGS='--all --xml' check

Всё было прекрасно с runtest 1.5.1, но вот с runtest 1.6 дерьмо летит в вентилятор:

Making a new site.exp file...
srcdir=`cd . && pwd`; export srcdir; \
r=`pwd`; export r; \
LC_ALL=C; export LC_ALL; \
EXPECT=expect; export EXPECT; \
runtest=runtest; \
if /bin/bash -c "$runtest --version" > /dev/null 2>&1; then \
  CC="gcc" CC_FOR_BUILD="gcc" \
  CC_FOR_TARGET="gcc" CFLAGS_FOR_TARGET="-g -O2" \
    $runtest --tool binutils --srcdir ${srcdir}/testsuite \
        --all --xml; \
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
fi
WARNING: Couldn't find tool init file
couldn't open ".../binutils/testsuite": illegal operation on a directory
Makefile:1322: recipe for target 'check-DEJAGNU' failed
    while executing
"open [file join $outdir $xml_file_name] w"
    (procedure "open_logs" line 19)
    invoked from within
"open_logs"
    (file "/usr/share/dejagnu/runtest.exp" line 1223)
make[5]: *** [check-DEJAGNU] Error 1
make[4]: *** [check-am] Error 2
make[3]: *** [check-recursive] Error 1
make[2]: *** [check] Error 2
make[1]: *** [check-binutils] Error 2
make: *** [do-check] Error 2

Цель check-DEJAGNU выглядит идентично на системах с runtest 1.5 и runtest 1.6:

1321 check-DEJAGNU: site.exp
1322         srcdir=`cd $(srcdir) && pwd`; export srcdir; \
1323         r=`pwd`; export r; \
1324         LC_ALL=C; export LC_ALL; \
1325         EXPECT=$(EXPECT); export EXPECT; \
1326         runtest=$(RUNTEST); \
1327         if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
1328           CC="$(CC)" CC_FOR_BUILD="$(CC_FOR_BUILD)" \
1329           CC_FOR_TARGET="$(CC_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS)" \
1330                 $$runtest --tool $(DEJATOOL) --srcdir $${srcdir}/testsuite \
1331                         $(RUNTESTFLAGS); \
1332         else echo "WARNING: could not find \`runtest'" 1>&2; :;\
1333         fi

Насколько я понял, «illegal operation on a directory» — это EISDIR, возникающий тупо из-за того, что $xml_file_name в исходнике на Expect на одной из систем тупо пуст, что и приводит к неудачной попытке писать отчёт в каталог вместо регулярного файла.

Я нашёл обходной путь — пришлось ключу --xml в случае runtest 1.6 сообщить явный аргумент (игнорируется версией runtest 1.5):

$ make -k RUNTESTFLAGS='--all --xml=testsuite.xml' check

Краткий вопрос: WTF? Более точно — чей именно это WTF? В какой из двух проектов (dejagnu или binutils) отправлять багрепорт?

 , , , ,

Bass
()

Debian: обратный поиск build-зависимостей для source-пакетов

Задача: хочу выяснить, для сборки каких пакетов (в качестве build-зависимости) нужен пакет X (напр., список всех пакетов, для сборки которых нужен gcj или gfortran).

Т. е. нужно нечто среднее между apt-cache showsrc (показывает зависимости source-пакета, но «не в ту сторону») и apt-cache rdepends (показывает обратные зависимости, но только для бинарных пакетов).

Как решается?

 ,

Bass
()

Проекты c хорошими тестами, использующие Autotools

Ищу примеры проектов (желательно на C или C++) с хорошими unit-тестами, использующих в качестве тестовой обвязки DejaGnu, TAP (Test Anything Protocol) либо же интегрирующихся с automake напрямую.

Хочу, чтобы по make test (или make check) выполнялся запуск тестов.

Проекты нужны, дабы тренироваться на кошках — планирую написать интеграцию для Jenkins.

Большие проекты (типа gcc или glibc) не подходят, ибо будут слишком долго собираться. Нужно что-то поменьше, вроде curl, glib или libpng.

Что посоветуете?

 , , ,

Bass
()

archive.debian.net: Service disabled

Захожу на https://archive.debian.net — и вижу упомянутое сообщение.

Куда он делся? Есть ли альтернативы?

Хочется функциональности https://packages.debian.org (в т. ч. применительно к source-пакетам), но для архивных версий Debian (напр., Woody).

 

Bass
()

Ошибка компиляции jabber.el

Товарищи, приветствую.

Ставлю jabber.el 0.8.92 из melpa-stable (Emacs 24.x) — и при компиляции наблюдаю кучу ошибок вида:

Compiling file .../.emacs.d/elpa/jabber-0.8.92/jabber-awesome.el at Fri May  5 14:57:12 2017
jabber-awesome.el:21:30:Error: Required feature `jabber-autoloads' was not provided

Compiling file .../.emacs.d/elpa/jabber-0.8.92/jabber-bookmarks.el at Fri May  5 14:57:12 2017
jabber-bookmarks.el:22:1:Error: Required feature `jabber-autoloads' was not provided

Сам пакет (~/.emacs.d/elpa/jabber-0.8.92) наблюдаю, часть исходников скомпилирована.

Причём поведение идентично и на Linux, и на Cygwin.

С другой стороны, jabber.el 0.8.0 из репозитория Debian (пакет emacs-jabber) устанавливается и работает на «ура».

WTF?

 ,

Bass
()

Почти детективная история

Сегодня сподобился таки выяснить, что нового в новой версии одной среды разработки, и увидел какие-то нездоровые соединения по HTTPS с сетью 1e100.net:

$ netstat -4 -p | grep seamonkey
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 anthrax:44441 a104-126-161-235.:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:60367 74.125.131.95:https     ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:55755 bam-7.nr-data.net:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:34895 ec2-52-17-140-88.:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:40711 ec2-52-18-226-11.:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:58230 lk-in-f155.1e100.:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:38400 server-205-251-21:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:47717 173.194.122.222:https   ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:40707 ec2-52-18-226-11.:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:44442 a104-126-161-235.:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:40708 ec2-52-18-226-11.:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:40706 ec2-52-18-226-11.:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:40710 ec2-52-18-226-11.:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:60455 173.194.122.192:https   ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:40709 ec2-52-18-226-11.:https ESTABLISHED 17902/seamonkey
tcp        0      0 anthrax:42138 ec2-54-217-236-18:https ESTABLISHED 17902/seamonkey

В результате гугления было выяснено, что *.1e100.net, как и следует из названия, — это принадлежащий Google сервис проверки подлинности сайтов.

Буквально первая же ссылка ведёт на SuperUser.com, и комментарии там жгут:

Because Google loves you and just wants you to be happy. Like a benevolent big brother watching your every move and giving you the creepily specific targeted advertising you subconsciously know you need.

Окей, но мой браузер — ни разу не Chrome. WTF?!

  • Отключаю к чертям весь safe browsing (browser.safebrowsing.* в about:config).
  • Отключаю OCSP (security.OCSP.enabled=0).
  • Сношу HTTPS Everywhere.

На выходе same shit — мозилла лезет, куда не следует.

Окей, я не ленивый. Поднимаю BIND 9 и добавляю новую зону:

$TTL    604800
@       IN      SOA     ns.1e100.net. root.1e100.net. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.1e100.net.
@       IN      A       127.0.0.1
@       IN      AAAA    ::1
*       IN      A       127.0.0.1
*       IN      AAAA    ::1

Перезапускаю BIND, переписываю /etc/resolv.conf. Теперь всё должно работать:

$ host li-in-f155.1e100.net
li-in-f155.1e100.net has address 127.0.0.1
li-in-f155.1e100.net has IPv6 address ::1

Запускаю мозиллу — она снова лезет не туда (я наблюдаю ровно тот же вывод, что и в первом листинге, т. к. обратный DNS по-прежнему работает):

$ dig -x 173.194.220.155 | grep -A1 'ANSWER\ SECTION'
;; ANSWER SECTION:
155.220.194.173.in-addr.arpa. 84939 IN  PTR     lk-in-f155.1e100.net.

Причём сброс DNS-кэша операционной системы, её перезапуск и, наконец, запуск браузера с «чистым» профилем и без расширений тоже ни к чему не приводит. Напрашивается один из двух выводов:

  • либо Safe Browsing — это неотключаемая «фича», и через какой-то сервис браузер продолжает получать список IP-адресов для соединения по HTTPS,
  • либо источник проблемы не на клиенте, а на сервере, и какой-то чёртов JavaScript выполняет роль DNS (разумеется, уже без UDP-запросов на 53-й порт) в обход локального DNS (вы уж простите за конспирологические теории),
  • либо, наконец, я недонастроил локальный DNS.

Соответственно, вопрос: WTF и как с этим бороться? В кодовой базе SeaMonkey 2.40 (Firefox 43) «захардкоженных» IP-адресов и строк вида «1e100.net» я не нашёл.

И, чтобы два раза не вставать, вопрос №2.

Попутно, на волне паранойи, решил запретить на уровне DNS всякие facebook.com, fbcdn.net, fb.com, vk.com и прочую дрянь. Отлично, теперь при вводе в строке адреса браузера «fb.com» открывается локальный Apache. Я доволен. Но есть одно «но».

При попытке зайти на http://facebook.com (который, напомню, разрешается в 127.0.0.1) браузер пытается перейти на https://facebook.com, при том, что на моём локальном Apache не сконфигурирована HTTP Strict-Transport-Security и никаких HTTP 302 он тоже, разумеется, не шлёт. Причём версии браузеров трёхлетней давности такой ерундой не страдают.

WTF?! Опять начинаю искать в кодовой базе — и нахожу просто прелестное.

Без малого 3000 доменов, к которым надо ходить строго так, как приказал Большой Брат, описаны в файле security/manager/ssl/nsSTSPreloadList.inc.

И это ещё полбеды. Есть ещё security/manager/ssl/StaticHPKPins.h, содержащий фингерпринты X.509-сертификатов всё тех же сайтов.

Вопрос: как выключить этот чёртов HPKP (на этапе компиляции либо через about:config)? Хочу свой facebook.com с блэкджеком и шлюхами шахматами и поэтессами.

 , , ,

Bass
()

Различный межстрочный интервал в зависимости от кодировки шрифта

Исторически использовал Monotype Courier New в кач-ве шрифта XTerm (хорошо отображает и кирилицу, и псевдографику. Ну и, кроме того, он у меня использовался везде — в PuTTY на оффтопике, в IDE, во всяких вимах/емаксах и т. д.). После миграции с KOI8-R на UTF-8 (нет, я не с Луны свалился, это было уже много лет назад), заметил увеличение межстрочного интервала (тж известного как интерлиньяж), после чего любимый Courier New оставалось разве что выкинуть на помойку.

Вот так XTerm выглядел (и выглядит по сей день) в ru_RU.KOI8-R (12pt Courier New).

А вот так он выглядит сейчас (ru_RU.UTF-8, те же 12pt, та же ширина символов, размер терминала по-прежнему 80x24, но вот интерлиньяж увеличен, в результате чего линии псевдографики имеют характерные «разрывы» между строк).

Ну и, собственно, XTerm не один такой красивый. Все программы, использующие Core X11 Fonts, обнаруживают схожее поведение. Вот, например, xfontsel, например.

Что интересно, Courier New — это единственный чёртов TrueType-шрифт, за которым замечен такой грех. У других шрифтов, как -misc-freemono-*, межстрочный интервал от кодировки X11 не зависит.

Вопрос.

Как принудительно изменить межстрочный интервал для конкретного шрифта? В какую сторону смотреть? FreeType? Или Xft?

 , , ,

Bass
()

Core X11 шрифтов вопрос

Это которые серверные и доступны через XLFD-описания (в основном Xaw, Motif, GTK+ 1.x, Qt 1.x).

Вот, помнится, раньше (в Debian до версии 6 («Squeeze») включительно) был такой пакет defoma (и ещё x-ttcidfont-conf к нему впридачу).

В процессе установки новых TrueType-шрифтов включались какие-то триггеры, в результате чего шрифты регистрировались не только в клиентском fontconfig'e, но и в xfs с автоматической доступностью всем X11-серверам в сети (в каталоге со шрифтами обновлялись/создавались fonts.dir/fonts.scale/fonts.alias, сам каталог дописывался в /etc/fs/config, процессу xfs посылался SIGHUP).

На стороне X11-сервера я только делал что-то наподобие «xset fp rehash» — и вуаля!

И вот теперь я типа портирвал этот самый defoma на Debian 7+, воткнул его в машину с Jessie, снёс и переустановил шрифты — и хрен по деревне. Никаких тебе триггеров, и dpkg-reconfigure не помогает. Что как бы наводит на мысль, что была ещё какая-то (ныне выпиленная) обвязка на стороне пакетов шрифтов как раз для интеграции с defoma.

Соответственно, у меня три вопроса:

  1. Кто ещё помнит, как работает defoma?
  2. Какие есть альтернативы? Запускать ручками mkfontscale каждый раз, когда я обновлю шрифты, не хочется. «crontab -e» не предлагать.
  3. Наконец, как с тем же самым обстоят дела в других ОС/дистрибутивах. Особенно интересны отклики пользователей Gentoo и семейства *BSD UNIX — вдруг мне с тёплого лампового дебиана уже сползать пора?

 , ,

Bass
()

Дебиановской политики пост

Вот, решил тут реанимировать defoma, выкинутый из «Wheezy» без всякой альтернативы (автоматически добавлять новые шрифты в серверный X font path больше никто не умеет).

Ну, поправить зависимости — это понятно.

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

The package should be updated to follow the last version of Debian Policy (Standards-Version 3.9.6 instead of 3.6.2.0).

Я открыл этот Debian Policy — это ж простыня на 100 часов увлекательного чтения! Как мне быстро выяснить, где именно пакет не соответствует новой версии политики? Это я спрашиваю на случай, если maintainer уйдёт в несознанку или не поймёт моего русского.

 

Bass
()

XmStringGenerate() в режиме XmMULTIBYTE_TEXT или XmWIDECHAR_TEXT

Народ, а есть спецы, ещё помнящие X11/Motif? Что-то мне подсказывает, что среди моего поколения таких уже точно нет. Вопрос не праздный: http://stackoverflow.com/questions/34360066

 ,

Bass
()

HTTP 302 Moved Temporarily

Админы, не знаю, насколько это является проблемой сервера, но обратите внимание.

Если лезть на linux.org.ru, 80 порт с GET / HTTP/1.0, то нормально выдаётся страница.

Если же лезть туда же с GET / HTTP/1.0, Host: linux.org.ru, то выдаётся HTTP 302 и редирект на www.linux.org.ru.

Проблема в том, что, в отличие от linux.org.ru/217.76.32.61, www.linux.org.ru не разрешается частью DNS-серверов (возможно, это временно). Приходится или использовать HTTP/1.0, или делать запись в /etc/hosts.

>>>

Bass
()

2 одинаковые сетевые платы

Товарищи,

скажите, пожалуйста,
каким образом система решает,
какая из двух сетевых плат станет eth0, а какая eth1?


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

Обе платы -- 3c59x (3Com 905).

Все старт-скрипты, как назло, жёстко завязаны на eth0.

Существующая сетевая плата
(в т. ч. её HW Addr и Id внутри PCI-шины; видимо, рез-т вывода lspci) упомянута только в /etc/sysconfig/hwconf,
но на этот файл никто не ссылается.

Дистрибутив -- FC2.


Спасибо.

Bass
()

Проблема монтирования multisession DVD

Привет!

Скажите, пожалуйста, в каком состоянии сейчас находится поддержка мильтисессионных DVD-дисков?

А то гугл выдаёт описания проблем только для 2.6.8-2.6.9, а я столкнулся с морокой на более-менее новом 2.6.18.2.

При попытке примонтировать диск на консоль и в syslog с бешеной скоростью повалились сообщения вида:

> Jul 1 23:15:13 bass kernel: hdc: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache, UDMA(33) > Jul 1 23:15:13 bass kernel: Uniform CD-ROM driver Revision: 3.20 > Jul 1 23:15:24 bass kernel: UDF-fs: No VRS found > Jul 1 23:37:27 bass kernel: __find_get_block_slow() failed. block=18446744073708838256, b_blocknr=4294253936 > Jul 1 23:37:27 bass kernel: b_state=0x00000020, b_size=2048 > Jul 1 23:37:27 bass kernel: device blocksize: 2048 > Jul 1 23:37:27 bass kernel: __find_get_block_slow() failed. block=18446744073708838256, b_blocknr=4294253936 > Jul 1 23:37:27 bass kernel: b_state=0x00000020, b_size=2048 > Jul 1 23:37:27 bass kernel: device blocksize: 2048 > Jul 1 23:37:27 bass kernel: __find_get_block_slow() failed. block=18446744073708838256, b_blocknr=4294253936 > Jul 1 23:37:27 bass kernel: b_state=0x00000020, b_size=2048 > Jul 1 23:37:27 bass kernel: device blocksize: 2048 > Jul 1 23:37:27 bass kernel: __find_get_block_slow() failed. block=18446744073708838256, b_blocknr=4294253936 > Jul 1 23:37:27 bass kernel: b_state=0x00000020, b_size=2048 > Jul 1 23:37:27 bass kernel: device blocksize: 2048

-- и машина практически повисла.

Используемый модуль -- ide_cd.

Кстати, решается ли проблема пересаживанием на ide_scsi?

Спасибо.

Bass
()

GTK/Qt и шрифты X-сервера

Здравствуйте, товарищи!

Скажите, пожалуйста, как поведёт себя GTK/Qt-приложение в случае, если на клиентской машине вообще будут отсутствовать какие-либо шрифты, и единственные доступные шрифты будут на X-сеервере?

Например, мозиллу *раньше* (сейчас не знаю) можно было скомпилировать с поддержкой X server fonts (aka core X fonts) и без поддержки шрифтов локальных, так чтобы она не гоняла битмапы с клиента на сервер.

Также желаемая функциональность присутствует "из коробки" у Xt/Athena/Motif/CDE.

А вот можно ли навязать такое поведение приложению, которе использует Pango (с любым из бэкендов) или напрямую FreeType2 или Xft?

Спасибо.

Bass
()

Mozilla и производительность XUL

Привет!

Как известно, практически любой продукт Mozilla Foundation представляет собой написанную на C++ виртуальную машину, которая отвечает за построение GUI из XML-описания (точнее, XUL-описания) и в которой в интерпретируемом режиме исполняется "логика", написанная на JavaScript.

Фактически, любое окно представляет собой комбинацию XUL-файла и JS-файла.

С одной стороны, это даёт относительную лёгкость разработки внешних расширений (не нужно знать C++),

с другой -- в силу сходства технологий производительность упомянутых программ по порядку величины сравнима с производительностью AJAX-приложений.

На днях посмотрел Оперу -- и, как в растаманской сказке, подумал: "Какая же она, сука, шустрая!" -- (это несмотря на то, что Qt -- "big and bloated").

Соответственно, вопрос знатокам: планируются ли какие-л. меры по оптимизации производительности XUL-приложений? М. б., JIT какой-нибудь?

Спасибо.

Bass
()

Потенциальный боян о GMail

Как отреагируете на следующее:

Мужику, использовавшему SeaMonkey + GreaseMonkey(Secure GMail Script) для доступа к web-версии GMail, отрубили этот самый доступ "за использование неразрешённых расширений браузера" (официальная формулировка).

Здесь:

http://www.theinquirer.net/default.aspx?article=37315

Bass
()

Патчи д/binutils

Привет всем!

binutils-2.15 не компилируется gcc-4.0 в связи с тем, что использует массивы недоопределённого типа (см. http://gcc.gnu.org/gcc-4.0/changes.html -- "Arrays of incomplete element type are invalid in C. GCC now issues an error for such arrays.").

Вопрос: где взять патчи?

Заранее спасибо.

Bass
()

Варианты компиляции glibc

Здравствуйте, все!

С какими ключами лучше всего конфигурить glibc для использования под ядра 2.4.x? Получалось:

a) с linuxthreads, --with-__thread, --without-tls

б) с linuxthreads, --without-__thread, with_tls (правда, в этом последнем случае make check говорит, что kernel is too old for thread local storage, но по субъективным ощущениям -- всё работает (и вроде даже быстрее).

С nptl -- ничерта не получилось.

Рабочее ядро -- 2.4.30, хедеры -- 2.6.11.7, gcc 3.4.3, binutils 2.15.

Где можно подробно почитать про квалификатор __thread и/или патчах для 2.4.x, включающих поддержку nptl и/или tls? Гуглить не предлагать -- уже пробовал.

Заранее спасибо.

Bass
()

glibc update

Привет всем!

Недавно ручками обновил glibc, но после обнаружил, что в собранной вручную версии (по сравнению с дефолтной из дистрибутива) отсутствуют 2 дополнения:

The C stubs add-on version 2.1.2.
Glibc-2.0 compatibility add-on by Cristian Gafton

Вопрос: где достать? Поиск в google плодов не дал.
Заранее спасибо.

Bass
()

Калькулятор для Enlightenment/WMaker/Mwm

Привет всем!

Известно, что, скажем, официальный калькулятор для среды KDE -- это kcalc, для GNOME -- gnome-calculator, а для CDE -- dtcalc.

А есть ли какой-нибудь калькулятор для WMaker, написанный с использованием того же widget set'а?
Ну и, собственно, тот же вопрос для E и Mwm.

Bass
()

RSS подписка на новые темы