File kdump.spec of Package kdump

#
# spec file for package kdump (Version 0.7.3)
#
# Copyright (c) 2008 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/
#

# norootforbuild

Url:            http://freehg.org/u/bwalle/kdump/

Name:           kdump
License:        GPL v2 or later
Version:        0.7.3
Release:        1
Requires:       curl openssh makedumpfile
Summary:        Script for kdump
Group:          System/Kernel
BuildRequires:  libesmtp-devel
BuildRequires:  gcc-c++ libcurl-devel libelf0-devel zlib-devel
BuildRequires:  asciidoc cmake libxslt
%if %suse_version > 1100
BuildRequires:  libssh2-devel
%endif
PreReq:         %insserv_prereq %fillup_prereq mkinitrd
Source:         %{name}-%{version}.tar.bz2
Source2:        %{name}-%{version}-rpmlintrc
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
# rename "kdump-helpers" (10.3) -> "kdump" (11.0/SP2)
Provides:       kdump-helpers = 0.2.4
Obsoletes:      kdump-helpers <= 0.2.4
# update should detect the split-off from kexec-tools
Provides:       kexec-tools:/etc/init.d/kdump
Requires:       kexec-tools
PreReq:         coreutils sed

%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.



Authors:
--------
    Bernhard Walle <bwalle@suse.de>

%prep
%setup

%build
export CFLAGS="%optflags"
export CXXFLAGS="%optflags"
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} ..
make
cd -

%install
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd -
# 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

%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

%preun
echo "Stopping kdump ..."
%stop_on_removal boot.kdump

%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

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
%doc ChangeLog COPYING README NEWS
%{_sbindir}/kdumptool
%{_sbindir}/mkdumprd
%{_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
%config %{_sysconfdir}/udev/rules.d/70-kdump.rules

%changelog
* Mon Nov 24 2008 bwalle@suse.de
- Update to 0.7.3
  o Document kdump problems on Xen.
  o Don't display the full mkinitrd output.
  o Warn about zero-size vmcore.
  o Default to the auto-detected kernel when mkdumprd is called
  without arguments instead of defaulting to the running kernel.
  o Parse VMCOREINFO_XEN when present with 'read_vmcoreinfo'.
  o Pass the kernel release of the crashed kernel via command line
  in case of Xen.
  o Improve error handling when no crash kernel release is
  available when saving the dump.
* Fri Nov 21 2008 bwalle@suse.de
- Update to 0.7.2
  o Don't use the FQDN but only the hostname to avoid DNS lookups
  and errors on wrongly configured systems (bnc#442830).
  o Fix empty KDUMP_SAVEDIR line when replacing the symbolic link
  with the absolute path.
  o Don't set sysctl kernel.unknown_nmi_panic=1 by default
  (bnc#388736).
  o Mention kernel.panic_on_unrecovered_nmi in the kdump(7)
  manpage.
* Thu Nov 20 2008 bwalle@suse.de
- Update to 0.7.1
  o Document 256M limit on ppc64 for large machines in kdump(7).
* Wed Nov 19 2008 bwalle@suse.de
- Only regenerate the initrd once after update. But make sure that
  it always gets regenerated.
- Update to 0.7.0
  o Add read_ikconfig command.
  o Add find_kernel command in kdumptool, replacing the find code
  in the init script. Needed to prefer the default kernel even
  if the maxcpus kernel (or a realtime kernel) is currently
  booted (bnc#444658).
  o Implement KDUMP_VERBOSE = 16 to debug kdump find_kernel.
  o Make boot.kdump dependent on boot.localnet to have a correct
  hostname (bnc#442830).
  o Fix stripping of the crashkernel command line again
  (bnc#444687).
  o Don't include test cases in the release tarball. They are
  very incomplete and contain too huge test data.
  o Honor TMPDIR and set that to disk space instead of the ramdisk
  when saving the dump in the initrd.
* Thu Nov 13 2008 bwalle@suse.de
- Update to 0.6.7
  o Strip the whole crashkernel option when loading the kdump
  kernel, not only parts of them, also when the extended
  crashkernel syntax has been used.
* Wed Nov 12 2008 bwalle@suse.de
- Update to 0.6.6
  o Fix wrong path when modifying the /etc/sysconfig/kdump file
  when creating the kdump initrd.
  o Prepend a space before MAKEDUMPFILE_OPTIONS so that there's
  always a space between command and the first argument.
  o Fix finding of the kernel image (/boot/vmlinuz) with rootdir.
* Tue Nov 11 2008 bwalle@suse.de
- Update to 0.6.5
  o Fix copying of debug info when --root is specified and the
  debug file resides in GLOBALDEBUGDIR/EXECDIR/DEBUGFILE
  (bnc#443828).
* Tue Nov 11 2008 bwalle@suse.de
- Fix string in %%preun (kexec -> kdump).
- Regenerate the kdump initrd on next startup after the kdump
  package has been updated.
* Sun Nov 02 2008 bwalle@suse.de
- Update to 0.6.4
  o change default location for KDUMP_SAVEDIR to "/var/crash"
  o actually check <version>-kdump before <version>-<flavour> when
  looking for a suitable kdump kernel
  o boot.kdump: Use the full kernel release (obtained with
  /sbin/get_kernel_version) to build the initrd name also when
  symlinks are used (bnc#438218)
  o Assume a default terminal size of 80x25 (for printing the
  horizontal line)
  o Check the exit status of kdumptool
  o Implement support for resolving symbolic links inside a root
  directory (--root=...) when saving the dump. (bnc#431492)
  o Don't print a (red) info message that email failed if both
  KDUMP_SMTP_SERVER and KDUMP_NOTIFICATION_TO are empty.
  o If KDUMP_SAVEDIR points to a local file, resolve symlinks when
  creating the initrd because in theory the file system that
  contains parts of the symlinks is not mounted in initrd.
  o Fix KDUMP_NETCONFIG=auto by calling mkinitrd with right
  parameters.
  o Create core dumps in the initrd when kdumptool crashes.
  o Fix std::logic_error in Email::send() that caused kdumptool to
  terminate unexpectedly.
  o Set the hostname of the SMTP session based on the --fqdn
  parameter.
  o Don't report a failure in the email when there is no one.
- Drop following patches (folded in 0.6.4):
  o kdump-2860e7a5d481633aca345b07db28d95fdb04d649
  Add documentation for "Extended crashkernel commandline"
  o kdump-56814cf5d03dff1d6233de996e79e1dd54cf5144
  boot.kdump: Use the full kernel release for initrd name
  o kdump-8580f201f2f759eb78c646a6b98727b4508101d3
  Reflect 'boot.kdump' in kdump(7)
  o kdump-8712f642965d13539148e385aefb805e3464b62d
  Actually check <version>-kdump before <version>-<flavour> when
  looking for a suitable kdump kernel
  o kdump-f4cf2ef3cc3e6414d7d9386de0ebf7d633cbfed5
  Change default location of KDUMP_SAVEDIR to "/var/crash"
* Tue Oct 28 2008 schwab@suse.de
- Fix %%post failure.
* Sun Oct 26 2008 bwalle@suse.de
- Use the full kernel release (obtained with get_kernel_version)
  to build the initrd name also when symlinks are used
  (bnc#438218).
* Wed Oct 22 2008 bwalle@suse.de
- Actually check <version>-kdump before <version>-<flavour> when
  looking for a suitable kdump kernel.
* Fri Oct 17 2008 bwalle@suse.de
- /etc/sysconfig/kdump should be only readable as root since it
  may contain passwords (bnc#436042).
* Wed Oct 15 2008 bwalle@suse.de
- Reflect 'boot.kdump' in kdump(7).
- Add rpmlintrc: The init script name is correct.
* Mon Oct 13 2008 bwalle@suse.de
- Add documentation for "Extended crashkernel commandline"
  (bnc#430276).
* Wed Sep 03 2008 crrodriguez@suse.de
- use RPM_OPT_FLAGS everywhere [FATE #300498]
* Sat Aug 23 2008 bwalle@suse.de
- /var/crash is now part of the filesystem RPM (removing %%dir)
* Mon Aug 18 2008 bwalle@suse.de
- also create /var/log/dump link when the /var/log/dump directory
  did not exist
- delete /var/log/dump link in %%postun
* Mon Aug 18 2008 bwalle@suse.de
- change default for KDUMP_SAVEDIR to "/var/crash"
* Fri Aug 15 2008 bwalle@suse.de
- update to 0.6.3
  o make the kdump init script a boot script ("boot.kdump")
  o fix init script comments
  o add meta information to manpages
* Tue Aug 12 2008 bwalle@suse.de
- update to 0.6.2
  o correct init script: remove remote FS dependency and also add
  "Should-Stop"
* Sat Aug 09 2008 bwalle@suse.de
- update to 0.6.1
  o add kdump(7) manual page
* Thu Aug 07 2008 bwalle@suse.de
- update to 0.6.0
  o add vmcore(5) manual page
  o implement email support
- use PreReq for mkinitrd instead of BuildRequires
* Mon Aug 04 2008 bwalle@suse.de
- Don't report ELF32 as "invalid ELF class"
* Fri Aug 01 2008 bwalle@suse.de
- update to 0.5.5
  o make dependency to libssh2 optional
* Thu Jul 31 2008 bwalle@suse.de
- update to 0.5.4
  o always create empty ${tmp_mnt}/etc/fstab.kdump
  o change execution state to 'boot'
  o use UUID for fstab.kdump
  o open a shell if something fails and KDUMP_CONTINUE_ON_ERROR is
  true
  o don't include JFS to initrd
  o don't add -s '' parameter to mkinitrd call if the boot splash
  script is not available
  o handle more programs in $KDUMP_REQUIRED_PROGRAMS correct
  o move original /etc/fstab back
- add %%config to udev rule
* Mon Jul 28 2008 bwalle@suse.de
- update to 0.5.3
  o don't exit with error code when the dump directory does not yet
  exist in the 'delete_dumps' command
  o fix syntax error in init/boot-kdump.sh
* Mon Jul 28 2008 bwalle@suse.de
- call mkinitrd_setup in %%post and %%postun
* Mon Jul 28 2008 bwalle@suse.de
- update to 0.5.2
  o copy required programs (KDUMP_REQUIRED_PROGRAMS) in initrd
  o mount dump partition and boot partition in initrd
  o don't exit with error code when the dump directory does not yet
  exist in the 'delete_dumps' command
* Thu Jul 24 2008 bwalle@suse.de
- update to 0.5.1
  o add 'print_target' sub command
  o implement SSH public/private key authentication
* Thu Jul 24 2008 bwalle@suse.de
- update to 0.5.0 (FATE #303043)
  o initrd-based dumping
  o basically rewrite
* Fri Jun 13 2008 bwalle@suse.de
- update to 0.3.4
  o try also $(uname -i) to find the makedumpfile.config in
  /usr/src/linux-${version}-obj/${arch}/${flavour}
  o filter "mem" kernel parameter before loading the kdump kernel
  (bnc#393324)
- delete kdump-clarify-README: merged in new version
- delete kdump-default-nmi: merged in new version
- delete kdump-reload-memory-hotplug: merged in new version
- delete kdump-fix-kernel-detection: merged in new version
* Sun Jun 01 2008 bwalle@suse.de
- set KDUMP_KERNELVER="" on i386 instead of KDUMP_KERNELVER="kdump"
  (with "kdump", the kdump kernel cannot be loaded without manually
  editing the configuration file (bnc#396221)
* Mon May 26 2008 bwalle@suse.de
- fix load of kdump kernel when KDUMP_KERNELVER="kdump" on ppc64
  (bnc#394216)
* Tue May 20 2008 bwalle@suse.de
- fix typo when checking the result of kdump_kernel_loaded
* Mon May 19 2008 bwalle@suse.de
- implement "try-restart" command and use that implementation also
  for "condrestart"
- add udev rules to reload kdump configuration on memory or CPU
  hotplug (bnc#389658)
- set panic_on_unrecovered_nmi only when it exists
* Tue May 13 2008 bwalle@suse.de
- set panic_on_unrecovered_nmi as default (bnc#388736)
* Fri Apr 18 2008 bwalle@suse.de
- clarified README that memory sizes are only recommended values
  (bnc#380577)
* Wed Feb 20 2008 bwalle@suse.de
- use "-o NumberOfPasswordPrompts=0 -o CheckHostIP=no -o
  StrictHostKeyChecking=no" when calling ssh because the user may
  not be able to confirm the questions (bnc#355973)
- require "$network" in init script so than when runlevel 3 is set
  in /etc/sysconfig/kdump, network is available to the kdump
  scripts (bnc#293171)
- update version to 0.2.3
* Sun Jan 13 2008 bwalle@suse.de
- don't add initrd blink stuff for openSUSE <= 10.2 because
  there was no modular initrd script
* Tue Jan 08 2008 bwalle@suse.de
- log the result of kexec call to avoid the impression that loading
  kdump kernel succeeded even if kexec terminated non-zero (350289)
- don't set kernel.panic_on_oops to 1 if kexec failed (350289)
- updated version to 0.3.2
- require kexec-tools
* Wed Dec 12 2007 bwalle@suse.de
- check the disk space afterwards if makedumpfile is used since
  it's not possible to know the dump image size in advance
- updated version to 0.3.1
* Mon Nov 12 2007 tiwai@suse.de
- fix PreReq for insserv and fillup
* Tue Nov 06 2007 bwalle@suse.de
- add "coreutils" and "sed" to PreReq to make rpmlint happy
* Thu Oct 11 2007 bwalle@suse.de
- rename kdump-helpers to kdump
- added GDB helpers, init script and sysconfig file
  (formerly all in the kexec-tools package)
- added README (formerly README.SUSE in the kexec-tools package)
- fix compile warning in src/read-debuglink.c
- log save message to syslog if $KDUMP_VERBOSE & 1 > 0 (#331118)
- improve algorithm for finding the kdump kernel
- updated version to 0.3.0
* Mon Sep 03 2007 bwalle@suse.de
- don't use locking for NFS (#307178)
* Wed Aug 29 2007 bwalle@suse.de
- added Recommends: makedumpfile
* Mon Aug 13 2007 bwalle@suse.de
- run bootloader after modifying initrd
* Fri Jul 27 2007 bwalle@suse.de
- update to 0.2.4 (#302257)
  o implement KDUMP_KEEP_OLD_DUMPS = -2 for deleting all dumps
  (except the latest, which is saved afterwards
* Mon Jul 02 2007 tiwai@suse.de
- changed from libelf to libelf0-devel in buildrequires.
* Mon Jun 18 2007 bwalle@suse.de
- update to 0.2.3
  o fixed read-debuglink
  o changed NFS URL, no separation between share and directory
  o added kdump-led_blink to blink LEDs (for broken VGA console)
  o added mkinitrd script (for blink) and /sbin/mkinitrd to
  %%postin and %%postun
* Mon Jun 11 2007 bwalle@suse.de
- update to 0.2.2
  o add read-debuglink
* Sun Jun 10 2007 bwalle@suse.de
- update to 0.2.1
  o add manpages for all programs
* Mon May 28 2007 bwalle@suse.de
- first version
openSUSE Build Service is sponsored by