We’ve encountered an inconsistency in the way Pulp or Foreman handles URLs for RPM packages with epochs greater than 0.
The Issue:
When uploading an RPM with an epoch (e.g., container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm, epoch: 2), the generated URL in Pulp/Foreman excludes the epoch information:
Actual URL: <BASE_URL>/container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
However, the expected behavior, and how yum would access the package, is to include the encoded epoch:
Expected URL: <BASE_URL>/container-selinux-2%3A2.119.2-1.911c772.el7_8.noarch.rpm (“:2” encoded as “%3A”)
Consequences:
This discrepancy leads to package resolution issues, as package managers like yum rely on the epoch for accurate identification. and showing 404 not found
The Question:
Is there a configuration option in Pulp or Foreman to ensure generated URLs for
RPMs with epochs greater than 0 include the encoded epoch information in the url
link to the rpm resource for proper package resolution?
I have tried to reproduce this issue on Foreman 3.9/Katello 4.11/Pulp 3.39 but can’t.
Do you have an upstream URL as reproducer? I used createrepo_c (no epoch aka 0) and xorg-x11-xauth (epoch 1) on/from AlmaLinux 8.10. URLs for Library and a published CV version look sane to me.