You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RPM has all sorts of complicated and fancy rules for comparing package versions and determining which ones are newer. Quoth the Fedora RPM Guide:
You could compare the version numbers directly, calling headerGetEntry to get the version and release tags, converting these strings to numbers and then comparing, but this would cause problems. The custom comparison is not as exact as the code in this section, especially since many packages have version numbers that are not true numbers, such as 1.12.4, with one too many decimal points. This makes the comparisons harder. In addition, there is more than just the version number to take into account. You need to deal with the Epoch value, as well as the release, too.
So, tl;dr: if we ever want to compare RPM versions, we should really use rpmlib's comparison logic to do it.
~~~We really gotta get #11 fixed!~~~
Update: #11 is fixed, and #19 added transaction set support.
The text was updated successfully, but these errors were encountered:
There are two levels of version comparison: rpmvercmp() and rpmds* dependency sets.
Note that rpmvercmp() needs to be applied to each element in the tuple (E,V,R) iteratively. rpmvercmp is NOT a means to compare two EVR strings.
The Python bindings are overly complex and encumbered with ancient politics having to do with the "mysterious epoch" and missing values, which you likely should avoid these days in new bindings.
This issue tracks support for using rpmlib to compare RPM versions, a.k.a. dependency sets. Presently no support is provided.
RPM has all sorts of complicated and fancy rules for comparing package versions and determining which ones are newer. Quoth the Fedora RPM Guide:
So, tl;dr: if we ever want to compare RPM versions, we should really use rpmlib's comparison logic to do it.
The text was updated successfully, but these errors were encountered: