2002-08-23 03:21:14 +08:00
|
|
|
#!/bin/sh
|
|
|
|
#find-debuginfo.sh - automagically generate debug info and file list
|
|
|
|
#for inclusion in an rpm spec file.
|
|
|
|
|
2002-11-13 04:09:04 +08:00
|
|
|
if [ -z "$1" ] ; then BUILDDIR="."
|
|
|
|
else BUILDDIR=$1
|
|
|
|
fi
|
2002-10-19 00:01:59 +08:00
|
|
|
|
2002-11-13 04:09:04 +08:00
|
|
|
LISTFILE=$BUILDDIR/debugfiles.list
|
|
|
|
SOURCEFILE=$BUILDDIR/debugsources.list
|
|
|
|
|
2003-12-28 23:36:06 +08:00
|
|
|
debugdir="${RPM_BUILD_ROOT}/usr/lib/debug"
|
|
|
|
|
2002-10-19 00:01:59 +08:00
|
|
|
echo -n > $SOURCEFILE
|
2002-08-23 03:21:14 +08:00
|
|
|
|
|
|
|
# Strip ELF binaries
|
2003-12-28 23:36:06 +08:00
|
|
|
for f in `find $RPM_BUILD_ROOT -path "${debugdir}" -prune -o -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \
|
2003-03-15 05:43:16 +08:00
|
|
|
sed -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`
|
|
|
|
do
|
2003-12-28 23:36:06 +08:00
|
|
|
dn=$(dirname $f | sed -n -e "s#^$RPM_BUILD_ROOT##p")
|
|
|
|
bn=$(basename $f .debug).debug
|
|
|
|
|
|
|
|
debugdn="${debugdir}${dn}"
|
|
|
|
debugfn="${debugdn}/${bn}"
|
|
|
|
[ -f "${debugfn}" ] && continue
|
|
|
|
|
|
|
|
mkdir -p "${debugdn}"
|
2002-08-23 03:21:14 +08:00
|
|
|
echo extracting debug info from $f
|
2003-12-28 23:36:06 +08:00
|
|
|
/usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug -l "$SOURCEFILE" "$f"
|
|
|
|
if test -w "$f"; then
|
|
|
|
eu-strip -f "${debugfn}" "$f" || :
|
|
|
|
else
|
|
|
|
chmod u+w "$f"
|
|
|
|
eu-strip -f "${debugfn}" "$f" || :
|
|
|
|
chmod u-w "$f"
|
|
|
|
fi
|
2002-08-23 03:21:14 +08:00
|
|
|
done
|
|
|
|
|
2002-10-19 00:01:59 +08:00
|
|
|
mkdir -p ${RPM_BUILD_ROOT}/usr/src/debug
|
2002-11-13 04:09:04 +08:00
|
|
|
cat $SOURCEFILE | (cd $RPM_BUILD_DIR; LANG=C sort -z -u | cpio -pd0m ${RPM_BUILD_ROOT}/usr/src/debug)
|
2002-10-19 00:01:59 +08:00
|
|
|
# stupid cpio creates new directories in mode 0700, fixup
|
|
|
|
find ${RPM_BUILD_ROOT}/usr/src/debug -type d -print0 | xargs -0 chmod a+rx
|
|
|
|
|
2003-12-28 23:36:06 +08:00
|
|
|
find ${RPM_BUILD_ROOT}/usr/lib/debug -type f | sed -n -e "s#^$RPM_BUILD_ROOT##p" > $LISTFILE
|
|
|
|
find ${RPM_BUILD_ROOT}/usr/src/debug -mindepth 1 -maxdepth 1 | sed -n -e "s#^$RPM_BUILD_ROOT##p" >> $LISTFILE
|