Quantcast
Viewing all articles
Browse latest Browse all 19115

0007671: createrepo's rpm version parsing differs from librpm producing incorrect metadata

createrepo has a bug in its python code for parsing version strings from RPMs. This bug was fixed, but the fix was lost during a major rewrite of the createrepo internals.<br /> <br /> The commit sha 2269134f119ce13d6a9b725f94954d9dd629f427 in the createrepo git history contains the fix that should exist on master, but was instead lost.<br /> <br /> You can find the librpm algorithm for computing version, release, and epoch in the function 'parseEVR' in rpmds.c in librpm (I am looking at the source for librpm-4.12.0.1, but this code is present in earlier versions).<br /> <br /> The result is that the primary XML produced by createrepo (and used in the official CentOS7 repositories) lists different version and release strings for rpm provides than would be listed by librpm.<br /> <br /> For example, the package plexus-cdc-1.0-0.20.a14.el7.noarch.rpm from CentOS7 has the following in its primary xml:<br /> <br /> <rpm:entry epoch="0" flags="EQ" name="mvn(org.codehaus.plexus:plexus-cdc)" rel="14" ver="1.0-alpha"/><br /> <br /> But librpm generates: ver="1.0" and release "alpha-14"

Viewing all articles
Browse latest Browse all 19115

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>