Hi Coiby,
On Mon, 19 Jun 2023 15:31:27 +0800 Coiby Xu coxu@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@lists.fedorahosted.org Cc: Dusty Mabe dustymabe@redhat.com Cc: crash-catcher-owner@lists.fedorahosted.org CC: anaconda-devel@lists.fedoraproject.org Cc: Martin Pitt mpitt@redhat.com Cc: kiwi-images@googlegroups.com Cc: Clark Williams williams@redhat.com Cc: Matěj Grabovský mgrabovs@redhat.com Suggested-by: Zbigniew Jędrzejewski-Szmek zbyszek@in.waw.pl Signed-off-by: Coiby Xu coxu@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/%%7Bname%7D-%%7Bversion%7D.ta... 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@redhat.com - 2.0.26-8 +- split kexec-tools into kexec-tools and kdump-tools
- Wed Jun 14 2023 Coiby coxu@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