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)
MARKER=1
PORTABLE_PREFIXES=app0 minimal minimal-app0
EOF
+if [ ! -L "$BUILDROOT/etc/os-release" ]; then
+ cp "$BUILDROOT/usr/lib/os-release" "$BUILDROOT/etc/os-release"
+fi
cp "$BUILDROOT/usr/lib/systemd/system/minimal-app0.service" "$BUILDROOT/usr/lib/systemd/system/minimal-app0-foo.service"
MARKER=2
PORTABLE_PREFIXES=app0 minimal minimal-app0
EOF
+if [ ! -L "$BUILDROOT/etc/os-release" ]; then
+ cp "$BUILDROOT/usr/lib/os-release" "$BUILDROOT/etc/os-release"
+fi
cp "$BUILDROOT/usr/lib/systemd/system/minimal-app0.service" "$BUILDROOT/usr/lib/systemd/system/minimal-app0-bar.service"
echo "VERSION=1.2.3"
} >"$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}"
}
# 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() {