From: Michael Prokop Date: Sun, 27 Nov 2011 02:25:05 +0000 (+0100) Subject: resolv.conf handling: resolve symlink inside chroot + drop resolvconf from 96-apt... X-Git-Tag: v0.17.0~34 X-Git-Url: https://git.grml.org/?p=grml-live.git;a=commitdiff_plain;h=5a00bf358eac8ba6c00666f3fa6670d9c3f58b9b resolv.conf handling: resolve symlink inside chroot + drop resolvconf from 96-apt-listbugs When resolving the symlink on a system using /lib/init/rw/resolvconf/ for resolvconf files but the chroot uses /run/resolvconf then the readlink call from outside the chroot fails. | # readlink -f /var/lib/jenkins/workspace/grml64_sid/grml_chroot/etc/resolv.conf | /lib/init/rw/resolvconf/resolv.conf | # chroot /var/lib/jenkins/workspace/grml64_sid/grml_chroot/ readlink -f /etc/resolv.conf | /run/resolvconf/resolv.conf Also drop the resolvconf code from 96-apt-listbugs. It's too error prone (meeeeeh) so people are supposed to either have something like dnsmasq running on the host or have a proper /etc/resolv.conf prepared. --- diff --git a/etc/grml/fai/config/hooks/instsoft.GRMLBASE b/etc/grml/fai/config/hooks/instsoft.GRMLBASE index c6760a5..51a0e77 100755 --- a/etc/grml/fai/config/hooks/instsoft.GRMLBASE +++ b/etc/grml/fai/config/hooks/instsoft.GRMLBASE @@ -21,7 +21,7 @@ if [ "$FAI_ACTION" = "softupdate" ] ; then echo "Action $FAI_ACTION of FAI (hooks/instsoft.GRMLBASE) via grml-live running" if [ -r /etc/resolv.conf ] ; then - case "$(readlink -f ${target}/etc/resolv.conf)" in + case "$(chroot $target readlink -f /etc/resolv.conf)" in /run/*) # resolvconf with /run mkdir -p $target/run/resolvconf cat /etc/resolv.conf >> $target/run/resolvconf/resolv.conf diff --git a/etc/grml/fai/config/scripts/GRMLBASE/96-apt-listbugs b/etc/grml/fai/config/scripts/GRMLBASE/96-apt-listbugs index c75a141..8049d7e 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/96-apt-listbugs +++ b/etc/grml/fai/config/scripts/GRMLBASE/96-apt-listbugs @@ -23,34 +23,6 @@ set -u [ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local [ -n "$HOSTNAME" ] || HOSTNAME=grml - if [ -r /etc/resolv.conf ] ; then - case "$(readlink -f ${target}/etc/resolv.conf)" in - /run/*) # resolvconf with /run - mkdir -p $target/run/resolvconf - cat /etc/resolv.conf >> $target/run/resolvconf/resolv.conf - ;; - /lib/*) # resolvconf without /run - # sanity check to avoid "input file is output file", - # see http://bts.grml.org/grml/issue984 - if ! [ -L $target/etc/resolvconf/run/resolv.conf ] ; then - cat /etc/resolv.conf >> $target/etc/resolvconf/run/resolv.conf - else - echo "Error: /etc/resolvconf/run/resolv.conf in chroot should not be a symlink." >&2 - echo " Looks like something is wrong, please fix manually." >&2 - exit 1 - fi - ;; - *) # no resolvconf - if ! [ -L $target/etc/resolv.conf ] ; then - cat /etc/resolv.conf >> $target/etc/resolv.conf - else - echo "Error: /etc/resolv.conf in chroot should not be a symlink (resolvconf not installed)." >&2 - exit 1 - fi - ;; - esac - fi - if [ -x $target/usr/sbin/apt-listbugs -a -x $target/usr/bin/apt-show-source ] && \ [ -x $target/etc/apt/grml/listbugs ] ; then for severity in critical grave serious ; do