# # spec file for package kdump # # Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define dracutlibdir %{_prefix}/lib/dracut %{!?_udevdir: %global _udevdir %(pkg-config --variable=udevdir udev)} %if "%{_udevdir}" == "" %if 0%{?suse_version} >= 1230 %global _udevdir /usr/lib/udev %else %global _udevdir /lib/udev %endif %endif %define _udevrulesdir %{_udevdir}/rules.d Url: http://freehg.org/u/bwalle/kdump/ Name: kdump Version: 0.8.10 Release: 0 Requires: curl Requires: makedumpfile Requires: openssh Summary: Script for kdump License: GPL-2.0+ Group: System/Kernel BuildRequires: asciidoc BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: libcurl-devel BuildRequires: libelf-devel BuildRequires: libesmtp-devel BuildRequires: libopenssl-devel BuildRequires: libssh2-devel BuildRequires: libxslt BuildRequires: pkg-config BuildRequires: udev BuildRequires: zlib-devel #!BuildIgnore: fop %if %suse_version > 1220 BuildRequires: systemd %endif PreReq: %insserv_prereq %fillup_prereq mkinitrd Source: %{name}-%{version}.tar.bz2 Source2: %{name}-%{version}-rpmlintrc Source3: kdump.service Patch1: %{name}-%{version}-dracut-xz-opt.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build # rename "kdump-helpers" (10.3) -> "kdump" (11.0/SP2) Provides: kdump-helpers = %{version} Obsoletes: kdump-helpers < %{version} # update should detect the split-off from kexec-tools Provides: kexec-tools:/etc/init.d/kdump Requires: kexec-tools %if %suse_version > 1220 %systemd_requires %endif Recommends: nfs-client cifs-utils PreReq: coreutils sed ExcludeArch: s390 ppc %description kdump is a package that includes several scripts for kdump, including the init script /etc/init.d/kdump and the configuration file for kdump. The kernel package and this package are all that are required for a crash dump to occur. However, if you wish to debug the crash dump yourself you will need several debugging packages installed for each kernel flavor and release you wish to debug. For example, if you are debugging kernel-default, you will need: - kernel-default-debuginfo - kernel-default-devel - kernel-default-devel-debuginfo These packages are not needed to create the dump and can be installed after a crash dump has occured. Authors: -------- Bernhard Walle %prep %setup %patch1 -p1 %build export CFLAGS="%optflags" export CXXFLAGS="%optflags" mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} .. make cd - %check cd build make test %install cd build make DESTDIR=$RPM_BUILD_ROOT install cd - # move udev rules mkdir -p $RPM_BUILD_ROOT/%{_udevrulesdir} mv $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/* $RPM_BUILD_ROOT/%{_udevrulesdir}/ # remove executable bit from non-binaries chmod -x $RPM_BUILD_ROOT/lib/kdump/setup-kdump.functions # symlink for init script mkdir -p $RPM_BUILD_ROOT/sbin ln -s /etc/init.d/boot.kdump $RPM_BUILD_ROOT/sbin/rckdump # empty directory mkdir $RPM_BUILD_ROOT/var/crash %if %suse_version > 1220 mkdir -p $RPM_BUILD_ROOT%{_unitdir} install -m644 %{S:3} $RPM_BUILD_ROOT%{_unitdir} %endif %if %suse_version > 1220 %pre %service_add_pre kdump.service %endif %post # change only permission if the file exists before /etc/sysconfig/kdump # has been created from /var/adm/fillup-templates/sysconfig.kdump change_permission=0 if [ ! -f /etc/sysconfig/kdump ] ; then change_permission=1 fi %{fillup_and_insserv -n kdump boot.kdump} if (( $change_permission )) ; then chmod 0600 /etc/sysconfig/kdump fi /sbin/mkinitrd_setup # if /var/log/dump is empty, make it a symlink to /var/crash if test -d /var/log/dump && rmdir /var/log/dump &>/dev/null || ! test -d /var/log/dump ; then ln -snf /var/crash /var/log/dump fi %if %suse_version > 1220 %service_add_post kdump.service %endif %preun echo "Stopping kdump ..." %stop_on_removal boot.kdump %if %suse_version > 1220 %service_del_preun kdump.service %endif %postun # force regeneration of kdumprd touch /etc/sysconfig/kdump /sbin/mkinitrd_setup # delete symbolic link rm /var/log/dump &>/dev/null || true %restart_on_update boot.kdump %insserv_cleanup %if %suse_version > 1220 %service_del_postun kdump.service %endif %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %doc ChangeLog COPYING README NEWS %{_sbindir}/kdumptool %{_sbindir}/mkdumprd %{_sbindir}/kdump-bootloader.pl %{_mandir}/man5/kdump.5.gz %{_mandir}/man7/kdump.7.gz %{_mandir}/man8/kdumptool.8.gz %{_mandir}/man8/mkdumprd.8.gz /sbin/rckdump %{_sysconfdir}/init.d/boot.kdump /var/adm/fillup-templates/sysconfig.kdump /lib/mkinitrd/scripts/*-kdump.sh /lib/mkinitrd/scripts/setup-kdumpfs.sh /lib/mkinitrd/scripts/setup-mkdumprd.sh %dir %{dracutlibdir} %dir %{dracutlibdir}/modules.d %{dracutlibdir}/modules.d/99kdump/ %dir /lib/kdump /lib/kdump/* %{_udevrulesdir}/70-kdump.rules %if %suse_version > 1220 %{_unitdir}/kdump.service %endif %changelog