* Вт апр 09 2013 Dmitry V. Levin <ldv@altlinux.org> 6:2.17-alt5 - getaddrinfo: updated fix for sw#15339. Я заменил example.net на nxdomain.codeweavers.com в примере из https://sourceware.org/bugzilla/show_bug.cgi?id=15339 и ниже привожу результаты моего тестироввания: $ cat glibc_bug15339.c #include <stdio.h> #include <netdb.h> int main(void) { struct addrinfo *ai; int res = getaddrinfo ("nxdomain.codeweavers.com", "http", 0, &ai); if (res) printf("%s: %m\n", gai_strerror(res)); return res && res != EAI_NONAME; } $ gcc -Wall -O2 -o glibc_bug15339 glibc_bug15339.c $ ./glibc_bug15339 Name or service not known: Success ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ $ gcc -m32 -Wall -O2 -o glibc_bug15339 glibc_bug15339.c $ ./glibc_bug15339 System error: Success ^^^^^^^^^^^^^^^^^^^^^ $ file /lib/libc.so.6 /lib/libc.so.6: symbolic link to `libc-2.17.so' $ file /lib/libc-2.17.so /lib/libc-2.17.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped $ rpm -qf /lib/libc-2.17.so i586-glibc-core-2.17-alt5 ^^^^^^^^^^^^^^^^^^^^^^^^^ $ file /lib64/libc.so.6 /lib64/libc.so.6: symbolic link to `libc-2.17.so' $ file /lib64/libc-2.17.so /lib64/libc-2.17.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped $ rpm -qf /lib64/libc-2.17.so glibc-core-2.17-alt5 ^^^^^^^^^^^^^^^^^^^^ $ uname -r 3.10.23-std-def-alt1 Похоже, что i586-* версию пакета glibc просто не пропатчили/забыли обновить.
На Sisyphus.
А пакет i586-glibc-nss установлен?
(В ответ на комментарий №2) > А пакет i586-glibc-nss установлен? Да. $ rpm -qa | grep i586-glibc-nss i586-glibc-nss-2.17-alt5
(В ответ на комментарий №0) > Похоже, что i586-* версию пакета glibc просто не пропатчили/забыли обновить. Вообще-то x86_64 и i586 собираются в рамках атомарного задания и разъехаться по соответствию исходнику не могут в принципе (гарантия сборочницы), да и i586-* не собираются, а перепаковываются в рамках того же задания (см. http://git.altlinux.org/tasks и пакет rpmrebuild-arepo).
(В ответ на комментарий №4) > > Похоже, что i586-* версию пакета glibc просто не пропатчили/забыли обновить. > Вообще-то x86_64 и i586 собираются в рамках атомарного задания и разъехаться по > соответствию исходнику не могут в принципе (гарантия сборочницы), да и i586-* > не собираются, а перепаковываются в рамках того же задания (см. > http://git.altlinux.org/tasks и пакет rpmrebuild-arepo). Я вего лишь высказал свое предположение и назвал возможную причину :) Тогда как можно объяснить причину такого поведения i586-* сборки glibc?
Проверьте, какие модули указаны в /etc/nsswitch.conf для hosts, и доустановите недостающие 32-битные пакеты для этих модулей. Сейчас конфигурация по умолчанию может выглядеть так: hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4 myhostname (myhostname сюда добавляется в %post пакета libnss-myhostname, который указан в зависимостях пакета systemd). Поэтому, помимо i586-glibc-nss, ещё требуются пакеты: i586-libnss-mdns i586-libnss-myhostname Отсутствие i586-libnss-mdns при наличии mdns4_minimal и mdns4 в nsswitch.conf приводит как раз к появлению "System error" в данном тесте.
(В ответ на комментарий №6) > Поэтому, помимо i586-glibc-nss, ещё требуются пакеты: > > i586-libnss-mdns > i586-libnss-myhostname > > Отсутствие i586-libnss-mdns при наличии mdns4_minimal и mdns4 в nsswitch.conf > приводит как раз к появлению "System error" в данном тесте. Да, пакеты, перечисленные выше, установлены не были. После их установки 32-битный тест печатает ту же информацию об ощибке, что и 64-битный. Решайте сами, насколько 'optional' являются эти пакеты, и должна ли от них зависеть базовая функциональность glibc (IMHO - не должна). Или нужно "просто" добавить эти пакеты в зависимости glibc.
(In reply to comment #7) > (В ответ на комментарий №6) > > Поэтому, помимо i586-glibc-nss, ещё требуются пакеты: > > > > i586-libnss-mdns > > i586-libnss-myhostname > > > > Отсутствие i586-libnss-mdns при наличии mdns4_minimal и mdns4 в nsswitch.conf > > приводит как раз к появлению "System error" в данном тесте. > > Да, пакеты, перечисленные выше, установлены не были. После их установки > 32-битный тест печатает ту же информацию об ощибке, что и 64-битный. Q.E.D. > Решайте сами, насколько 'optional' являются эти пакеты, Пакеты libnss-mdns и libnss-myhostname являются optional в том смысле, что если реализуемый ими функционал не нужен, то устанавливать их незачем. Парные к ним i586-libnss-mdns и i586-libnss-myhostname optional в том смысле, что их имеет смысл устанавливать только в том случае, когда установлены libnss-mdns, libnss-myhostname и i586-glibc-nss. > и должна ли от них > зависеть базовая функциональность glibc (IMHO - не должна). Базовая функциональность glibc является настраиваемой, в данном случае, посредством /etc/nsswitch.conf, причем пакеты libnss-mdns и libnss-myhostname при установке редактируют этот конфигурационный файл, в результате чего поведение glibc NSS начинает зависеть от этих пакетов. > Или нужно "просто" добавить эти пакеты в зависимости glibc. Видимо, в профиле дистрибутива надо что-то подкрутить.
Перевешиваю на Кентавра.
Судя по всему, это сейчас касается только Centaurus и Simply: в двух образах присутствуют пакеты libnss-{mdns,myhostname} и i586-glibc-nss, но при этом отсутствуют пакеты i586-libnss-{mdns,myhostname}: altlinux-7.0.1-centaurus-x86_64-ru-install-dvd5.iso altlinux-7.0.2-simply-x86_64-install-dvd5.iso
Может, в пакет wine-full включить симлинки на 32-битные библиотеки glibc-nss, libnss-{mdns,myhostname} и sssd-client (по одной на каждый пакет), как это сделано в пакете https://packages.altlinux.org/en/Sisyphus/srpms/skype-preinstall/spec ?
(В ответ на комментарий №11) > Может, в пакет wine-full включить симлинки на 32-битные библиотеки glibc-nss, > libnss-{mdns,myhostname} и sssd-client (по одной на каждый пакет), как это > сделано в пакете > https://packages.altlinux.org/en/Sisyphus/srpms/skype-preinstall/spec ? Я думаю, более правильно добиться, чтобы 32-битная basesystem была полноценная, а не что вытянется случайно. Уж вот каким боком sssd-client связан с wine? В Debian не так уж и плохо было с ia32-libs.
Начиная с eepm 3.3.0-alt1 добавлен сценарий для приведения 32-битных модулей в соответствие 64-битным: # epm prescription i586-fix Начиная с eepm 3.5.0-alt1 # epm play i586-fix