use /run/ostree-booted to tell if scriptlet is running on OSTree system
Related: bz2048690
Upstream: Fedora
Conflict: None
commit f6bcd819fc2645f762946a802c15684e7627f379
Author: Coiby Xu <coxu@redhat.com>
Date: Fri Jul 15 15:11:44 2022 +0800
use /run/ostree-booted to tell if scriptlet is running on OSTree system
Resolves: bz2092012
According to the ostree team [1], the existence of /run/ostree-booted
> is the most stable way to signal/check that a system has been
> booted in ostree-style. It is also used by rpm-ostree at
> compose/install time in the sandboxed environment where scriptlets run,
> in order to signal that the package is being installed/composed into
> an ostree commit (i.e. not directly on a live system). See
> 8ddf5f40d9/src/libpriv/rpmostree-scripts.cxx (L350-L353)
> for reference.
By checking the existence of /run/ostree-booted, we could skip trying to
update kernel cmdline during OSTree compose time.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=2092012#c3
Reported-by: Luca BRUNO <lucab@redhat.com>
Suggested-by: Luca BRUNO <lucab@redhat.com>
Fixes: 0adb0f4 ("try to reset kernel crashkernel when kexec-tools updates the default crashkernel value")
Signed-off-by: Coiby Xu <coxu@redhat.com>
Reviewed-by: Philipp Rudo <prudo@redhat.com>
Acked-by: Timothée Ravier <siosm@fedoraproject.org>
Signed-off-by: Coiby Xu <coxu@redhat.com>
This commit is contained in:
parent
1d4de1f185
commit
a091409f10
|
@ -267,8 +267,12 @@ mkdir -p $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/
|
|||
mv $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/* $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/
|
||||
|
||||
%pre
|
||||
# save the old default crashkernel values to /tmp/ when upgrading the package
|
||||
if ! grep -qs "ostree" /proc/cmdline && [ $1 == 2 ] && grep -q get-default-crashkernel /usr/bin/kdumpctl; then
|
||||
# Save the old default crashkernel values to /tmp/ when upgrading the package
|
||||
# so kdumpctl later can tell if it should update the kernel crashkernel
|
||||
# parameter in the posttrans scriptlet. Note this feauture of auto-updating
|
||||
# the kernel crashkernel parameter currently doesn't support ostree, so skip it
|
||||
# for ostree.
|
||||
if [ ! -f /run/ostree-booted ] && [ $1 == 2 ] && grep -q get-default-crashkernel /usr/bin/kdumpctl; then
|
||||
kdumpctl get-default-crashkernel kdump > /tmp/old_default_crashkernel 2>/dev/null
|
||||
%ifarch ppc64 ppc64le
|
||||
kdumpctl get-default-crashkernel fadump > /tmp/old_default_crashkernel_fadump 2>/dev/null
|
||||
|
@ -343,9 +347,14 @@ do
|
|||
done
|
||||
|
||||
%posttrans
|
||||
# try to reset kernel crashkernel value to new default value when upgrading
|
||||
# the package
|
||||
if ! grep -qs "ostree" /proc/cmdline && [ $1 == 1 ]; then
|
||||
# Try to reset kernel crashkernel value to new default value based on the old
|
||||
# default value or set up crasherkernel value for osbuild
|
||||
#
|
||||
# Note
|
||||
# 1. Skip ostree systems as they are not supported.
|
||||
# 2. "[ $1 == 1 ]" in posttrans scriptlet means both install and upgrade. The
|
||||
# former case is used to set up crashkernel for osbuild
|
||||
if [ ! -f /run/ostree-booted ] && [ $1 == 1 ]; then
|
||||
kdumpctl reset-crashkernel-after-update
|
||||
rm /tmp/old_default_crashkernel 2>/dev/null
|
||||
%ifarch ppc64 ppc64le
|
||||
|
|
Loading…
Reference in New Issue