Bug 48641

Summary: сломалось предложение полезного имени хоста
Product: Альт Сервер Reporter: Michael Shigorin <mike>
Component: УстановкаAssignee: Michael Shigorin <mike>
Status: NEW --- QA Contact: qa-p8 <qa-p8>
Severity: normal    
Priority: P5 CC: andy, antohami, shaba
Version: 10.1   
Hardware: e2k   
OS: Linux   

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