#!/bin/sh # Copyright 2022 Helmut Grohne # SPDX-License-Identifier: MIT # # This is a mmdebstrap customize hook that enables systemd-resolved on various # Debian releases. set -eu TARGET=$1 LIBNSS_RESOLVE_VERSION=$(dpkg-query --root "$TARGET" -f '${Version}' -W libnss-resolve 2>/dev/null) || : link_resolv_conf() { if ! test -e "$TARGET$1" -o -h "$TARGET/etc/resolv.conf"; then # To avoid breaking network during mmdebstrap via a dead link, take a copy. install -D "$TARGET/etc/resolv.conf" "$TARGET$1" fi ln -fs "..$1" "$TARGET/etc/resolv.conf" } if dpkg --compare-versions "$LIBNSS_RESOLVE_VERSION" lt 251.3-2~exp1; then if test "${MMDEBSTRAP_MODE:-}" = chrootless; then systemctl --root "$TARGET" enable systemd-resolved.service else chroot "$TARGET" systemctl enable systemd-resolved.service fi if test -z "$LIBNSS_RESOLVE_VERSION" || dpkg --compare-versions "$LIBNSS_RESOLVE_VERSION" lt 236; then link_resolv_conf /run/systemd/resolve/resolv.conf else link_resolv_conf /run/systemd/resolve/stub-resolv.conf fi else if test -h "$TARGET/etc/resolv.conf" && ! test -e "$TARGET/etc/resolv.conf"; then resolvconftarget=$(readlink "$TARGET/etc/resolv.conf") if test "${resolvconftarget#../run/}" != "$resolvconftarget"; then # /etc/resolv.conf is a dead link pointing to ../run/* # mmdebstrap originally copied /etc/resolv.conf # This situation arises when installing systemd-resolved in bookworm # Fix network during mmdebstrap. install -D /etc/resolv.conf "$TARGET${resolvconftarget#..}" fi fi fi