Hi Coiby,
On Mon, 19 Jun 2023 15:31:27 +0800
Coiby Xu <coxu(a)redhat.com> wrote:
Related:
https://bugzilla.redhat.com/show_bug.cgi?id=2121912
Now there is a growing user base to use the kexec reboot and it's
desirable to make the kexec-tools package more modular.
This patch splits current kexec-tools into two sub-packages kexec-tools
and kdump-tools. Now kexec-tools merely provides /usr/sbin/kexec and the
remaining features go into kdump-tools.
all in all I'm in favor for this change. But for me simply splitting
kexec-tools in a separate sub package is just a half-baked solution.
When you look at the current kexec-tools you see that it consists of
four different projects. There's upstream kexec-tools, makedumpfile and
eppic as well as our Fedora tooling. The 'clean' solution would be to
move each project into it's own package. Ideally each having it's own
repo which would allow us to move to a source-git based work flow.
Anyway, just my 2 ct's.
"dnf repoquery --whatrequires kexec-tools" shows the
following packages
requires kexec-tools,
- abrt-addon-vmcore
- anaconda-install-env-deps
- cockpit-kdump
- dracut-kiwi-oem-dump
- realtime-setup
- retrace-server
For those packages that need kdump, the dependency needs to point to
the new kdump-tools package instead.
Cc: fedora-devel(a)lists.fedorahosted.org
Cc: Dusty Mabe <dustymabe(a)redhat.com>
Cc: crash-catcher-owner(a)lists.fedorahosted.org
CC: anaconda-devel(a)lists.fedoraproject.org
Cc: Martin Pitt <mpitt(a)redhat.com>
Cc: kiwi-images(a)googlegroups.com
Cc: Clark Williams <williams(a)redhat.com>
Cc: Matěj Grabovský <mgrabovs(a)redhat.com>
Suggested-by: Zbigniew Jędrzejewski-Szmek <zbyszek(a)in.waw.pl>
Signed-off-by: Coiby Xu <coxu(a)redhat.com>
---
kexec-tools.spec | 80 +++++++++++++++++++++++++++++-------------------
1 file changed, 48 insertions(+), 32 deletions(-)
diff --git a/kexec-tools.spec b/kexec-tools.spec
index 360b6c5d..6e78f6d3 100644
--- a/kexec-tools.spec
+++ b/kexec-tools.spec
@@ -5,9 +5,10 @@
Name: kexec-tools
Version: 2.0.26
-Release: 7%{?dist}
+Release: 8%{?dist}
License: GPLv2
Summary: The kexec/kdump userspace component
+Obsoletes: kexec-tools < 2.0.26-8
Source0:
http://kernel.org/pub/linux/utils/kernel/kexec/%{name}-%{version}.tar.xz
Source1: kdumpctl
@@ -56,33 +57,6 @@ Source109: dracut-early-kdump-module-setup.sh
Source200: dracut-fadump-init-fadump.sh
Source201: dracut-fadump-module-setup.sh
-%ifarch ppc64 ppc64le
-Requires(post): servicelog
-Recommends: keyutils
-%endif
-Requires(pre): coreutils sed zlib
-Requires: dracut >= 058
-Requires: dracut-network >= 058
-Requires: dracut-squash >= 058
-Requires: ethtool
-Requires: util-linux
-# Needed for UKI support
-Recommends: binutils
-Recommends: grubby
-Recommends: hostname
-BuildRequires: make
-BuildRequires: zlib-devel elfutils-devel glib2-devel bzip2-devel ncurses-devel bison
flex lzo-devel snappy-devel libzstd-devel
-BuildRequires: pkgconfig intltool gettext
-BuildRequires: systemd-rpm-macros
-BuildRequires: automake autoconf libtool
You cannot simply remove all build requirements from kexec-tools.
You'll need to keep at least make, autoconf, automake(?) and gcc (which
is already missing today).
-%ifarch %{ix86} x86_64 ppc64 ppc s390x ppc64le
-Obsoletes: diskdumputils netdump kexec-tools-eppic
-%endif
-
-%ifnarch s390x
-Requires: systemd-udev%{?_isa}
-%endif
-
#START INSERT
#
@@ -117,6 +91,42 @@ normal or a panic reboot. This package contains the /sbin/kexec
binary and ancillary utilities that together form the userspace
component of the kernel's kexec feature.
+%package -n kdump-tools
+Summary: Kernel crash dump collection tools
+Obsoletes: kexec-tools < 2.0.26-8
+%ifarch ppc64 ppc64le
+Requires(post): servicelog
+Recommends: keyutils
+%endif
+Requires(pre): coreutils sed zlib
+Requires: kexec-tools >= 2.0.26-8
+Requires: dracut >= 058
+Requires: dracut-network >= 058
+Requires: dracut-squash >= 058
+Requires: ethtool
+Requires: util-linux
+Requires: binutils
+Obsoletes: kexec-tools = 2.0.26-8
^
Is '=' correct here? Shouldn't it be '<' just like for
kexec-tools?
+Recommends: grubby
+Recommends: hostname
+BuildRequires: make
+BuildRequires: zlib-devel elfutils-devel glib2-devel bzip2-devel ncurses-devel bison
flex lzo-devel snappy-devel libzstd-devel
+BuildRequires: pkgconfig intltool gettext
+BuildRequires: systemd-rpm-macros
+BuildRequires: automake autoconf libtool
+%ifarch %{ix86} x86_64 ppc64 ppc s390x ppc64le
+Obsoletes: diskdumputils netdump kexec-tools-eppic
diskdumputils and netdump were last used with RHEL4 and according to
git kexec-tools-eppic was removed with Fedora 22. I think it is safe to
simply drop this line.
Thanks
Philipp
+%endif
+
+%ifnarch s390x
+Requires: systemd-udev%{?_isa}
+%endif
+%description -n kdump-tools
+kdump-tools is reponsible for collecting the crash kernel dump. It builds and
+load the kdump initramfs so when a kernel crashes, the system will boot the
+kdump kernel and initramfs to save the colletecd crash kernel dump to specified
+target.
+
%prep
%setup -q
@@ -261,7 +271,7 @@ chmod 755
$RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99zz-fadumpini
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/
-%post
+%post -n kdump-tools
# Initial installation
%systemd_post kdump.service
@@ -295,10 +305,10 @@ then
fi
-%postun
+%postun -n kdump-tools
%systemd_postun_with_restart kdump.service
-%preun
+%preun -n kdump-tools
%ifarch ppc64 ppc64le
servicelog_notify --remove --command=/usr/lib/kdump/kdump-migrate-action.sh
%endif
@@ -326,7 +336,7 @@ do
fi
done
-%posttrans
+%posttrans -n kdump-tools
# Try to reset kernel crashkernel value to new default value or set up
# crasherkernel value for new install
#
@@ -342,6 +352,9 @@ fi
%files
/usr/sbin/kexec
+%{_mandir}/man8/kexec.8.gz
+
+%files -n kdump-tools
%ifarch %{ix86} x86_64 ppc64 s390x ppc64le aarch64
/usr/sbin/makedumpfile
%endif
@@ -396,6 +409,9 @@ fi
%endif
%changelog
+* Wed Jun 14 2023 Coiby <coxu(a)redhat.com> - 2.0.26-8
+- split kexec-tools into kexec-tools and kdump-tools
+
* Wed Jun 14 2023 Coiby <coxu(a)redhat.com> - 2.0.26-7
- kdumpctl: Fix the matching of plus symbol by grep's EREs
- kdump-lib: Evaluate the memory consumption by smmu and mlx5 separately