Bug 48641 - сломалось предложение полезного имени хоста
Summary: сломалось предложение полезного имени хоста
Status: ASSIGNED
Alias: None
Product: Sisyphus
Classification: Development
Component: installer (show other bugs)
Version: unstable
Hardware: e2k Linux
: P5 normal
Assignee: Michael Shigorin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-11-30 17:01 MSK by Michael Shigorin
Modified: 2026-01-23 15:56 MSK (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Shigorin 2023-11-30 17:01:19 MSK
В какой-то до конца не ясный момент произошло изменение поведения инсталятора: если до этого при доступности сетевого интерфейса с DHCP на стадии конфигурирования сети по возможности предлагалось имя из DNS, то теперь стали лезть безликие "host-${последний_октет_адреса}".

Заметил, что в консоли инсталятора "resolve адрес" моментально возвращает "localhost.localdomain" -- при том, что в /etc/resolv.conf правильно указаны DNS-серверы, полученные по DHCP.

В итоге выяснилось, что гадит попавшая в инсталятор libnss-myhostname;
если из /etc/nsswitch.conf убрать "myhostname" в строке hosts:, начинают нормально работать и resolve в консоли, и alterator-net-eth на своём шаге.

Собираюсь исправить в installer.
Comment 1 Michael Shigorin 2023-11-30 19:27:56 MSK
Там же рядом замечен /etc/nsswitch.conf.rpmorig _без_ myhostname для hosts:,
но с systemd для passwd:/group: (в отличие от /etc/nsswitch.conf).

Кто это делает?
Comment 2 Andrew Vasilyev 2023-11-30 20:46:01 MSK
  См., например, systemd.spec:

%post -n libnss-myhostname
if [ -f /etc/nsswitch.conf ] ; then
        grep -E -q '^hosts:.* myhostname' /etc/nsswitch.conf ||
        sed -i.rpmorig -r -e '
                s/^(hosts):(.*) files(.*) dns/\1:\2 files myhostname\3 dns/
                ' /etc/nsswitch.conf >/dev/null 2>&1 || :
    # Fix: move myhostname after files
    if grep -E -q '^hosts:.* dns myhostname' /etc/nsswitch.conf ; then
        sed -i.rpmorig -r -e '
                s/^(hosts):(.*) files(.*) dns myhostname/\1:\2 files myhostname\3 dns/
                ' /etc/nsswitch.conf >/dev/null 2>&1 || :
    fi
    if grep -E -q '^hosts:.* myhostname.*files' /etc/nsswitch.conf ; then
        sed -i.rpmorig -r -e '
                s/^(hosts):(.*) myhostname(.*) files(.*)/\1:\2 files myhostname\3\4/
                ' /etc/nsswitch.conf >/dev/null 2>&1 || :
    fi
fi
Comment 3 Mikhail Efremov 2026-01-21 17:31:56 MSK
Так ты ж это давно исправил вроде как:
ea1290b8ba25142c0ac16f0d9d423df3b98517d2
Author: Michael Shigorin <mike@>
Date:   Thu Nov 30 16:45:56 2023 +0300

initinstall.d/10-network.sh: avoid 'myhostname' method
Comment 4 Michael Shigorin 2026-01-23 14:32:36 MSK
(Ответ для Mikhail Efremov на комментарий #3)
> Так ты ж это давно исправил вроде как:
Ну вот опять напоролся -- возможно, регэкс отвалился, пора опять выяснять, но:

# grep host /etc/nsswitch.conf
hosts:      files myhostname mdns4_minimal [NOTFOUND=return] dns
Comment 5 Michael Shigorin 2026-01-23 15:56:50 MSK
В installer 1.16.35 сделал так (fe859841b2df426d9a3bee31635dffa452892ad7,
пока что пробное http://git.altlinux.org/tasks/405928/):

-# Defuse libnss-myhostname
-sed -i 's,myhostname ,,' /etc/nsswitch.conf
+# Ensure sane (local)host name resolving (cf. ALT#48641)
+sed -ri 's,^(hosts: +).*$,\1files dns,' /etc/nsswitch.conf

Если у кого есть возражения -- излагайте их здеся же.
Но чтоб базовая функциональность работала.