Re: rpm debuginfo improvements for rawhide/f27

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wednesday, July 26, 2017 14:55:34 Igor Gnatenko wrote:
> On Wed, 2017-07-26 at 14:38 +0200, Kamil Dudka wrote:
> 
> > On Monday, June 26, 2017 16:13:02 Mark Wielaard wrote:
> > 
> > > Hi packagers,
> > >
> > >
> > >
> > > rawhide rpmbuild contains various debuginfo improvements that
> > > hopefully
> > > will make various hacks in spec files redundant.
> >
> >
> >
> > These improvements break build of packages that use the
> > RemovePathPostfixes
> > feature of RPM, such as coreutils or curl:
> >
> >
> >
> > https://koji.fedoraproject.org/koji/getfile?taskID=20745024&volume=DE
> > FAULT&name=build.log&offset=-4000
> > https://koji.fedoraproject.org/koji/getfile?taskID=20745984&volume=DE
> > FAULT&name=build.log&offset=-4000
> >
> >
> >
> > Is this expected?
> 
> Definitely not, but thanks a lot for reporting!
> 
> I've created issue for rpm[0] to track this problem. For now, feel free
> to add %undefine _debuginfo_subpackages on top of your spec files.

Thanks for the quick reply on this!  Using the above trick helped me to
make both coreutils and curl build successfully again.

Kamil

> Sorry for breakage.
> 
> [0]https://github.com/rpm-software-management/rpm/issues/280
> 
> >
> >
> > Kamil
> >
> >
> >
> > > If you have your own way of handling debuginfo packages, calling
> > > find-debuginfo.sh directly, need hacks for working around debugedit
> > > limitations or split your debuginfo package by hand then please try
> > > out
> > > rpmbuild in rawhide and read below for some macros you can set to
> > > tweak
> > > debuginfo package generation.
> > >
> > >
> > >
> > > If you still need hacks in your spec file because setting macros
> > > isn't
> > > enough to get the debuginfo packages you want then please let us
> > > know.
> > > Also please let us know about packages that need to set debuginfo
> > > rpm
> > > macros to non-default values because they would crash and burn with
> > > the
> > > default settings (best to file a bug against rpmbuild).
> > >
> > >
> > >
> > > The improvements have been mainly driven by the following two
> > > change
> > > proposals for f27 (some inspired by what other distros do):
> > >
> > >
> > >
> > > https://fedoraproject.org/wiki/Changes/ParallelInstallableDebuginfo
> > > https://fedoraproject.org/wiki/Changes/SubpackageAndSourceDebuginfo
> > >
> > >
> > >
> > > The first is completely done and has been enabled by default for
> > > some
> > > months now in rawhide. The second introduces two new macros to
> > > enable
> > > separate debugsource and sub-debuginfo packages, but has not been
> > > enabled by default yet. If people like the change and no bugs are
> > > found
> > > (and fesco and releng agree) we can enable them for the f27 mass
> > > rebuild.
> > >
> > >
> > >
> > > If your package already splits debuginfo packages in a (common)
> > > source
> > > package and/or sub-debuginfo packages, please try out the new
> > > macros
> > > introduced by the second change. You can enable the standard
> > > splitting
> > > by adding the following to your spec file:
> > >
> > >
> > >
> > > %global _debugsource_packages 1
> > > %global _debuginfo_subpackages 1
> > >
> > >
> > >
> > > Besides the above two changes debuginfo packages can now (and are
> > > by
> > > default in rawhide) build by running debug extraction in parallel.
> > > This
> > > should speed up building with lots of binaries/libraries. If you do
> > > invoke find-debuginfo.sh by hand you most likely will want to add
> > > %{?_smp_mflags} as argument to get the parallel processing speedup.
> > >
> > >
> > >
> > > If your package is invoking find-debuginfo.sh by hand also please
> > > take a
> > > look at all the new options that have been added. Also note that
> > > almost
> > > all options can be changed by setting (or undefining) rpm macros
> > > now.
> > > Using the rpm macros is preferred over invoking find-debuginfo.sh
> > > directly since it means you get any defaults and improvements that
> > > might
> > > need new find-debuginfo.sh arguments automatically.
> > >
> > >
> > >
> > > Here is an overview of various debuginfo rpm macros that you can
> > > define
> > > undefine in your spec file with the latest rpmbuild:
> > >
> > >
> > >
> > > #
> > > # Should an ELF file processed by find-debuginfo.sh having no build
> > > ID
> > > # terminate a build?  This is left undefined to disable it and
> > > defined to
> > > # enable.
> > > #
> > > %_missing_build_ids_terminate_build    1
> > >
> > >
> > >
> > > #
> > > # Include minimal debug information in build binaries.
> > > # Requires _enable_debug_packages.
> > > #
> > > %_include_minidebuginfo        1
> > >
> > >
> > >
> > > #
> > > # Include a .gdb_index section in the .debug files.
> > > # Requires _enable_debug_packages and gdb-add-index installed.
> > > #
> > > %_include_gdb_index    1
> > >
> > >
> > >
> > > #
> > > # Defines how and if build_id links are generated for ELF files.
> > > # The following settings are supported:
> > > #
> > > # - none
> > > #   No build_id links are generated.
> > > #
> > > # - alldebug
> > > #   build_id links are generated only when the __debug_package
> > > global is
> > > #   defined. This will generate build_id links in the -debuginfo
> > > package
> > > #   for both the main file as /usr/lib/debug/.build-id/xx/yyy and
> > > for
> > > #   the .debug file as /usr/lib/debug/.build-id/xx/yyy.debug.
> > > #   This is the old style build_id links as generated by the
> > > original
> > > #   find-debuginfo.sh script.
> > > #
> > > # - separate
> > > #   build_id links are generate for all binary packages. If this is
> > > a
> > > #   main package (the __debug_package global isn't set) then the
> > > #   build_id link is generated as /usr/lib/.build-id/xx/yyy. If
> > > this is
> > > #   a -debuginfo package (the __debug_package global is set) then
> > > the
> > > #   build_id link is generated as /usr/lib/debug/.build-id/xx/yyy.
> > > #
> > > # - compat
> > > #   Same as for "separate" but if the __debug_package global is set
> > > then
> > > #   the -debuginfo package will have a compatibility link for the
> > > main
> > > #   ELF /usr/lib/debug/.build-id/xx/yyy -> /usr/lib/.build-
> > > id/xx/yyy
> > > %_build_id_links compat
> > >
> > >
> > >
> > > # Whether build-ids should be made unique between package
> > > version/releases
> > > # when generating debuginfo packages. If set to 1 this will pass
> > > # --build-id-seed "%{VERSION}-%{RELEASE}" to find-debuginfo.sh
> > > which will
> > > # pass it onto debugedit --build-id-seed to be used to prime the
> > > build-id
> > > # note hash.
> > > %_unique_build_ids      1
> > >
> > >
> > >
> > > # Do not recompute build-ids but keep whatever is in the ELF file
> > > already.
> > > # Cannot be used together with _unique_build_ids (which forces
> > > recomputation).
> > > # Defaults to undefined (unset).
> > > #%_no_recompute_build_ids 1
> > >
> > >
> > >
> > > # Whether .debug files should be made unique between package
> > > version,
> > > # release and architecture. If set to 1 this will pass
> > > # --unique-debug-suffix "-%{VERSION}-%{RELEASE}.%{_arch} find-
> > > debuginfo.sh
> > > # to create debuginfo files which end in -<ver>-<rel>.<arch>.debug
> > > # Requires _unique_build_ids.
> > > %_unique_debug_names    1
> > >
> > >
> > >
> > > # Whether the /usr/debug/src/<package> directories should be unique
> > > between
> > > # package version, release and architecture. If set to 1 this will
> > > pass #
> > > --unique-debug-src-base "%{name}-%{VERSION}-%{RELEASE}.%{_arch}" to
> > > #
> > > find-debuginfo.sh to name the directory under /usr/debug/src as #
> > > <name>-<ver>-<rel>.<arch>.
> > > %_unique_debug_srcs     1
> > >
> > >
> > >
> > > # Whether rpm should put debug source files into its own subpackage
> > > #%_debugsource_packages 1
> > >
> > >
> > >
> > > # Whether rpm should create extra debuginfo packages for each
> > > subpackage
> > > #%_debuginfo_subpackages 1
> > >
> > >
> > >
> > > # Number of debugging information entries (DIEs) above which
> > > # dwz will stop considering file for multifile optimizations
> > > # and enter a low memory mode, in which it will optimize
> > > # in about half the memory needed otherwise.
> > > %_dwz_low_mem_die_limit          10000000
> > > # Number of DIEs above which dwz will stop processing
> > > # a file altogether.
> > > %_dwz_max_die_limit              50000000
> > >
> > >
> > >
> > > %_find_debuginfo_dwz_opts --run-dwz\\\
> > > 
> > >    --dwz-low-mem-die-limit %{_dwz_low_mem_die_limit}\\\
> > >    --dwz-max-die-limit %{_dwz_max_die_limit}
> > >
> > >
> > >
> > > If there are settings missing that would be useful, bugs with the
> > > default settings or defaults that should be changed please do file
> > > a bug
> > > report.
> > >
> > >
> > >
> > > Thanks,
> > >
> > >
> > >
> > > Mark
> >
> >
> >
> > _______________________________________________
> > devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
> > To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
> 
> 
> --
> -Igor Gnatenko
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux