[Rpm-ecosystem] Improving debuginfo packages

Michael Schroeder mls at suse.de
Fri May 20 14:43:52 UTC 2016


On Fri, May 20, 2016 at 04:36:08PM +0200, Mark Wielaard wrote:
> When discussing the above on irc people pointed out some other things
> about debuginfo packages that could be improved.
> 
> - debuginfo-subpackages. Suse has some patches to create a debuginfo
>   package for each main binary package. Instead of one debuginfo package
>   per source rpm. This would make it possible to only install the
>   actually needed debuginfo.
> https://build.opensuse.org/package/view_file/openSUSE:Factory/rpm/debugsubpkg.diff?expand=1
>   I think it makes sense to try to pull this into upstream rpm.
> 
> - Dependencies by Build-Id. Debian debs provide the Build-Id for each
>   ELF file (executable, shared library, etc) in the package. And similar
>   for their debug packages. This makes it easy request the matching
>   debuginfo package for a main package. I think it make sense to somehow
>   add that to rpm too. Then you could easily request a package or debug
>   package based on build-id directly. Currently that is possible if you
>   have a file list and can resolve a request for
>   the /usr/lib/debug/.build-id/XX/YYYYY.debug file.
>   But that is somewhat cumbersome.

SUSE automatically adds "debuginfo(build-id) = XXX" provides via the
following fileattr scriptlet:

#!/bin/sh

while read instfile ; do
    case $instfile in
        */usr/lib/debug/.build-id/*.debug)
            if [ -f "$instfile" ] ; then
                BUILDID=$(echo $instfile | sed -ne 's|.*/usr/lib/debug/.build-id/\([0-9a-f]*\)/\([0-9a-f]*\)\.debug|\1\2|p')
                echo "debuginfo(build-id) = $BUILDID"
            fi
            ;;
    esac
done

> - Suppress or split build sources from debuginfo package.
>   Not all debuginfo consumers also need the full build sources.
>   So it might make sense to split off the build sources into
>   a separate -debugsrc package (which the -debuginfo could recommend).

SUSE already does that, but we use "-debugsource" as suffix.

Cheers,
  Michael.

-- 
Michael Schroeder                                   mls at suse.de
SUSE LINUX GmbH,           GF Jeff Hawn, HRB 16746 AG Nuernberg
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}


More information about the Rpm-ecosystem mailing list