Re: rpm debuginfo improvements for rawhide/f27

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

 



Hi packagers,

On Mon, Jun 26, 2017 at 04:13:02PM +0200, Mark Wielaard wrote:
> 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

rel-eng is still figuring out whether any updates are necessary to
pick up both the -debuginfo and -debugsource pacakges:
https://pagure.io/releng/issue/6863

But if you tried out the above I would really like to hear your
experiences.

> 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.

There was one request for keeping a special section for rust packages.
"Need a way to exclude sections from eu-strip"
https://bugzilla.redhat.com/show_bug.cgi?id=1465997
That was implemented and should be generally useful.
It is now possible to add --keep-section=NAME or --remove-section=NAME
as _find_debuginfo_opts. Which will make sure a section is explicitly
kept in the main binary or explicitly (re)moved to the .debug file.

For completeness here are the different argument that a package can
add when using %global _find_debuginfo_opts to tweak how rpm
find-debuginfo.sh works which don't have a separate rpm macro:

# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
#
# The -r flag says to use eu-strip --reloc-debug-sections.
# (this is only really useful for kernel modules)
#
# Use --keep-section SECTION or --remove-section SECTION to explicitly
# keep a (non-allocated) section in the main executable or explicitly
# remove it into the .debug file. SECTION is an extended wildcard pattern.
# Both options can be given more than once.

The following options should normally not be given directly, but will
be used when the corresponding rpm macros are defined:

# %_smp_mflags
# The -j N option will spawn N processes to do the debuginfo extraction
# in parallel.
#
# %_missing_build_ids_terminate_build
# The --strict-build-id flag says to exit with failure status if
# any ELF binary processed fails to contain a build-id note.
#
# %_no_recompute_build_ids
# The -n flag says to not recompute the build-id.
#
# %_include_minidebuginfo
# The -m flag says to include a .gnu_debugdata section in the main binary.
#
# %_include_gdb_index
# The -i flag says to include a .gdb_index section in the .debug file.
#
# %_unique_build_ids
# If --build-id-seed SEED is given then debugedit is called to
# update the build-ids it finds adding the SEED as seed to recalculate
# the build-id hash.  This makes sure the build-ids in the ELF files
# are unique between versions and releases of the same package.
# (Use --build-id-seed "%{VERSION}-%{RELEASE}".)
#
# %_unique_debug_names
# If --unique-debug-suffix SUFFIX is given then the debug files created
# for <FILE> will be named <FILE>-<SUFFIX>.debug.  This makes sure .debug
# are unique between package version, release and architecture.
# (Use --unique-debug-suffix "-%{VERSION}-%{RELEASE}.%{_arch}".)
#
# %_unique_debug_srcs
# If --unique-debug-src-base BASE is given then the source directory
# will be called /usr/debug/src/<BASE>.  This makes sure the debug source
# directories are unique between package version, release and architecture.
# (Use --unique-debug-src-base "%{name}-%{VERSION}-%{RELEASE}.%{_arch}".)
#
# %_find_debuginfo_dwz_opts
# %_dwz_low_mem_die_limit
# %_dwz_max_die_limit
# The --run-dwz flag instructs find-debuginfo.sh to run the dwz utility
# if available, and --dwz-low-mem-die-limit and --dwz-max-die-limit
# provide detailed limits.  See dwz(1) -l and -L option for details.
#
# %_debugsource_packages
# The -S debugsourcefiles.list option will create a debugsourcefiles.list
# file containing all source files found in the .debug packages.
# This will also exclude all source files from the debugfiles.list.

But please don't invoke find-debuginfo.sh by hand, but use the provided
rpm macros. Finally when you are invoking find-debuginfo.sh by hand then
the following can be also be used:

# A single -o switch before any -l or -p switches simply renames
# the primary output file from debugfiles.list to something else.
# A -o switch that follows a -p switch or some -l switches produces
# an additional output file with the debuginfo for the files in
# the -l filelist file, or whose names match the -p pattern.
# The -p argument is an grep -E -style regexp matching the a file name,
# and must not use anchors (^ or $).

I would be interested in feedback from packagers that do need to invoke
find-debuginfo.sh by hand. And what they believe would be necessary to
create their packages without needing to invokle find-debuginfo.sh by hand.

Thanks,

Mark
_______________________________________________
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