GRMLBASE/98-clean-chroot: fix resolvconf symlink handling + get rid of resolvconf...
authorMichael Prokop <mika@grml.org>
Tue, 28 Jan 2020 10:21:44 +0000 (11:21 +0100)
committerMichael Prokop <mika@grml.org>
Tue, 28 Jan 2020 12:37:25 +0000 (13:37 +0100)
resolvconf no longer supports usage of /etc/resolvconf/run as such,
instead things are supposed to live in /run nowadays.  Quoting from
resolvconf's debian/changelog:

| resolvconf (1.80) unstable; urgency=medium
|
| [...]
|
|   [ Steve Langasek ]
|   * Eliminate all references to /etc/resolvconf/run.  This should all be done
|     directly in /run, there is no reason to support making any of this
|     configurable with a symlink since we already have a versioned dependency
|     on the version of initscripts that introduces the /run transition.

So /etc/resolv.conf being a symlink pointing to
/etc/resolvconf/run/resolv.conf no longer works, instead it needs to
point to /run/resolvconf/resolv.conf.

Given that our resolvconf code dates back to 2007 (see commit 1d1565d0e49),
while at it get rid of the workarounds, which don't seem to be needed
anymore.

Tested this change with builds against Debian/stretch (resolvconf 1.79),
Debian/buster (resolvconf 1.79) and Debian/bullseye (resolvconf 1.82).

Closes: https://github.com/grml/grml/issues/142

etc/grml/fai/config/scripts/GRMLBASE/98-clean-chroot

index 4a5e0cb..f293e91 100755 (executable)
@@ -183,29 +183,13 @@ if ! [ -r $target/etc/ld.so.nohwcap ] ; then
    touch $target/etc/ld.so.nohwcap
 fi
 
-# installation of resolvconf in chroot *with* /proc
-# is different from an installation without /proc,
-# so make sure it is OK in any case
 if ! [ -d $target/etc/resolvconf ] ; then
   echo "Warning: resolvconf not installed"
 else
   echo "Setting up resolvconf"
-  if [ ! -L $target/etc/resolvconf/run ] ; then # resolvconf without symlink?!
-    RESOLV_CONF=/etc/resolvconf/run
-    rm -rf   ${target}/${RESOLV_CONF}
-    mkdir -p ${target}/${RESOLV_CONF}
-
-    touch ${target}/${RESOLV_CONF}/enable-updates
-    mkdir ${target}/${RESOLV_CONF}/interface
-
-    cat > ${target}/${RESOLV_CONF}/resolv.conf << EOF
-# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
-#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
-EOF
-  fi
-  rm -f ${target}/etc/resolvconf/resolv.conf.d/original
-  rm -f ${target}/etc/resolv.conf
-  $ROOTCMD ln -s /etc/resolvconf/run/resolv.conf /etc/resolv.conf
+  rm -f "${target}"/etc/resolvconf/resolv.conf.d/original
+  rm -f "${target}"/etc/resolv.conf
+  ln -s /run/resolvconf/resolv.conf "${target}"/etc/resolv.conf
 fi
 
 # make sure we don't leak any mdadm configurations