Bug 1427970

Summary: Include upstream debuginfo improvements to enable parallel installable debuginfo by default
Product: [Fedora] Fedora Reporter: Mark Wielaard <mjw>
Component: rpmAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 26CC: ignatenko, kardos.lubos, packaging-team-maint, pknirsch, pmatilai, vmukhame
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rpm-4.13.0.1-4.fc27 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-03-16 15:44:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1340819    
Attachments:
Description Flags
Adds upstream debuginfo improvement patches none

Description Mark Wielaard 2017-03-01 15:41:51 UTC
To enable Parallel Installable Debuginfo https://fedoraproject.org/wiki/Changes/ParallelInstallableDebuginfo by default we need a couple of upstream backports.

The attached patch adds these.

With these applied the following macros can be set by defaults to enable the feature by default:

%_include_gdb_index    1
%_build_id_links compat
%_unique_build_ids     1
%_unique_debug_names   1
%_unique_debug_srcs    1

Comment 1 Mark Wielaard 2017-03-01 15:43:46 UTC
Created attachment 1258805 [details]
Adds upstream debuginfo improvement patches

This is a backport against rpm 4.13.0.1 of the following upstream patches:

Igor Gnatenko (1):
      configure.ac: use LIBDW always conditionally

Mark Wielaard (9):
      Make sure CPPFLAGS are setup correctly for finding nspr.h
      configure --with-external-db should fall back to external if unspecified.
      Add build-id links to rpm for all ELF files.
      Make it possible to have unique build-ids across build versions/releases.
      Make adding GDB index sections configurable.
      Add option to have unique debug file names across version/release/arch.
      Fix libdw configure check.
      debugedit: Support String/Line table rewriting for larger/smaller paths.
      Add option to have unique debug source dirs across version/release/arch.

Panu Matilainen (3):
      Fix behavior when %_build_id_links is undefined
      Fix debuginfo etc when subpackages have different versions (RhBug:1051407)
      Only process regular files when generating build-ids

Comment 2 Panu Matilainen 2017-03-03 10:35:23 UTC
I don't think it'd be a good idea to include this in F26 at this point. Even if everything went silk-smooth the result would be inconsistent debuginfo packages in F26. And considering this hasn't seen even a single day in rawhide yet, F26 seems outlandish to me.

Right now is just about the perfect time to land changes like this in rawhide to allow it to mature a bit before possible next mass rebuild for F27, but I think F26 sailed already.

Comment 3 Mark Wielaard 2017-03-03 10:56:18 UTC
Sure lets also stick it in rawhide. The idea was that this would land before f26 branched. That is what we agreed on with fesco. We deliberately delayed till after the mass rebuild, so as to not disrupt any package builds. The package set doesn't really change. The idea was that we needed to support different layout of debuginfo packages for some time. So IMHO now would be the perfect time to flip the defaults and show the feature is testable now.

Comment 4 Mark Wielaard 2017-03-03 12:38:22 UTC
Note that the individual patches on top of rpm-4.13.0.1-release can also be found here: https://pagure.io/rpm-debuginfo/commits/rpm-4.13.0.1-debuginfo

Comment 5 Panu Matilainen 2017-03-07 15:50:40 UTC
Hmm, I get a reject on macros.in from the individual patches but not the combined one so there's some fine-tuning needed. No big deal, I'll try to get this sorted out and into rawhide tomorrow.

Comment 6 Mark Wielaard 2017-03-07 23:34:33 UTC
(In reply to Panu Matilainen from comment #5)
> Hmm, I get a reject on macros.in from the individual patches but not the
> combined one so there's some fine-tuning needed. No big deal, I'll try to
> get this sorted out and into rawhide tomorrow.

Which patch gets rejected?

They apply cleanly for me when generated from https://pagure.io/rpm-debuginfo.git with git format-patch rpm-4.13.0.1-release..origin/rpm-4.13.0.1-debuginfo and added as:

Patch450: 0001-Make-sure-CPPFLAGS-are-setup-correctly-for-finding-n.patch
Patch451: 0002-configure-with-external-db-should-fall-back-to-exter.patch
Patch452: 0003-Add-build-id-links-to-rpm-for-all-ELF-files.patch
Patch453: 0004-Make-it-possible-to-have-unique-build-ids-across-bui.patch
Patch454: 0005-Make-adding-GDB-index-sections-configurable.patch
Patch455: 0006-Add-option-to-have-unique-debug-file-names-across-ve.patch
Patch456: 0007-Fix-behavior-when-_build_id_links-is-undefined.patch
Patch457: 0008-Fix-debuginfo-etc-when-subpackages-have-different-ve.patch
Patch458: 0009-Only-process-regular-files-when-generating-build-ids.patch
Patch459: 0010-configure.ac-use-LIBDW-always-conditionally.patch
Patch460: 0011-Fix-libdw-configure-check.patch
Patch461: 0012-debugedit-Support-String-Line-table-rewriting-for-la.patch
Patch462: 0013-Add-option-to-have-unique-debug-source-dirs-across-v.patch

Comment 7 Panu Matilainen 2017-03-08 06:29:51 UTC
Hmm, you probably have %_default_patch_fuzz set to non-zero in your ~/.rpmmacros, that's the only way I can get those to apply. 

The clash is on the fedora specific rpm-4.9.1.1-ld-flags.patch which will need to be updated for next major rpm version anyway so I'll just update that - like said it's no big deal.

Comment 8 Panu Matilainen 2017-03-08 11:15:59 UTC
Pushed + built for rawhide now, and seems to be live on koji already as well:
https://koji.fedoraproject.org/koji/taskinfo?taskID=18263387