--- rpm-4.4.9.orig/macros.in 2008-01-31 19:20:08.798315963 +0200 +++ rpm-4.4.9/macros.in 2008-01-31 19:20:50.850567944 +0200 @@ -188,15 +188,21 @@ %debug_package \ %ifnarch noarch\ %global __debug_package 1\ -%package debug\ +%package debuginfo\ Summary: Debug information for package %{name}\ +Summary(pl.UTF-8): Informacje dla debuggera dla pakietu %{name}\ Group: Development/Debug\ +Requires: filesystem-debuginfo >= 3.0-16\ AutoReqProv: 0\ -%description debug\ +%description debuginfo\ This package provides debug information for package %{name}.\ Debug information is useful when developing applications that use this\ package or when debugging this package.\ -%files debug -f debugfiles.list\ +%description debuginfo -l pl.UTF-8\ +Ten pakiet dostarcza informacje dla debuggera dla pakietu %{name}.\ +Informacje te są przydatne przy rozwijaniu aplikacji używających tego\ +pakietu oraz przy odpluskwianiu samego pakietu.\ +%files debuginfo -f debugfiles.list\ %defattr(-,root,root)\ %endif\ %{nil} @@ -1046,7 +1052,7 @@ %{?buildroot:%{__rm} -rf '%{buildroot}'} %__spec_install_body %{___build_body} %__spec_install_post\ -%{?__debug_package:%{__debug_install_post}}\ +%{expand:%%define __sip_%{?_enable_debug_packages} 1}%{?__sip_1:%{?__debug_package:%{__debug_install_post}}}%{expand:%%undefine __sip_%{?_enable_debug_packages}}\ %{__arch_install_post}\ %{__os_install_post}\ %{nil} --- rpm-4.4.9.orig/platform.in 2008-01-31 19:20:08.676303626 +0200 +++ rpm-4.4.9/platform.in 2008-01-31 19:20:50.844567337 +0200 @@ -61,7 +61,7 @@ %{nil} %__spec_install_post\ - %{?__debug_package:%{__debug_install_post}}\ + %{expand:%%define __sip_%{?_enable_debug_packages} 1}%{?__sip_1:%{?__debug_package:%{__debug_install_post}}}%{expand:%%undefine __sip_%{?_enable_debug_packages}}\ %{__arch_install_post}\ %{__os_install_post}\ %{nil} --- rpm-4.5.debuginfo/scripts/find-debuginfo.sh 2007-08-31 04:07:02.000000000 +0300 +++ rpm-4.5/scripts/find-debuginfo.sh 2008-10-05 00:49:03.834523059 +0300 @@ -1,36 +1,54 @@ #!/bin/sh -#find-debuginfo.sh - automagically generate debug info and file list -#for inclusion in an rpm spec file. +# find-debuginfo.sh - automagically generate debug info and file list +# for inclusion in an rpm spec file. -if [ -z "$1" ] ; then BUILDDIR="." -else BUILDDIR=$1 +if [ -z "$1" ]; then + BUILDDIR="." +else + BUILDDIR=$1 fi LISTFILE=$BUILDDIR/debugfiles.list SOURCEFILE=$BUILDDIR/debugsources.list -debugdir="${RPM_BUILD_ROOT}/usr/lib/debug" - -echo -n > $SOURCEFILE +: > $SOURCEFILE +: > $LISTFILE strip_to_debug() { - eu-strip --remove-comment -f "$1" "$2" || : + objcopy --only-keep-debug --remove-section .comment "$2" "$1" + objcopy --add-gnu-debuglink="$1" "$2" } +if [ ! -d $RPM_BUILD_ROOT ]; then + # no buildroot, exit + exit 0 +fi + +filelist=$(find $RPM_BUILD_ROOT ! -path "$RPM_BUILD_ROOT/usr/lib/debug/*.debug" -type f '(' -perm -0100 -or -perm -0010 -or -perm -0001 ')') +if [ -z "$filelist" ]; then + # no files, exit + exit 0 +fi + +filetypes=$(echo "$filelist" | xargs -r -d'\n' file) +elflist=$(echo "$filetypes" | awk -F: '/ELF.*, not stripped/ {print $1}') +if [ -z "$elflist" ]; then + # no elf objects, exit + exit 0 +fi + # Strip ELF binaries -for f in `find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -exec file {} \; | \ - sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p'` -do - 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 +echo "$elflist" | while read f; do + dn=$(dirname "${f#$RPM_BUILD_ROOT}") + bn=$(basename "$f" .debug).debug + + debugdn="$RPM_BUILD_ROOT/usr/lib/debug$dn" + debugfn="$debugdn/$bn" + [ -f "$debugfn" ] && continue echo extracting debug info from $f - /usr/lib/rpm/4.5/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug -l "$SOURCEFILE" "$f" + /usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug -l "$SOURCEFILE" "$f" # A binary already copied into /usr/lib/debug doesn't get stripped, # just has its file names collected and adjusted. @@ -38,20 +56,21 @@ /usr/lib/debug/*) continue ;; esac - mkdir -p "${debugdn}" + mkdir -p "$debugdn" if test -w "$f"; then - strip_to_debug "${debugfn}" "$f" + strip_to_debug "$debugfn" "$f" else chmod u+w "$f" - strip_to_debug "${debugfn}" "$f" + strip_to_debug "$debugfn" "$f" chmod u-w "$f" fi done -mkdir -p ${RPM_BUILD_ROOT}/usr/src/debug -cat $SOURCEFILE | (cd $RPM_BUILD_DIR; LANG=C sort -z -u | cpio -pd0mL ${RPM_BUILD_ROOT}/usr/src/debug) +mkdir -p $RPM_BUILD_ROOT/usr/src/debug +cat $SOURCEFILE | (cd $RPM_BUILD_DIR; LANG=C sort -z -u | fgrep -zv '' | cpio --quiet -pd0mL $RPM_BUILD_ROOT/usr/src/debug) # stupid cpio creates new directories in mode 0700, fixup -find ${RPM_BUILD_ROOT}/usr/src/debug -type d -print0 | xargs -0 chmod a+rx +find $RPM_BUILD_ROOT/usr/src/debug -type d -print0 | xargs -0 chmod a+rx -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 +find $RPM_BUILD_ROOT/usr/lib/debug -type f | sed -n -e "s#^$RPM_BUILD_ROOT##p" > $LISTFILE +find $RPM_BUILD_ROOT/usr/lib/debug -mindepth 1 -type d | sed -n -e "s#^$RPM_BUILD_ROOT#%dir #p" >> $LISTFILE +find $RPM_BUILD_ROOT/usr/src/debug -mindepth 1 -maxdepth 1 | sed -n -e "s#^$RPM_BUILD_ROOT##p" >> $LISTFILE