From 7250a77e8d8bb24d7798ad0d853a84c8981739cc Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Tue, 19 Aug 2025 12:32:00 +0100 Subject: [PATCH] test: also edit /etc/os-release if it's not a symlink when patching /usr/lib/os-release (#38628) mkosi patches up /etc/os-release to add local IDs and fixup certain issues, so when tests patch /usr/lib/ on the fly, copy to the version in /etc/ too to avoid test failures when querying 6370s 10/98 systemd:integration-tests / TEST-07-PID1 FAIL 31.03s exit status 1 6370s 25/98 systemd:integration-tests / TEST-29-PORTABLE FAIL 12.76s exit status 1 6370s 33/98 systemd:integration-tests / TEST-43-PRIVATEUSER-UNPRIV FAIL 6.57s exit status 1 6370s 37/98 systemd:integration-tests / TEST-50-DISSECT FAIL 16.97s exit status 1 This is particularly an issue when running these tests on debian unstable, where mkosi has to fixup os-release to make it valid and avoid further breakages: https://github.com/systemd/mkosi/blob/main/mkosi/distributions/debian.py#L234 (cherry picked from commit b1cd38e893c5a0d353e2112acfc701ed29449c5e) --- mkosi/mkosi.images/minimal-0/mkosi.postinst | 3 +++ mkosi/mkosi.images/minimal-1/mkosi.postinst | 3 +++ test/units/TEST-50-DISSECT.sysext.sh | 10 ++++++++++ 3 files changed, 16 insertions(+) diff --git a/mkosi/mkosi.images/minimal-0/mkosi.postinst b/mkosi/mkosi.images/minimal-0/mkosi.postinst index a66cf68465a..8b009f5012f 100755 --- a/mkosi/mkosi.images/minimal-0/mkosi.postinst +++ b/mkosi/mkosi.images/minimal-0/mkosi.postinst @@ -8,4 +8,7 @@ cat >>"$BUILDROOT/usr/lib/os-release" <>"$BUILDROOT/usr/lib/os-release" <"$root/usr/lib/os-release" + if [[ -e $root/etc/os-release ]] && [[ ! -L $root/etc/os-release ]]; then + mv "$root/etc/os-release" "$root/etc/os-release.orig" + cp "$root/usr/lib/os-release" "$root/etc/os-release" + fi + prepend_trap "cleanup_os_release ${root@Q}" } @@ -103,6 +108,11 @@ cleanup_os_release() { # shellcheck disable=SC2317 # It is not unreachable, used in a trap couple lines above. mv "$root/usr/lib/os-release.orig" "$root/usr/lib/os-release" fi + # shellcheck disable=SC2317 # It is not unreachable, used in a trap couple lines above. + if [[ -e $root/etc/os-release.orig ]]; then + # shellcheck disable=SC2317 # It is not unreachable, used in a trap couple lines above. + mv "$root/etc/os-release.orig" "$root/etc/os-release" + fi } prepare_extension_image() { -- 2.47.3