----- Original Message -----
I've been using crash 6.x for some time on Centos6, a binary RPM
installed from a yum repo.
Yesterday I realized I didn't have the crash extensions installed. And a yum
search found no listing for crash-extensions in my current repos.
So I downloaded a 7.0.8 source RPM from
crash-utility.com, built and::
installed it:
$ rpmbuild -vv --rebuild crash-7.0.8-0.src.rpm
$ cd ~/rpmbuild/RPMS/x86
$ sudo yum localinstall --nogpgcheck crash-7.0.8-0.rpm
But when I tested it on a previously working set of vmlinux/vmcore files,
I got the following error:
crash: compressed kdump: uncompress failed: no lzo compression support
I eventually ended up extracting the source rpm and doing:
$ cd ~/dev/src/crash-7.0.8
$ make lzo
and this copy of crash works.
Right -- that's all correct.
However, I really wanted to make a new RPM out of this, but
everything I tried
always ended up reverting to no LZO. Looking at the configure.c source, I see
that 'make release' has a different method for building the Makefile which does
not seem to allow for LZO. Is it possible to build an lzo-enabled rpm using
crash configure and make? Or with rpmbuild? If so, how?
You can modify the crash.spec file by adding
< BuildRequires: ncurses-devel zlib-devel bison
BuildRequires: ncurses-devel zlib-devel lzo-devel bison snappy-devel
< make RPMPKG="%{version}"
make RPMPKG="%{version}" lzo snappy
And then create a new src.rpm with rpmbuild.
Alternatively, you could add this patch to the crash.spec file, which
is taken from the Fedora and RHEL7 distros:
--- crash-7.0.2/diskdump.c.orig
+++ crash-7.0.2/diskdump.c
@@ -23,6 +23,8 @@
* GNU General Public License for more details.
*/
+#define LZO
+#define SNAPPY
#include "defs.h"
#include "diskdump.h"
--- crash-7.0.2/Makefile.orig
+++ crash-7.0.2/Makefile
@@ -223,7 +223,7 @@ all: make_configure
gdb_merge: force
@if [ ! -f ${GDB}/README ]; then \
make --no-print-directory gdb_unzip; fi
- @echo "${LDFLAGS} -lz -ldl -rdynamic" > ${GDB}/gdb/mergelibs
+ @echo "${LDFLAGS} -lz -llzo2 -lsnappy -ldl -rdynamic" >
${GDB}/gdb/mergelibs
@echo "../../${PROGRAM} ../../${PROGRAM}lib.a" > ${GDB}/gdb/mergeobj
@rm -f ${PROGRAM}
@if [ ! -f ${GDB}/config.status ]; then \
Dave