@@ -969,6 +969,34 @@ to be kept.
969969Projects that opted-in for :ref: `creating_repositories_manually `, are
970970exempt from the old package removal because of technical limitations.
971971
972+ .. _`faq-pulp-same-nvra-different-epoch` :
973+
974+ .. rubric :: Packages with the same NVRA but different Epoch on Pulp backend :ref:`¶ <faq-pulp-same-nvra-different-epoch>`
975+
976+ **For projects using the Pulp backend **, there is a known limitation when building
977+ packages with the same NVRA (Name-Version-Release-Architecture) but different Epoch values.
978+
979+ RPM package filenames are generated from NVRA only (Epoch is not included in
980+ the filename). For example, both ``foo-1.0-1.fc42.x86_64.rpm `` with Epoch 0 and
981+ the same package with Epoch 1 will have the identical filename.
982+
983+ However, Pulp constrains repository uniqueness by NEVRA (including Epoch). This
984+ means two packages can co-exist in a repository with the same NVRA but different
985+ epochs, but they will have conflicting filenames. When this happens:
986+
987+ - Both packages exist in the repository metadata
988+ - Only one package file is actually accessible via the repository URL
989+ - The package with the more recent build time "wins" (regardless the epoch value)
990+ and becomes accessible
991+ - The older package (by build time) cannot be downloaded by DNF clients
992+ - Operations like ``dnf downgrade `` may not work correctly for the inaccessible package
993+
994+ This is a known upstream Pulp issue tracked at:
995+ `<https://github.com/pulp/pulp_rpm/issues/4239 >`_
996+
997+ **Workaround **: When bumping only the Epoch of a package, also change the
998+ Release number to ensure unique filenames.
999+
9721000.. _`How is Copr pronounced?` :
9731001
9741002.. rubric :: How is Copr pronounced? :ref:`¶ <How is Copr pronounced?>`
0 commit comments