tarantool / mkrepo

Maintain DEB and RPM repositories on S3
70 stars 24 forks source link

Don't always add version epoch #87

Open sonaton opened 1 year ago

sonaton commented 1 year ago

Package: https://mirror.yandex.ru/centos/7/os/x86_64/Packages/antlr-C%2B%2B-2.7.7-30.el7.x86_64.rpm

Data from https://mirror.yandex.ru/centos/7/os/x86_64/repodata/2b479c0f3efa73f75b7fb76c82687744275fff78e4a138b5b3efba95f91e099e-primary.xml.gz :

<package type="rpm">
  <name>antlr-C++</name>
  <arch>x86_64</arch>
  <version epoch="0" ver="2.7.7" rel="30.el7"/>
...

Data from mkrepo:

<package type="rpm">
  <name>antlr-C++</name>
  <arch>x86_64</arch>
  <version ver="2.7.7" rel="30.el7"/>

rpm info:

# rpm -qpi antlr-C++-2.7.7-30.el7.x86_64.rpm
Name        : antlr-C++
Epoch       : 0
Version     : 2.7.7
Release     : 30.el7
Architecture: x86_64
...

Error in yum:

File "/usr/lib/python2.7/site-packages/yum/sqlitesack.py", line 642, in _pkgExcludedRKNEVRA
    e = e.lower()
AttributeError: 'NoneType' object has no attribute 'lower'

Debug in yum:

 (n,a,e,v,r) = (data['name'], data['arch'], data['epoch'], data['version'], data['release'])
...
> /usr/lib/python2.7/site-packages/yum/sqlitesack.py(642)_pkgExcludedRKNEVRA()
-> e = e.lower()
(Pdb) l
637
638             if not self._pkgExcluder:
639                 return False
640
641             data = {'n' : n.lower(), 'pkgtup' : (n, a, e, v, r), 'marked' : False}
642  ->         e = e.lower()
643             v = v.lower()
644             r = r.lower()
645             a = a.lower()
ylobankov commented 10 months ago

@sonaton Please describe how to reproduce the issue. At the first glance, it is not a mkrepo bug. I checked a few of our repositories, everywhere epoch is present in the primary.xml file.

sonaton commented 9 months ago

Generate metadata for the package https://mirror.yandex.ru/centos/7/os/x86_64/Packages/antlr-C%2B%2B-2.7.7-30.el7.x86_64.rpm using mkrepo. epoch="0" will be missing from them. Try to install a package from the repository with this metadata - you will receive an error in Yum