Project

Profile

Help

Issue #7202

closed

RHEL 8 BaseOS RPM Copy API dep solving not working

Added by iballou over 4 years ago. Updated about 4 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Assignee:
Sprint/Milestone:
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Version:
Platform Release:
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
Katello
Sprint:
Sprint 80
Quarter:

Description

RPM Copy API dep solving isn't working for RHEL 8 BaseOS. Scenario:

Copy the 3 bash rpms (bash-4.4.19-7.el8.x86_64, bash-4.4.19-8.el8_0.x86_64, bash-4.4.19-10.el8.x86_64) from RHEL 8 BaseOS to a fresh RPM repo with dep solving on. Notice that only the 3 bash rpms are copied. The bash RPMs require glibc and filesystem, but neither of those (nor their deps) are copied.

Related pulp-rpm version: python3-pulp-rpm-3.4.1-2.el7.noarch

Actions #1

Updated by jsherril@redhat.com over 4 years ago

  • Tags Katello added
Actions #2

Updated by ttereshc over 4 years ago

  • Triaged changed from No to Yes
  • Sprint set to Sprint 78
Actions #3

Updated by rchan over 4 years ago

  • Sprint changed from Sprint 78 to Sprint 79
Actions #4

Updated by dalley over 4 years ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to dalley
Actions #5

Updated by dalley over 4 years ago

The problem:

  • glibc depends on "/usr/bin/bash"
  • according to libsolv, nothing provides "/usr/bin/bash"
  • "/usr/bin/bash" is not present in the "provides" section of the "bash" package in primary.xml, but "/bin/bash" is. "/usr/bin/bash" is however listed in both the filelists.xml and a list of files present in primary.xml (why does primary.xml have a separate list)?
  • on my local system, "rpm -q --whatprovides /usr/bin/bash" says that the bash package does provide it. same thing works with the other files listed in filelists.xml (even if not listed in primary.xml)
  • so it seems like RPM/DNF look to the file list when answering questions about "provides", not just the "provides" section of the metadata, and Pulp does not do so

That should be easy enough to fix, but I really want answers to

  • Why does primary.xml have a list of files separate and different from (strict subset of?) what is present in the filelists?
  • Why is everything the package provides not simply listed in the "provides" section?

I'm guessing there's some kind of backwards compatibility reason to keep it separate, but the lack of documentation of any of this makes it extremely confusing.

Actions #6

Updated by rchan over 4 years ago

  • Sprint changed from Sprint 79 to Sprint 80
Actions #7

Updated by pulpbot over 4 years ago

  • Status changed from ASSIGNED to POST

Added by dalley over 4 years ago

Revision 571a7076 | View on GitHub

Fix RPM copy w/ depsolving when packages depend on a particular file

Packages can depend on files e.g. /usr/bin/bash rather than "bash". We're creating the file list metadata improperly in libsolv so this wasn't being respected, and the problems would only be apparent in debug log mode. During the period when we want to catch all these bugs, "warning" would be more appropriate so that they are highly visible.

closes: #7202 https://pulp.plan.io/issues/7202

Actions #8

Updated by ggainey over 4 years ago

  • Status changed from POST to ASSIGNED

(apologies for updating the wrong issue)

Actions #9

Updated by ggainey over 4 years ago

  • Status changed from ASSIGNED to POST
Actions #10

Updated by dalley over 4 years ago

  • Status changed from POST to MODIFIED

Added by dalley about 4 years ago

Revision 3996c35b | View on GitHub

Fix RPM copy w/ depsolving when packages depend on a particular file

Packages can depend on files e.g. /usr/bin/bash rather than "bash". We're creating the file list metadata improperly in libsolv so this wasn't being respected, and the problems would only be apparent in debug log mode. During the period when we want to catch all these bugs, "warning" would be more appropriate so that they are highly visible.

closes: #7202 https://pulp.plan.io/issues/7202 (cherry picked from commit 571a7076fd826292d84ce923083faffa66aa07e2)

Actions #11

Updated by fao89 about 4 years ago

  • Sprint/Milestone set to 3.6.2
Actions #12

Updated by pulpbot about 4 years ago

  • Status changed from MODIFIED to CLOSED - CURRENTRELEASE

Also available in: Atom PDF