Bug 2097065

Summary: annobin: annobin-docs subpackage incorrectly provides annobin, breaking buildroot
Product: Red Hat Enterprise Linux 9 Reporter: Florian Weimer <fweimer>
Component: annobinAssignee: Nick Clifton <nickc>
annobin sub component: gcc-toolset-12 QA Contact: Václav Kadlčík <vkadlcik>
Status: CLOSED ERRATA Docs Contact:
Severity: unspecified    
Priority: unspecified CC: bstinson, fweimer, jwboyer, mcermak, nickc, sipoyare, vkadlcik
Version: CentOS StreamKeywords: Bugfix, Triaged
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: gcc-toolset-12-annobin-10.76-2.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of:
: 2099694 (view as bug list) Environment:
Last Closed: 2022-11-15 10:27:00 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: 2099694    
Bug Blocks:    

Description Florian Weimer 2022-06-14 20:11:21 UTC
# rpm -q annobin-docs --provides
annobin = 10.75-3.el9
annobin-docs = 10.75-3.el9

The problem with that is that if RPM selects annobin-docs to satisfy the glibc 

https://kojihub.stream.centos.org/koji/taskinfo?taskID=1208735

What complicates matters is that annobin-10.75-3.el9 is not a build off the c9s branch, it's a build made using the the scl-gcc-toolset-12-rhel-9.1.0 branch which was accidentally built against the c9s-candidate target (not the SCL target):

https://kojihub.stream.centos.org/koji/taskinfo?taskID=1203159

Its spec file contains the faulty Provides:

%package docs
Summary: Documentation and shell scripts for use with annobin
BuildArch: noarch
# annobin renamed to annobin-doc in 9.66-1
Provides:  %{name} = %{version}-%{release}
Obsoletes: %{name} < %{version}-%{release}
# The documentation uses pod2man...
BuildRequires: perl-interpreter perl-podlators gawk make sharutils

Comment 1 Florian Weimer 2022-06-14 20:26:20 UTC
Curiously, this does not cause all builds to fail. Something seems to be special about the glibc build. lua rebuilds fine (otherwise the build would not have passed gating).

Comment 4 Florian Weimer 2022-06-15 05:26:43 UTC
The glibc build fails because it assumes the plugin has the name annobin, not gcc-anobin. It is necessary to disable the plugin for the non-shared bits, and the way this is done today needs to know the exact plug-in name.

Comment 8 Nick Clifton 2022-06-24 10:39:03 UTC
The gcc-toolset-12-annobin-10.76-2.el9 build does not fix the problem, but it does mitigate it:

  % rpm -q --provides -p gcc-toolset-12-annobin-docs-10.76-2.el9.noarch.rpm 
  gcc-toolset-12-annobin-docs = 10.76-2.el9
  gcc-toolset-12-gcc-toolset-12-annobin = 10.76-2.el9
  scl-package(gcc-toolset-12)

Since nothing should ever require a subpackage called gcc-toolset-12-gcc-toolset-12-annobin, the problem should not surface.

Obviously this is not the correct solution to the problem.  The next update to GTS-12 annobin, if it happens, should solve the problem by removing the Provides altogether.

Comment 17 errata-xmlrpc 2022-11-15 10:27:00 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (gcc-toolset-12-annobin bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:8147