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