Issue #7202
closed
RHEL 8 BaseOS RPM Copy API dep solving not working
Status:
CLOSED - CURRENTRELEASE
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
- Triaged changed from No to Yes
- Sprint set to Sprint 78
- Sprint changed from Sprint 78 to Sprint 79
- Status changed from NEW to ASSIGNED
- Assignee set to dalley
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.
- Sprint changed from Sprint 79 to Sprint 80
- Status changed from ASSIGNED to POST
- Status changed from POST to ASSIGNED
(apologies for updating the wrong issue)
- Status changed from ASSIGNED to POST
- Status changed from POST to MODIFIED
- Sprint/Milestone set to 3.6.2
- Status changed from MODIFIED to CLOSED - CURRENTRELEASE
Also available in: Atom
PDF
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