diff --git a/debian/qubes-core-agent.postinst b/debian/qubes-core-agent.postinst new file mode 100644 index 0000000..de26e6b --- /dev/null +++ b/debian/qubes-core-agent.postinst @@ -0,0 +1,15 @@ +# ensure that hostname resolves to 127.0.1.1 resp. ::1 and that /etc/hosts is +# in the form expected by qubes-sysinit.sh +for ip in '127\.0\.1\.1' '::1'; do + if grep -q "^${ip}\(\s\|$\)" /etc/hosts; then + sed -i "/^${ip}\s/,+0s/\(\s`hostname`\)\+\(\s\|$\)/\2/g" /etc/hosts + sed -i "s/^${ip}\(\s\|$\).*$/\0 `hostname`/" /etc/hosts + else + echo "${ip} `hostname`" >> /etc/hosts + fi +done +# remove hostname from 127.0.0.1 line (in debian the hostname is by default +# resolved to 127.0.1.1) +sed -i "/^127\.0\.0\.1\s/,+0s/\(\s`hostname`\)\+\(\s\|$\)/\2/g" /etc/hosts + +#DEBHELPER# diff --git a/rpm_spec/core-vm.spec b/rpm_spec/core-vm.spec index d5fd886..503fba9 100644 --- a/rpm_spec/core-vm.spec +++ b/rpm_spec/core-vm.spec @@ -210,6 +210,17 @@ if ! grep -q localhost /etc/hosts; then EOF fi +# ensure that hostname resolves to 127.0.0.1 resp. ::1 and that /etc/hosts is +# in the form expected by qubes-sysinit.sh +for ip in '127\.0\.0\.1' '::1'; do + if grep -q "^${ip}\(\s\|$\)" /etc/hosts; then + sed -i "/^${ip}\s/,+0s/\(\s`hostname`\)\+\(\s\|$\)/\2/g" /etc/hosts + sed -i "s/^${ip}\(\s\|$\).*$/\0 `hostname`/" /etc/hosts + else + echo "${ip} `hostname`" >> /etc/hosts + fi +done + if [ "$1" != 1 ] ; then # do the rest of %post thing only when updating for the first time... exit 0 diff --git a/vm-systemd/qubes-sysinit.sh b/vm-systemd/qubes-sysinit.sh index 08b610e..c5ee1ce 100755 --- a/vm-systemd/qubes-sysinit.sh +++ b/vm-systemd/qubes-sysinit.sh @@ -62,7 +62,13 @@ done name=`$XS_READ name` if [ -n "$name" ]; then hostname $name - sed -i "s/^\(127\.0\.0\.1 .*\) \($name \)\?\(.*\)/\1\2 $name/" /etc/hosts + if [ -e /etc/debian_version ]; then + ipv4_localhost_re="127\.0\.1\.1" + else + ipv4_localhost_re="127\.0\.0\.1" + fi + sed -i "s/^\($ipv4_localhost_re\(\s.*\)*\s\).*$/\1${name}/" /etc/hosts + sed -i "s/^\(::1\(\s.*\)*\s\).*$/\1${name}/" /etc/hosts fi timezone=`$XS_READ qubes-timezone 2> /dev/null`