From 007fcda01c751238cea38043023336411f8a0fea5ce06060d54773f7b34eac8e Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Wed, 9 Apr 2008 16:18:03 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rpm?expand=0&rev=38 --- debugsource-package.diff | 107 +++++++++++++++++++++++++++++++++++++++ finddebuginfo.diff | 24 +++++---- rpm-python.spec | 2 +- rpm-suse_macros | 2 - rpm.changes | 5 ++ rpm.spec | 26 ++++++---- 6 files changed, 143 insertions(+), 23 deletions(-) create mode 100644 debugsource-package.diff diff --git a/debugsource-package.diff b/debugsource-package.diff new file mode 100644 index 0000000..c7839f4 --- /dev/null +++ b/debugsource-package.diff @@ -0,0 +1,107 @@ +Subject: Split sources for debugging into separate -debugsource package + +At the moment the -debuginfo package also include the sources where used to +build the binary. The patches moves them into a separate package -debugsource. + +--- + macros.in | 12 ++++++++++++ + scripts/find-debuginfo.sh | 39 ++++++++++++++++++++++++--------------- + 2 files changed, 36 insertions(+), 15 deletions(-) + +Index: b/macros.in +=================================================================== +--- a/macros.in ++++ b/macros.in +@@ -179,6 +179,18 @@ Debug information is useful when develop + package or when debugging this package.\ + %files debuginfo -f debugfiles.list\ + %defattr(-,root,root)\ ++\ ++%package debugsource\ ++Summary: Debug sources for package %{name}\ ++Group: Development/Debug\ ++AutoReqProv: 0\ ++Requires: %{name}-debuginfo = %{version}-%{release}\ ++%description debugsource\ ++This package provides debug sources for package %{name}.\ ++Debug sources are useful when developing applications that use this\ ++package or when debugging this package.\ ++%files debugsource -f debugsources.list\ ++%defattr(-,root,root)\ + %{nil} + + %_defaultdocdir %{_usr}/doc/packages +Index: b/scripts/find-debuginfo.sh +=================================================================== +--- a/scripts/find-debuginfo.sh ++++ b/scripts/find-debuginfo.sh +@@ -7,11 +7,13 @@ else BUILDDIR=$1 + fi + + LISTFILE=$BUILDDIR/debugfiles.list +-SOURCEFILE=$BUILDDIR/debugsources.list ++LISTSOURCE=$BUILDDIR/debugsources.list + + debugdir="${RPM_BUILD_ROOT}/usr/lib/debug" ++debugsrcdir="${RPM_BUILD_ROOT}/usr/src/debug" + +-echo -n > $SOURCEFILE ++[ -d "$TMPDIR" ] || TMPDIR="/tmp" ++SOURCES_TMP=`mktemp $TMPDIR/rpmXXXXXX` + + # Strip ELF binaries + for f in `find $RPM_BUILD_ROOT ! -path "${debugdir}/*.debug" -type f \( -perm +111 -or -name "*.so*" -or -name "*.ko" \) ` +@@ -36,7 +38,8 @@ do + echo extracting debug info from $f + mode=$(stat -c %a $f) + chmod +w $f +- /usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d /usr/src/debug -l "$SOURCEFILE" "$f" ++ /usr/lib/rpm/debugedit -b "$RPM_BUILD_DIR" -d $(echo ${debugsrcdir} | \ ++ sed -n -e "s#^$RPM_BUILD_ROOT##p") -l "$SOURCES_TMP" "$f" + + # A binary already copied into /usr/lib/debug doesn't get stripped, + # just has its file names collected and adjusted. +@@ -75,12 +78,25 @@ done + # mv "$f" "${debugdn}" + #done + ++# fixup paths, just in case ?! ++find ${debugdir} -type d -print0 | xargs -0 -r chmod 0755 ++find ${debugdir} -type f -print0 | xargs -0 -r chmod 0644 ++ ++find ${debugdir} -mindepth 1 -maxdepth 1 | \ ++ sed -n -e "s#^$RPM_BUILD_ROOT##p" > $LISTFILE + +-mkdir -p ${RPM_BUILD_ROOT}/usr/src/debug +-(cd $RPM_BUILD_DIR; LANG=C sort -z -u | cpio -pd0m ${RPM_BUILD_ROOT}/usr/src/debug) < $SOURCEFILE ++ ++if [ -s "$SOURCES_TMP" ] ; then ++ # strip GCC built-in code from sources list ++ (cd $RPM_BUILD_DIR && LANG=C sort -z -u | grep -z -v "" | \ ++ cpio -pd0m ${debugsrcdir} ) < $SOURCES_TMP ++ # stupid cpio creates new directories in mode 0700, fixup ++ find ${debugsrcdir} -type d -print0 | xargs -0 -r chmod 0755 ++ find ${debugsrcdir} -type f -print0 | xargs -0 -r chmod 0644 ++fi + + # trying to replace dangling and/or absolute symlink +-DBASE=${RPM_BUILD_ROOT}/usr/src/debug ++DBASE=${debugsrcdir} + for link in `find $DBASE -type l -printf "%P\n"` ; do + link_file=`readlink $RPM_BUILD_DIR/$link` + case $link_file in +@@ -93,12 +109,5 @@ for link in `find $DBASE -type l -printf + fi + done + +-{ +- test -d ${RPM_BUILD_ROOT}/usr/lib/debug && echo /usr/lib/debug +- echo /usr/src/debug +-} > $LISTFILE +- +-for p in $(<$LISTFILE); do +- find $RPM_BUILD_ROOT/$p -type f -print0 | xargs -0 -r chmod 0644 +- find $RPM_BUILD_ROOT/$p -type d -print0 | xargs -0 -r chmod 0755 +-done ++find ${debugsrcdir} -mindepth 1 -maxdepth 1 | \ ++ sed -n -e "s#^$RPM_BUILD_ROOT##p" > $LISTSOURCE diff --git a/finddebuginfo.diff b/finddebuginfo.diff index b803fb5..e33a7b1 100644 --- a/finddebuginfo.diff +++ b/finddebuginfo.diff @@ -1,6 +1,12 @@ ---- scripts/find-debuginfo.sh +--- + scripts/find-debuginfo.sh | 78 ++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 65 insertions(+), 13 deletions(-) + +Index: scripts/find-debuginfo.sh +=================================================================== +--- scripts/find-debuginfo.sh.orig +++ scripts/find-debuginfo.sh -@@ -14,9 +14,18 @@ +@@ -14,9 +14,18 @@ debugdir="${RPM_BUILD_ROOT}/usr/lib/debu echo -n > $SOURCEFILE # Strip ELF binaries @@ -21,7 +27,7 @@ dn=$(dirname $f | sed -n -e "s#^$RPM_BUILD_ROOT##p") bn=$(basename $f .debug).debug -@@ -25,6 +34,8 @@ +@@ -25,6 +34,8 @@ do [ -f "${debugfn}" ] && continue echo extracting debug info from $f @@ -30,7 +36,7 @@ /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, -@@ -34,19 +45,60 @@ +@@ -34,19 +45,60 @@ do esac mkdir -p "${debugdn}" @@ -43,7 +49,7 @@ + objcopy --only-keep-debug $f $debugfn || : + strip_option="--strip-all" + case "$f" in -+ *.ko|*.a) ++ *.ko) + strip_option="--strip-debug" + ;; + *$STRIP_KEEP_SYMTAB*) @@ -76,7 +82,9 @@ -# stupid cpio creates new directories in mode 0700, fixup -find ${RPM_BUILD_ROOT}/usr/src/debug -type d -print0 | xargs -0 chmod a+rx +(cd $RPM_BUILD_DIR; LANG=C sort -z -u | cpio -pd0m ${RPM_BUILD_ROOT}/usr/src/debug) < $SOURCEFILE -+ + +-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 +# trying to replace dangling and/or absolute symlink +DBASE=${RPM_BUILD_ROOT}/usr/src/debug +for link in `find $DBASE -type l -printf "%P\n"` ; do @@ -90,9 +98,7 @@ + cp "`readlink -f $RPM_BUILD_DIR/$link`" "$DBASE/$link" + fi +done - --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 ++ +{ + test -d ${RPM_BUILD_ROOT}/usr/lib/debug && echo /usr/lib/debug + echo /usr/src/debug diff --git a/rpm-python.spec b/rpm-python.spec index 948530a..94fe208 100644 --- a/rpm-python.spec +++ b/rpm-python.spec @@ -17,7 +17,7 @@ License: GPL v2 or later Group: System/Packages Summary: Python Bindings for Manipulating RPM Packages Version: 4.4.2 -Release: 222 +Release: 226 Requires: rpm = %{version} %py_requires Source99: rpm.spec diff --git a/rpm-suse_macros b/rpm-suse_macros index 2d95b58..9b3bd34 100644 --- a/rpm-suse_macros +++ b/rpm-suse_macros @@ -15,8 +15,6 @@ # package build macros %makeinstall make DESTDIR=%{?buildroot:%{buildroot}} install -%tcl_version %(echo 'puts [package require Tcl]' | tclsh) -%tclscriptdir %_datadir/tcl %rb_arch %(echo %{_host_cpu}-linux | sed -e "s/i686/i586/" -e "s/armv5tel/armv4l/" -e "s/hppa2.0/hppa/") %rb_ver %(/usr/bin/ruby -e 'puts VERSION.sub(/\\\.\\\d$/, "")') %insserv_prereq insserv sed diff --git a/rpm.changes b/rpm.changes index 8845a8f..8ea697d 100644 --- a/rpm.changes +++ b/rpm.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Apr 9 12:56:57 CEST 2008 - jblunck@suse.de + +- Put debug sources into separate -debugsource package. + ------------------------------------------------------------------- Fri Mar 28 14:54:04 CET 2008 - coolo@suse.de diff --git a/rpm.spec b/rpm.spec index bcd0f1f..f6037be 100644 --- a/rpm.spec +++ b/rpm.spec @@ -21,7 +21,7 @@ PreReq: %insserv_prereq %fillup_prereq permissions AutoReqProv: on Summary: The RPM Package Manager Version: 4.4.2 -Release: 181 +Release: 184 Source: rpm-%{version}.tar.bz2 Source1: RPM-HOWTO.tar.bz2 Source2: RPM-Tips.html.tar.bz2 @@ -132,6 +132,7 @@ Patch102: rpm-shorten-changelog.diff Patch103: noautoreloc.diff Patch104: lzma-payload.diff Patch105: lzma-payload-2.diff +Patch106: debugsource-package.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build # # avoid bootstrapping problem @@ -206,6 +207,7 @@ rm -f rpmdb/db.h %patch -P 90 -P 91 -P 92 -P 93 -P 94 -P 95 -P 96 -P 97 -P 98 -P 99 %patch -P 100 -P 101 -P 102 -P 103 %patch -P 104 -P 105 -b .lzma +%patch106 -p1 chmod 755 scripts/find-supplements{,.ksyms} chmod 755 scripts/find-provides.ksyms scripts/find-requires.ksyms tar -xjvf %{SOURCE1} @@ -350,7 +352,7 @@ Summary: A C library for parsing command line parameters License: LGPL v2.1 or later Group: System/Libraries Version: 1.7 -Release: 409 +Release: 412 # %description -n popt @@ -373,7 +375,7 @@ Summary: C Library for Parsing Command Line Parameters License: LGPL v2.1 or later Group: System/Libraries Version: 1.7 -Release: 409 +Release: 412 Requires: popt = 1.7 Requires: glibc-devel @@ -408,6 +410,8 @@ Authors: %doc %{_mandir}/man3/popt.3* %changelog +* Wed Apr 09 2008 jblunck@suse.de +- Put debug sources into separate -debugsource package. * Fri Mar 28 2008 coolo@suse.de - leave the rpm package itself with bzip payload to avoid blocking updates from within running system @@ -549,7 +553,7 @@ Authors: %%kernel_module_package_buildreq, %%kernel_module_package, and inside %%kernel_module_package, the macros %%flavors_to_build and %%kernel_source. -* Wed Oct 18 2006 mls@suse.de +* Thu Oct 19 2006 mls@suse.de - split up jumbo patch in 78 small patches - fix lua directory handling [#201518] - add /etc/rpm directory to filelist [#208762] @@ -671,7 +675,7 @@ Authors: * Tue Jan 31 2006 agruen@suse.de - rpm-suse-kernel-module-subpackage: Add version to additional Provides tag. We may need this for future Obsoletes. -* Fri Jan 27 2006 mls@suse.de +* Sat Jan 28 2006 mls@suse.de - added support for EssentialFor and Supports - enabled support for lua scripts * Fri Jan 27 2006 agruen@suse.de @@ -697,7 +701,7 @@ Authors: - don't ignore getcwd return value in build.c * Mon Dec 19 2005 mls@suse.de - fix find-lang.sh script -* Sun Dec 18 2005 mls@suse.de +* Mon Dec 19 2005 mls@suse.de - fix find-debuginfo script * Sun Dec 18 2005 mls@suse.de - don't assume root:root defattr @@ -748,7 +752,7 @@ Authors: - Fix ppc assembly syntax. * Wed Jun 08 2005 matz@suse.de - add STRIP_KEEP_SYMTAB to find-debuginfo.sh -* Sat May 21 2005 schwab@suse.de +* Sun May 22 2005 schwab@suse.de - find-debuginfo.sh: make writable before extracting debug info, simplify. * Thu May 19 2005 schwab@suse.de - Replace absolute symlinks when copying sources for debuginfo package. @@ -1050,7 +1054,7 @@ Authors: - the official arch_canon value for ppc64 is 16, not 5 * Thu Jan 16 2003 ma@suse.de - update subpackage popt to 1.6.4 -* Thu Dec 19 2002 schwab@suse.de +* Fri Dec 20 2002 schwab@suse.de - Update autogen patch. * Mon Nov 18 2002 stepan@suse.de - add m68k as chanonical architecture to configure.in @@ -1202,7 +1206,7 @@ Authors: - added requires for suse-build-key * Tue Feb 12 2002 ro@suse.de - tar option for bz2 is now "j" (re-added) -* Mon Feb 11 2002 ma@suse.de +* Tue Feb 12 2002 ma@suse.de - unk_ugname_cached.diff: Upon building a package, unpacking sources by calling tar from the spec file, may lead to files with unknown user/group names. If those files are to be included in the final @@ -1215,7 +1219,7 @@ Authors: which may cause a segmentation fault on cache lookup. This has been fixed. * Sat Jan 26 2002 ro@suse.de - apply configure-diff also on s390x -* Mon Jan 21 2002 bk@suse.de +* Tue Jan 22 2002 bk@suse.de - use RPM_OPT_FLAGS for compilation - add lib64 support for s390x - update srcdir-supplied rpm-suse_macros file to newest version @@ -1352,7 +1356,7 @@ Authors: - Fix in config.diff (use Makefile.am not Makefile.in) * Mon Apr 10 2000 schwab@suse.de - Fix config patch. -* Thu Apr 06 2000 bk@suse.de +* Fri Apr 07 2000 bk@suse.de - added /lib/libpopt.so* to filelist on s390 * Wed Apr 05 2000 bk@suse.de - uses autoconf and automake now