Re: [PATCH v2] Split kexec-tools into kexec-tools, kdump-utils and makedumpfile

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Coiby,

wow, the spec files now look a lot better. There are a few nits but
mostly just typos (or me not understanding things). Thanks for taking
care of this!

On Tue, 19 Sep 2023 12:15:49 +0800
Coiby Xu <coxu@xxxxxxxxxx> wrote:

> Related: https://bugzilla.redhat.com/show_bug.cgi?id=2121912
> 
> This patch splits current kexec-tools into three packages kexec-tools,
> kdump-utils and makedumpfile.
>  - the new kexec-tools is the same to the upstream kexec-tools which
>    provides the kexec and vmcore-dmesg binaries
>  - kdump-utils is responsible for building the kdump initrd and loading
>    it via the kexec binary
>  - makedumpfile is responsible for making a small dumpfile of vmcore
> 
> It's desirable to make this package modular because 1) now there is a
> growing user base to use the kexec reboot 2) packaging makedumpfile and
> kexec-tools alone will reduce the maintenance work.
> 
> When an old version of kexec-tools gets replaced by kdump-utils,
> "%system_post" will be executed in the post scriptlet and the
   ^^^^^^^^^^^^                                         ^^^
s/%system_post/%systemd_post/ 
s/and the purpose is/which has the purpose/ ?

> purpose is to "systemctl preset kdump" for freshly installed
> kexec-tools. But in the case of kdump-utils replacing kexec-tools, it
> is not needed so skip this case.
> 
> "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-utils package instead.
> 
> Note some small improvements are also made in this change,
> - stop mkdir'ing kcp as kcp.c has been gone long time ago
> - use autosetup to automatically apply patches
> - add the GPL2 LICENSE https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
>   for kdump-utils (the source code of makedumpfile and kexec-tools already
>   contain the license)
> - remove unneeded Obsoletes
> - use consistent build flags %make and %make_install (the benefits
>   include enabling parallel building automatically and avoiding installing
>   package file one by one)
> 
> Cc: fedora-devel@xxxxxxxxxxxxxxxxxxxxxx
> Cc: Dusty Mabe <dustymabe@xxxxxxxxxx>
> Cc: crash-catcher-owner@xxxxxxxxxxxxxxxxxxxxxx
> CC: anaconda-devel@xxxxxxxxxxxxxxxxxxxxxxx
> Cc: Martin Pitt <mpitt@xxxxxxxxxx>
> Cc: kiwi-images@xxxxxxxxxxxxxxxx
> Cc: Clark Williams <williams@xxxxxxxxxx>
> Cc: Matěj Grabovský <mgrabovs@xxxxxxxxxx>
> Suggested-by: Zbigniew Jędrzejewski-Szmek <zbyszek@xxxxxxxxx>
> Suggested-by: Philipp Rudo <prudo@xxxxxxxxxx>
> Signed-off-by: Coiby Xu <coxu@xxxxxxxxxx>
> ---
> v2 
>  - Philipp
> 		- remove unneeded triggerpostun scriptlet that deletes the kdump initrd when a kernel package is removed
>  	- remove triggerin scriptlet for inexistent kernel-kdump
>  	- fix makedumpfile url error
> 		- explain why %{_localstatedir}/lib/rpm-state/kexec-tools.no-pereset is needed 
> 		- remove the makedumpfile patches generated by packit
>  - kdump-utils uses its own version number
>  - fix the solution for not "systemctl preset kdump" when kdump-utils replacing the kexec-tools
>  - Add a message in kexec-tools.spec to let users know that kexec-tools has been splitted into three packages.
>  - use %make_build instead of make (https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro)
>  - use updated license from https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt (the previous one from upstream kexec-tools is outdated)
>  - drop "Provides kexec-tools" and "Obsoltes kexec-tools" in kdump-utils.spec to avoid the bug that kdump-utils gets installed without kexec-tools
>  - drop uneeded archdef definition
>  - add "BuildRequires: gcc" for kexec-tools which is required https://docs.fedoraproject.org/en-US/packaging-guidelines/C_and_C++/
> 
> v1
>  - Zbigniew
> 	 - Use Provides correctly
> 	 - use one-per-line for BuildRequires, Requires and etc.
> 		- don't change kdump.service state unexpectedly
> 	- further split out makedumpfile [Philipp]
> 	- s/kdump-tools/kdump-utils to have a unique name [Dave]
> ---
>  COPYING           | 339 ++++++++++++++++++++++++++++++++++++++++
>  kdump-utils.spec  | 291 +++++++++++++++++++++++++++++++++++
>  kexec-tools.spec  | 384 +++-------------------------------------------
>  makedumpfile.spec |  63 ++++++++
>  4 files changed, 714 insertions(+), 363 deletions(-)
>  create mode 100644 COPYING
>  create mode 100644 kdump-utils.spec
>  create mode 100644 makedumpfile.spec
> 
> diff --git a/COPYING b/COPYING
> new file mode 100644
> index 00000000..d159169d
> --- /dev/null
> +++ b/COPYING
> @@ -0,0 +1,339 @@
[...]
> diff --git a/kdump-utils.spec b/kdump-utils.spec
> new file mode 100644
> index 00000000..a549acc0
> --- /dev/null
> +++ b/kdump-utils.spec
> @@ -0,0 +1,291 @@
> +Name: kdump-utils
> +Version: 1.0.42
> +Release: 1%{?dist}
> +Summary: Kernel crash dump collection tools
> +
> +License: GPL-2.0-only
> +%ifarch ppc64 ppc64le
> +Requires(post): servicelog
> +Recommends: keyutils
> +%endif
> +Requires(pre): coreutils
> +Requires(pre): sed
> +Requires: kexec-tools >= 2.0.27-1

The kexec-tools version in this patch is 2.0.27-2. I guess that's what
should be used here instead.

> +# fedora-review needs to install the package to do the check
> +Requires: (makedumpfile or kexec-tools == 2.0.27-1)

Same like above.

In addition, I believe it's just me not understanding how fedora-review
works but haven't you already required kexec-tools 2.0.27-2 above? Or
should it really be -1 here, i.e. the last not split version? But in
that case the content of kdump-utils and kexec-tools are in conflict.
I'm a little bit confused how this line needs to be read...

> +Requires: dracut >= 058
> +Requires: dracut-network >= 058
> +Requires: dracut-squash >= 058
> +Requires: ethtool
> +Requires: util-linux
> +Requires: binutils
> +Recommends: grubby
> +Recommends: hostname
> +BuildRequires: systemd-rpm-macros
> +
> +%ifnarch s390x
> +Requires: systemd-udev%{?_isa}
> +%endif
> +
> +Source1: kdumpctl
> +Source2: COPYING
> +Source3: gen-kdump-sysconfig.sh
> +Source4: gen-kdump-conf.sh
> +Source7: mkdumprd
> +Source10: kexec-kdump-howto.txt
> +Source11: fadump-howto.txt
> +Source12: mkdumprd.8
> +Source13: 98-kexec.rules
> +Source14: 98-kexec.rules.ppc64
> +Source15: kdump.conf.5
> +Source16: kdump.service
> +Source20: kdump-lib.sh
> +Source21: kdump-in-cluster-environment.txt
> +Source22: kdump-dep-generator.sh
> +Source23: kdump-lib-initramfs.sh
> +Source25: kdumpctl.8
> +Source26: live-image-kdump-howto.txt
> +Source27: early-kdump-howto.txt
> +Source28: kdump-udev-throttler
> +Source30: 60-kdump.install
> +Source31: kdump-logger.sh
> +Source32: mkfadumprd
> +Source33: 92-crashkernel.install
> +Source34: crashkernel-howto.txt
> +Source35: kdump-migrate-action.sh
> +Source36: kdump-restart.sh
> +Source37: 60-fadump.install
> +
> +#######################################
> +# These are sources for mkdumpramfs
> +# Which is currently in development
> +#######################################

This comment seems to be out-dated. I believe we can just drop it.

> +Source100: dracut-kdump.sh
> +Source101: dracut-module-setup.sh
> +Source102: dracut-monitor_dd_progress
> +Source104: dracut-kdump-emergency.service
> +Source106: dracut-kdump-capture.service
> +Source107: dracut-kdump-emergency.target
> +Source108: dracut-early-kdump.sh
> +Source109: dracut-early-kdump-module-setup.sh
> +
> +Source200: dracut-fadump-init-fadump.sh
> +Source201: dracut-fadump-module-setup.sh
> +
> +%description
> +kdump-utils is reponsible for collecting the crash kernel dump. It builds and
> +loads 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.
> +
> +%build
> +# setup the license and docs
> +# don't copy the files if they exist otherwise building the packages locally
> +# using tools like fedpkg will fail
> +if [ ! -e COPYING ]]; then

Not sure if [...] or [[...]] is the preferred style for spec files. But
[...]] definitely looks odd (and failed for me) ;-)

> + cp %{SOURCE2} .
> + cp %{SOURCE10} .
> + cp %{SOURCE11} .
> + cp %{SOURCE21} .
> + cp %{SOURCE26} .
> + cp %{SOURCE27} .
> + cp %{SOURCE34} .
> +fi
> +
> +# Generate sysconfig file
> +%{SOURCE3} %{_target_cpu} > kdump.sysconfig
> +%{SOURCE4} %{_target_cpu} > kdump.conf
> +
> +%install
> +mkdir -p -m755 $RPM_BUILD_ROOT/usr/sbin
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_sysconfdir}/kdump
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_sysconfdir}/kdump/pre.d
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_sysconfdir}/kdump/post.d
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_localstatedir}/crash
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_mandir}/man8/
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_mandir}/man5/
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_docdir}
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_datadir}/kdump
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_udevrulesdir}
> +mkdir -p $RPM_BUILD_ROOT%{_unitdir}
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_bindir}
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_libdir}
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_prefix}/lib/kdump
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_sharedstatedir}/kdump
> +install -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/kdumpctl
> +
> +install -m 755 %{SOURCE7} $RPM_BUILD_ROOT/usr/sbin/mkdumprd
> +install -m 644 kdump.conf $RPM_BUILD_ROOT%{_sysconfdir}/kdump.conf
> +install -m 644 kdump.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/kdump
> +install -m 644 %{SOURCE12} $RPM_BUILD_ROOT%{_mandir}/man8/mkdumprd.8
> +install -m 644 %{SOURCE25} $RPM_BUILD_ROOT%{_mandir}/man8/kdumpctl.8
> +install -m 755 %{SOURCE20} $RPM_BUILD_ROOT%{_prefix}/lib/kdump/kdump-lib.sh
> +install -m 755 %{SOURCE23} $RPM_BUILD_ROOT%{_prefix}/lib/kdump/kdump-lib-initramfs.sh
> +install -m 755 %{SOURCE31} $RPM_BUILD_ROOT%{_prefix}/lib/kdump/kdump-logger.sh
> +%ifarch ppc64 ppc64le
> +install -m 755 %{SOURCE32} $RPM_BUILD_ROOT/usr/sbin/mkfadumprd
> +install -m 755 %{SOURCE35} $RPM_BUILD_ROOT%{_prefix}/lib/kdump/kdump-migrate-action.sh
> +install -m 755 %{SOURCE36} $RPM_BUILD_ROOT%{_prefix}/lib/kdump/kdump-restart.sh
> +%endif
> +%ifnarch s390x
> +install -m 755 %{SOURCE28} $RPM_BUILD_ROOT%{_udevrulesdir}/../kdump-udev-throttler
> +%endif
> +%ifnarch s390x ppc64 ppc64le
> +# For s390x the ELF header is created in the kdump kernel and therefore kexec
> +# udev rules are not required
> +install -m 644 %{SOURCE13} $RPM_BUILD_ROOT%{_udevrulesdir}/98-kexec.rules
> +%endif
> +%ifarch ppc64 ppc64le
> +install -m 644 %{SOURCE14} $RPM_BUILD_ROOT%{_udevrulesdir}/98-kexec.rules
> +install -m 755 -D %{SOURCE37} $RPM_BUILD_ROOT%{_prefix}/lib/kernel/install.d/60-fadump.install
> +%endif
> +install -m 644 %{SOURCE15} $RPM_BUILD_ROOT%{_mandir}/man5/kdump.conf.5
> +install -m 644 %{SOURCE16} $RPM_BUILD_ROOT%{_unitdir}/kdump.service
> +install -m 755 -D %{SOURCE22} $RPM_BUILD_ROOT%{_prefix}/lib/systemd/system-generators/kdump-dep-generator.sh
> +install -m 755 -D %{SOURCE30} $RPM_BUILD_ROOT%{_prefix}/lib/kernel/install.d/60-kdump.install
> +install -m 755 -D %{SOURCE33} $RPM_BUILD_ROOT%{_prefix}/lib/kernel/install.d/92-crashkernel.install

After seeing how clean the other two spec files look I'm really
considering if we should add a Makefile. Just so we can use
%make_install...

Anyway I've noticed that there are two occurrences with a hard coded
/usr/sbin which probably should be converted to %{?sbindir} (same for
%files).

In addition you could get rid off some calls to mkdir by adding -D to
the install call. And you could get rid off a few calls to install by
grouping them together using the -t option. But that's pure nit picking
from my side similar to cleaning up the Sources on v1.

> +%define remove_dracut_prefix() %(echo -n %1|sed 's/.*dracut-//g')
> +%define remove_dracut_early_kdump_prefix() %(echo -n %1|sed 's/.*dracut-early-kdump-//g')
> +%define remove_dracut_fadump_prefix() %(echo -n %1|sed 's/.*dracut-fadump-//g')
> +
> +# deal with dracut modules
> +mkdir -p -m755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase
> +cp %{SOURCE100} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE100}}
> +cp %{SOURCE101} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE101}}
> +cp %{SOURCE102} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE102}}
> +cp %{SOURCE104} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE104}}
> +cp %{SOURCE106} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE106}}
> +cp %{SOURCE107} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE107}}
> +chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE100}}
> +chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE101}}
> +mkdir -p -m755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump
> +cp %{SOURCE108} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_prefix %{SOURCE108}}
> +cp %{SOURCE109} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_early_kdump_prefix %{SOURCE109}}
> +chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_prefix %{SOURCE108}}
> +chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99earlykdump/%{remove_dracut_early_kdump_prefix %{SOURCE109}}
> +%ifarch ppc64 ppc64le
> +mkdir -p -m755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99zz-fadumpinit
> +cp %{SOURCE200} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99zz-fadumpinit/%{remove_dracut_fadump_prefix %{SOURCE200}}
> +cp %{SOURCE201} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99zz-fadumpinit/%{remove_dracut_fadump_prefix %{SOURCE201}}
> +chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99zz-fadumpinit/%{remove_dracut_fadump_prefix %{SOURCE200}}
> +chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99zz-fadumpinit/%{remove_dracut_fadump_prefix %{SOURCE201}}
> +%endif
> +
> +
> +%define dracutlibdir %{_prefix}/lib/dracut
> +#and move the custom dracut modules to the dracut directory
> +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/
> +
> +# don't try to systemctl preset the kdump service for old kexec-tools
> +#
> +#when the old kexec-tools gets removed, this scriptlet will be triggerd to
> +# create a file. So later the posttrans script will know there is no need to
> +# systemctl preset the kdump service.
> +# This solution can be dropped when no users use old version of kexec-tools.

I would prefer if you could add a specific version to the comment.
Otherwise we will forget when no users of the old kexec-tools are
left. Personally I would use this, assuming that the split will get
into F39:

This workaround can be dropped once F40 is released and there is no
more supported update path from the old version of kexec-tools. 

> +%define kexec_tools_no_preset %{_localstatedir}/lib/rpm-state/kexec-tools.no-preset
> +%triggerin -- kexec-tools < 2.0.27-2
> +touch %{kexec_tools_no_preset}
> +
> +%post
> +touch /etc/kdump.conf
> +
> +%ifarch ppc64 ppc64le
> +servicelog_notify --remove --command=/usr/lib/kdump/kdump-migrate-action.sh 2>/dev/null
> +servicelog_notify --add --command=/usr/lib/kdump/kdump-migrate-action.sh --match='refcode="#MIGRATE" and serviceable=0' --type=EVENT --method=pairs_stdin >/dev/null
> +%endif
> +
> +# This portion of the script is temporary.  Its only here
> +# to fix up broken boxes that require special settings
> +# in /etc/sysconfig/kdump.  It will be removed when
> +# These systems are fixed.
> +
> +if [ -d /proc/bus/mckinley ]
> +then
> +	# This is for HP zx1 machines
> +	# They require machvec=dig on the kernel command line
> +	sed -e's/\(^KDUMP_COMMANDLINE_APPEND.*\)\("$\)/\1 machvec=dig"/' \
> +	/etc/sysconfig/kdump > /etc/sysconfig/kdump.new
> +	mv /etc/sysconfig/kdump.new /etc/sysconfig/kdump
> +elif [ -d /proc/sgi_sn ]
> +then
> +	# This is for SGI SN boxes
> +	# They require the --noio option to kexec
> +	# since they don't support legacy io
> +	sed -e's/\(^KEXEC_ARGS.*\)\("$\)/\1 --noio"/' \
> +	/etc/sysconfig/kdump > /etc/sysconfig/kdump.new
> +	mv /etc/sysconfig/kdump.new /etc/sysconfig/kdump
> +fi
> +
> +
> +%postun
> +%systemd_postun_with_restart kdump.service
> +
> +%preun
> +%ifarch ppc64 ppc64le
> +servicelog_notify --remove --command=/usr/lib/kdump/kdump-migrate-action.sh >/dev/null
> +%endif
> +%systemd_preun kdump.service
> +
> +%posttrans
> +# don't try to systemctl preset the kdump service for old kexec-tools
> +if [[ -f %{kexec_tools_no_preset} ]]; then
> +  # this if branch can be removed when no users use the old kexec-tools

Same like above. I would prefer if you could add a specific version.

> +  rm %{kexec_tools_no_preset}
> +else
> +  # Initial installation
> +  %systemd_post kdump.service
> +fi
> +# Try to reset kernel crashkernel value to new default value or set up
> +# crasherkernel value for new install
> +#
> +# Note
> +#  1. Skip ostree systems as they are not supported.
> +#  2. For Fedora 36 and RHEL9, "[ $1 == 1 ]" in posttrans scriptlet means both install and upgrade;
> +#     For Fedora > 36, "[ $1 == 1 ]" only means install and "[ $1 == 2 ]" means upgrade
> +if [ ! -f /run/ostree-booted ] && [ $1 == 1 -o $1 == 2 ]; then
> +  kdumpctl _reset-crashkernel-after-update
> +  :
> +fi
> +
> +%files
> +%ifarch ppc64 ppc64le
> +/usr/sbin/mkfadumprd
> +%{_prefix}/lib/kernel/install.d/60-fadump.install
> +%endif
> +/usr/sbin/mkdumprd
> +%{_bindir}/*
> +%{_datadir}/kdump

Some more nit picking. Why do we provide an empty %{_datadir}/kdump?
Can't we just drop it? It's not a problem with your patch. Just
something I've noticed during review...

> +%{_prefix}/lib/kdump
> +%config(noreplace,missingok) %{_sysconfdir}/sysconfig/kdump
> +%config(noreplace,missingok) %verify(not mtime) %{_sysconfdir}/kdump.conf
> +%ifnarch s390x
> +%config %{_udevrulesdir}
> +%{_udevrulesdir}/../kdump-udev-throttler
> +%endif
> +%{dracutlibdir}/modules.d/*
> +%dir %{_localstatedir}/crash
> +%dir %{_sysconfdir}/kdump
> +%dir %{_sysconfdir}/kdump/pre.d
> +%dir %{_sysconfdir}/kdump/post.d
> +%dir %{_sharedstatedir}/kdump
> +%{_mandir}/man8/kdumpctl.8.gz
> +%{_mandir}/man8/mkdumprd.8.gz
> +%{_mandir}/man5/*
> +%{_unitdir}/kdump.service
> +%{_prefix}/lib/systemd/system-generators/kdump-dep-generator.sh
> +%{_prefix}/lib/kernel/install.d/60-kdump.install
> +%{_prefix}/lib/kernel/install.d/92-crashkernel.install
> +%license COPYING
> +%doc kexec-kdump-howto.txt
> +%doc early-kdump-howto.txt
> +%doc fadump-howto.txt
> +%doc kdump-in-cluster-environment.txt
> +%doc live-image-kdump-howto.txt
> +%doc crashkernel-howto.txt
> +
> +%changelog
> +* Thu Aug 24 2023 Coiby <coxu@xxxxxxxxxx> - 2.0.26-9
> +- split from kexec-tools
> diff --git a/kexec-tools.spec b/kexec-tools.spec
> index ff8b4963..99168db6 100644
> --- a/kexec-tools.spec
> +++ b/kexec-tools.spec

[...]

> @@ -142,260 +32,28 @@ autoreconf

[...]

>  %post
> -# Initial installation
> -%systemd_post kdump.service
> -
> -touch /etc/kdump.conf
> -
> -%ifarch ppc64 ppc64le
> -servicelog_notify --remove --command=/usr/lib/kdump/kdump-migrate-action.sh 2>/dev/null
> -servicelog_notify --add --command=/usr/lib/kdump/kdump-migrate-action.sh --match='refcode="#MIGRATE" and serviceable=0' --type=EVENT --method=pairs_stdin >/dev/null
> -%endif
> -
> -# This portion of the script is temporary.  Its only here
> -# to fix up broken boxes that require special settings
> -# in /etc/sysconfig/kdump.  It will be removed when
> -# These systems are fixed.
> -
> -if [ -d /proc/bus/mckinley ]
> -then
> -	# This is for HP zx1 machines
> -	# They require machvec=dig on the kernel command line
> -	sed -e's/\(^KDUMP_COMMANDLINE_APPEND.*\)\("$\)/\1 machvec=dig"/' \
> -	/etc/sysconfig/kdump > /etc/sysconfig/kdump.new
> -	mv /etc/sysconfig/kdump.new /etc/sysconfig/kdump
> -elif [ -d /proc/sgi_sn ]
> -then
> -	# This is for SGI SN boxes
> -	# They require the --noio option to kexec
> -	# since they don't support legacy io
> -	sed -e's/\(^KEXEC_ARGS.*\)\("$\)/\1 --noio"/' \
> -	/etc/sysconfig/kdump > /etc/sysconfig/kdump.new
> -	mv /etc/sysconfig/kdump.new /etc/sysconfig/kdump
> -fi
> -
> -
> -%postun
> -%systemd_postun_with_restart kdump.service
> -
> -%preun
> -%ifarch ppc64 ppc64le
> -servicelog_notify --remove --command=/usr/lib/kdump/kdump-migrate-action.sh >/dev/null
> -%endif
> -%systemd_preun kdump.service
> -
> -%triggerin -- kernel-kdump
> -touch %{_sysconfdir}/kdump.conf
> -
> -
> -%triggerpostun -- kernel kernel-xen kernel-debug kernel-PAE kernel-kdump
> -# List out the initrds here, strip out version nubmers
> -# and search for corresponding kernel installs, if a kernel
> -# is not found, remove the corresponding kdump initrd
> -
> -
> -IMGDIR=/boot
> -for i in `ls $IMGDIR/initramfs*kdump.img 2>/dev/null`
> -do
> -	KDVER=`echo $i | sed -e's/^.*initramfs-//' -e's/kdump.*$//'`
> -	if [ ! -e $IMGDIR/vmlinuz-$KDVER ]
> -	then
> -		# We have found an initrd with no corresponding kernel
> -		# so we should be able to remove it
> -		rm -f $i
> -	fi
> -done
> -
> -%posttrans
> -# Try to reset kernel crashkernel value to new default value or set up
> -# crasherkernel value for new install
> -#
> -# Note
> -#  1. Skip ostree systems as they are not supported.
> -#  2. For Fedora 36 and RHEL9, "[ $1 == 1 ]" in posttrans scriptlet means both install and upgrade;
> -#     For Fedora > 36, "[ $1 == 1 ]" only means install and "[ $1 == 2 ]" means upgrade
> -if [ ! -f /run/ostree-booted ] && [ $1 == 1 -o $1 == 2 ]; then
> -  kdumpctl _reset-crashkernel-after-update
> -  :
> -fi
> -
> +echo "kexec-tools has been splitted into three packages (kump-utils, kexec-tools and makedumpfile). Please install kdump-utils if you need the kdump feature."

s/has been splitted/was split/
s/kump-utils/kdump-utils/

>  %files
>  /usr/sbin/kexec
> -%ifarch %{ix86} x86_64 ppc64 s390x ppc64le aarch64
> -/usr/sbin/makedumpfile
> -%endif
> -%ifarch ppc64 ppc64le
> -/usr/sbin/mkfadumprd
> -%{_prefix}/lib/kernel/install.d/60-fadump.install
> -%endif
> -/usr/sbin/mkdumprd
> -/usr/sbin/vmcore-dmesg
> -%{_bindir}/*
> -%{_datadir}/kdump
> -%{_prefix}/lib/kdump
> -%ifarch %{ix86} x86_64 ppc64 s390x ppc64le aarch64
> -%{_sysconfdir}/makedumpfile.conf.sample
> -%endif
> -%config(noreplace,missingok) %{_sysconfdir}/sysconfig/kdump
> -%config(noreplace,missingok) %verify(not mtime) %{_sysconfdir}/kdump.conf
> -%ifnarch s390x
> -%config %{_udevrulesdir}
> -%{_udevrulesdir}/../kdump-udev-throttler
> -%endif
> -%{dracutlibdir}/modules.d/*
> -%dir %{_localstatedir}/crash
> -%dir %{_sysconfdir}/kdump
> -%dir %{_sysconfdir}/kdump/pre.d
> -%dir %{_sysconfdir}/kdump/post.d
> -%dir %{_sharedstatedir}/kdump
> -%{_mandir}/man8/kdumpctl.8.gz
>  %{_mandir}/man8/kexec.8.gz
> -%ifarch %{ix86} x86_64 ppc64 s390x ppc64le aarch64
> -%{_mandir}/man8/makedumpfile.8.gz
> -%endif
> -%{_mandir}/man8/mkdumprd.8.gz
> +/usr/sbin/vmcore-dmesg
>  %{_mandir}/man8/vmcore-dmesg.8.gz
> -%{_mandir}/man5/*
> -%{_unitdir}/kdump.service
> -%{_prefix}/lib/systemd/system-generators/kdump-dep-generator.sh
> -%{_prefix}/lib/kernel/install.d/60-kdump.install
> -%{_prefix}/lib/kernel/install.d/92-crashkernel.install
>  %doc News
>  %license COPYING
>  %doc TODO
> -%doc kexec-kdump-howto.txt
> -%doc early-kdump-howto.txt
> -%doc fadump-howto.txt
> -%doc kdump-in-cluster-environment.txt
> -%doc live-image-kdump-howto.txt
> -%doc crashkernel-howto.txt
> -%ifarch %{ix86} x86_64 ppc64 s390x ppc64le aarch64
> -%{_libdir}/eppic_makedumpfile.so
> -/usr/share/makedumpfile/
> -%endif
>  
>  %changelog
> +* Thu Aug 24 2023 Coiby <coxu@xxxxxxxxxx> - 2.0.26-9
> +- split kexec-tools into kexec-tools and kdump-utils
> +
>  * Thu Jul 20 2023 Fedora Release Engineering <releng@xxxxxxxxxxxxxxxxx> - 2.0.26-8
>  - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
>  
> diff --git a/makedumpfile.spec b/makedumpfile.spec
> new file mode 100644
> index 00000000..20e7edfd
> --- /dev/null
> +++ b/makedumpfile.spec
> @@ -0,0 +1,63 @@
> +%global eppic_ver e8844d3793471163ae4a56d8f95897be9e5bd554
> +%global eppic_shortver %(c=%{eppic_ver}; echo ${c:0:7})
> +Name: makedumpfile
> +Version: 1.7.3
> +Summary: makedumpfile package
> +Release: 1%{?dist}
> +
> +License: GPL-2.0-only
> +URL: https://github.com/makedumpfile/makedumpfile
> +Source0: https://github.com/makedumpfile/makedumpfile/archive/%{version}/%{name}-%{version}.tar.gz
> +Source1: https://github.com/lucchouina/eppic/archive/%{eppic_ver}/eppic-%{eppic_shortver}.tar.gz
> +
> +Requires(pre): zlib
> +BuildRequires: make
> +BuildRequires: gcc
> +BuildRequires: zlib-devel
> +BuildRequires: elfutils-devel
> +BuildRequires: glib2-devel
> +BuildRequires: bzip2-devel
> +BuildRequires: ncurses-devel
> +BuildRequires: bison
> +BuildRequires: flex
> +BuildRequires: lzo-devel
> +BuildRequires: snappy-devel
> +BuildRequires: libzstd-devel
> +BuildRequires: pkgconfig
> +BuildRequires: intltool
> +BuildRequires: gettext
> +
> +%description
> +make a small dumpfile of kdump

The description is pretty short. How about

makedumpfile is a tool to compress and filter out unneeded data from
kernel dumps to reduce its file size. It is typically used with the
kdump mechanism.

> +
> +%prep
> +

Unnecessary new line. At least everywhere else you don't have a new
line when starting a new scriptlet.

Thanks!
Philipp

> +%autosetup
> +tar -z -x -v -f %{SOURCE1}
> +
> +%build
> +%make_build LINKTYPE=dynamic USELZO=on USESNAPPY=on USEZSTD=on
> +%make_build -C eppic-%{eppic_ver}/libeppic
> +%make_build LDFLAGS="$LDFLAGS -Ieppic-%{eppic_ver}/libeppic -Leppic-%{eppic_ver}/libeppic" eppic_makedumpfile.so
> +
> +%install
> +%make_install
> +mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}
> +install -m 644 makedumpfile.conf $RPM_BUILD_ROOT/%{_sysconfdir}/makedumpfile.conf.sample
> +rm $RPM_BUILD_ROOT/%{_sbindir}/makedumpfile-R.pl
> +
> +mkdir -p -m755 $RPM_BUILD_ROOT%{_libdir}
> +install -m 755 eppic_makedumpfile.so $RPM_BUILD_ROOT/%{_libdir}/eppic_makedumpfile.so
> +
> +%files
> +/usr/sbin/makedumpfile
> +/usr/share/man/man5/makedumpfile.conf.5.gz
> +/usr/share/man/man8/makedumpfile.8.gz
> +%{_sysconfdir}/makedumpfile.conf.sample
> +%{_libdir}/eppic_makedumpfile.so
> +/usr/share/makedumpfile/
> +%license COPYING
> +
> +%changelog
> +* Thu Aug 24 2023 Coiby <coxu@xxxxxxxxxx> - 1.7.3-1
> +- split from kexec-tools
_______________________________________________
Anaconda-devel mailing list -- anaconda-devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to anaconda-devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/anaconda-devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux