From bdcebad9c07a7f90661865ef8001d07fda896922 Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 4 Jan 2021 16:09:50 -0500 Subject: [PATCH] 05core: add `|| exit 1` to `systemctl add-{requires,wants}` calls Because dracut directly sources `module-setup.sh` scripts and isn't compatible with `set -e`, we can't just turn it on in our modules. Instead, let's just manually add `|| exit 1` in all the calls to `systemctl add-{requires,wants}` so that we catch regressions like https://github.com/coreos/fedora-coreos-config/issues/799 at build time in the future. --- .../lib/dracut/modules.d/35coreos-ignition/module-setup.sh | 4 +++- .../usr/lib/dracut/modules.d/35coreos-live/module-setup.sh | 4 +++- .../usr/lib/dracut/modules.d/35coreos-network/module-setup.sh | 4 +++- .../lib/dracut/modules.d/40ignition-ostree/module-setup.sh | 4 +++- .../usr/lib/dracut/modules.d/50coreos-kernel/module-setup.sh | 4 +++- .../lib/dracut/modules.d/99emergency-timeout/module-setup.sh | 4 +++- 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-ignition/module-setup.sh b/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-ignition/module-setup.sh index 03565e21e6..da869947e0 100755 --- a/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-ignition/module-setup.sh +++ b/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-ignition/module-setup.sh @@ -11,7 +11,9 @@ install_ignition_unit() { local target="${1:-ignition-complete.target}"; shift local instantiated="${1:-$unit}"; shift inst_simple "$moddir/$unit" "$systemdsystemunitdir/$unit" - systemctl -q --root="$initdir" add-requires "$target" "$instantiated" + # note we `|| exit 1` here so we error out if e.g. the units are missing + # see https://github.com/coreos/fedora-coreos-config/issues/799 + systemctl -q --root="$initdir" add-requires "$target" "$instantiated" || exit 1 } install() { diff --git a/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-live/module-setup.sh b/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-live/module-setup.sh index 0cf81a2a20..6ae1b8e494 100644 --- a/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-live/module-setup.sh +++ b/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-live/module-setup.sh @@ -7,7 +7,9 @@ install_and_enable_unit() { unit="$1"; shift target="$1"; shift inst_simple "$moddir/$unit" "$systemdsystemunitdir/$unit" - systemctl -q --root="$initdir" add-requires "$target" "$unit" + # note we `|| exit 1` here so we error out if e.g. the units are missing + # see https://github.com/coreos/fedora-coreos-config/issues/799 + systemctl -q --root="$initdir" add-requires "$target" "$unit" || exit 1 } install() { diff --git a/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-network/module-setup.sh b/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-network/module-setup.sh index 12dec8b1b3..7c910b1b74 100644 --- a/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-network/module-setup.sh +++ b/overlay.d/05core/usr/lib/dracut/modules.d/35coreos-network/module-setup.sh @@ -2,7 +2,9 @@ install_and_enable_unit() { unit="$1"; shift target="$1"; shift inst_simple "$moddir/$unit" "$systemdsystemunitdir/$unit" - systemctl -q --root="$initdir" add-requires "$target" "$unit" + # note we `|| exit 1` here so we error out if e.g. the units are missing + # see https://github.com/coreos/fedora-coreos-config/issues/799 + systemctl -q --root="$initdir" add-requires "$target" "$unit" || exit 1 } install() { diff --git a/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh index ba10fed1c4..e88b75c25e 100755 --- a/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh +++ b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh @@ -10,7 +10,9 @@ install_ignition_unit() { local unit=$1; shift local target=${1:-complete} inst_simple "$moddir/$unit" "$systemdsystemunitdir/$unit" - systemctl -q --root="$initdir" add-requires "ignition-${target}.target" "$unit" + # note we `|| exit 1` here so we error out if e.g. the units are missing + # see https://github.com/coreos/fedora-coreos-config/issues/799 + systemctl -q --root="$initdir" add-requires "ignition-${target}.target" "$unit" || exit 1 } install() { diff --git a/overlay.d/05core/usr/lib/dracut/modules.d/50coreos-kernel/module-setup.sh b/overlay.d/05core/usr/lib/dracut/modules.d/50coreos-kernel/module-setup.sh index d5cd1b1e12..cac7b643f4 100644 --- a/overlay.d/05core/usr/lib/dracut/modules.d/50coreos-kernel/module-setup.sh +++ b/overlay.d/05core/usr/lib/dracut/modules.d/50coreos-kernel/module-setup.sh @@ -2,7 +2,9 @@ install_unit() { unit="$1"; shift target="$1"; shift inst_simple "$moddir/$unit" "$systemdsystemunitdir/$unit" - systemctl -q --root="$initdir" add-requires "$target" "$unit" + # note we `|| exit 1` here so we error out if e.g. the units are missing + # see https://github.com/coreos/fedora-coreos-config/issues/799 + systemctl -q --root="$initdir" add-requires "$target" "$unit" || exit 1 } install() { diff --git a/overlay.d/05core/usr/lib/dracut/modules.d/99emergency-timeout/module-setup.sh b/overlay.d/05core/usr/lib/dracut/modules.d/99emergency-timeout/module-setup.sh index ed4ccc57ba..63907da412 100755 --- a/overlay.d/05core/usr/lib/dracut/modules.d/99emergency-timeout/module-setup.sh +++ b/overlay.d/05core/usr/lib/dracut/modules.d/99emergency-timeout/module-setup.sh @@ -7,7 +7,9 @@ install_unit_wants() { local target="$1"; shift local instantiated="${1:-$unit}"; shift inst_simple "$moddir/$unit" "$systemdsystemunitdir/$unit" - systemctl -q --root="$initdir" add-wants "$target" "$instantiated" + # note we `|| exit 1` here so we error out if e.g. the units are missing + # see https://github.com/coreos/fedora-coreos-config/issues/799 + systemctl -q --root="$initdir" add-wants "$target" "$instantiated" || exit 1 } install() {