[CentOS] yum does not recognise new (updated) packages due to underscore in package name

Tue Aug 23 12:02:16 UTC 2016
Felix Scheffler <felix.scheffler90 at gmail.com>

Hi all,

we are currently working on porting software from x86_64 to aarch64. We are
working with the altarch aarch64 repos:

http://mirror.centos.org/altarch/7/os/aarch64/Packages/
http://mirror.centos.org/altarch/7/extras/aarch64/Packages/
http://mirror.centos.org/altarch/7/updates/aarch64/Packages/

However, it seems that yum (and eventually rpm) has problems with
identifying new packages, if you have packages named as:

<name>-<version>-<release>.el7_x.y.<arch>.rpm
<name>-<version>-<release>.el7.y.<arch>.rpm

A concrete example is the package selinux-policy-3.13.1-60.el7.3.noarch.rpm
in the os repo. It has an updated package
(selinux-policy-3.13.1-60.el7_2.7.noarch.rpm) in the updates repo. However,
the underscore seems to be interpreted as a dot and hence leads to the
package located in the os repo to be considered as newer. Maybe, this was
tried to be addressed by also copying a corresponding version
selinux-policy-3.13.1-60.el7_2.3.noarch.rpm into the os repo. However, this
of course is also regarded as older (for the same reason) and thus still
leads to the initial package to have precedence.

Do I miss out on something here? In addition, it might well be that this is
not only an issue to the aarch64 repos, but also to other architectures. Is
it a known issue and if yes, are there any attempts to correct this? As
from what I can tell so far, it is not a problem of yum or rpm, but some
inconsistencies in naming the packages in the centos repos.

Other sources of information:
http://superuser.com/questions/427065/what-comes-after-the-underscore-in-an-rpm-version-string
http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
https://fedoraproject.org/wiki/Archive:Tools/RPM/VersionComparison

Thanks in advance for your help.

Best regards
Felix