summaryrefslogtreecommitdiffstats
path: root/debian/systemd-resolved.postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/systemd-resolved.postinst')
-rw-r--r--debian/systemd-resolved.postinst36
1 files changed, 36 insertions, 0 deletions
diff --git a/debian/systemd-resolved.postinst b/debian/systemd-resolved.postinst
new file mode 100644
index 0000000..07518ba
--- /dev/null
+++ b/debian/systemd-resolved.postinst
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+set -e
+
+_adopt_conffile() {
+ conffile=$1
+ pkg=$2
+
+ [ -f "${conffile}.dpkg-bak" ] || return 0
+
+ md5sum="$(md5sum "${conffile}" | sed -e 's/ .*//')"
+ old_md5sum="$(dpkg-query -W -f='${Conffiles}' "$pkg" | \
+ sed -n -e "\' ${conffile} ' { s/ obsolete$//; s/.* //; p }")"
+ # On new installs, if the policy file was preserved on systemd upgrade
+ # by dpkg-maintscript helper, copy it back if the new file has not been modified yet
+ if [ "$md5sum" = "$old_md5sum" ]; then
+ mv "${conffile}.dpkg-bak" "${conffile}"
+ fi
+}
+
+
+if [ "$1" = configure ] && [ -z "$2" ]; then
+ _adopt_conffile "${DPKG_ROOT}/etc/systemd/resolved.conf" systemd-resolved
+fi
+
+if [ "$1" = configure ] && dpkg --compare-versions "$2" lt 251.4-2; then
+ if [ "$(readlink "${DPKG_ROOT}/etc/resolv.conf")" != "../run/systemd/resolve/stub-resolv.conf" ] && [ "$(readlink "${DPKG_ROOT}/etc/resolv.conf")" != "/run/systemd/resolve/stub-resolv.conf" ]; then
+ echo "Converting /etc/resolv.conf to a symlink to /run/systemd/resolve/stub-resolv.conf..."
+ if [ -f "${DPKG_ROOT}/etc/resolv.conf" ]; then
+ mv "${DPKG_ROOT}/etc/resolv.conf" "${DPKG_ROOT}/etc/.resolv.conf.systemd-resolved.bak" || echo "Cannot take a backup of /etc/resolv.conf."
+ fi
+ ln -sf ../run/systemd/resolve/stub-resolv.conf "${DPKG_ROOT}/etc/resolv.conf" || echo "Cannot install symlink from /etc/resolv.conf to ../run/systemd/resolve/stub-resolv.conf"
+ fi
+fi
+
+#DEBHELPER#