Issue #7202
closedRHEL 8 BaseOS RPM Copy API dep solving not working
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
Updated by ttereshc over 4 years ago
- Triaged changed from No to Yes
- Sprint set to Sprint 78
Updated by dalley over 4 years ago
- Status changed from NEW to ASSIGNED
- Assignee set to dalley
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.
Added by dalley over 4 years ago
Updated by ggainey over 4 years ago
- Status changed from POST to ASSIGNED
(apologies for updating the wrong issue)
Updated by ggainey over 4 years ago
- Status changed from ASSIGNED to POST
Updated by dalley over 4 years ago
- Status changed from POST to MODIFIED
Applied in changeset 571a7076fd826292d84ce923083faffa66aa07e2.
Added by dalley over 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)
Updated by pulpbot over 4 years ago
- Status changed from MODIFIED to CLOSED - CURRENTRELEASE
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