-
Notifications
You must be signed in to change notification settings - Fork 2
gordonmessmer/pyreq2rpm
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
PEP 440 defines several version comparison operators, some of which do not exist in RPM, and some which follow slightly different rules with regard to version identifiers. Python packaging version identifiers have two significant differences from RPM's version identifiers. The first is that version a version identifier may have a '.*' suffix, which indicates that only the version identifier prefix must match in order to satisfy the condition, whereas rpm does not provide matching by glob patterns. The second is that python will "zero pad" a version identifier during comparison to ensure that the versions being compared are of the same length, whereas trailing zeros are significant in rpm's version comparisons, resulting in a value greater than a version with a matching prefix but no trailing zeros. ~=: Compatible release clause The compatible release operator has no analog in RPM. The preferred format for an equivalent RPM requirement statement is: (name >= x.y.z with name < x.(y+1)) In order to create the upper version boundary, the least significant version number should be dropped, and the next least significant version number should be incremented by one. Trailing dot-zero suffixes should be removed from the original version identifier. ==: Version matching clause The version matching clause in RPM is '='. The preferred format for an equivalent RPM requirement statement is: name = version If the version identifier has a '.*' suffix, the '*' character should be replaced with a '0', and the matching clause should be treated as if it were a compatible release operator instead, as described above. Trailing dot-zero suffixes should be removed from the version identifier. !=: Version exclusion clause The version exclusion clause has no analog in RPM. The preferred format for an equivalent RPM requirement statement is: (name < version or name > version) If the version identifier has a '.*' suffix, the suffix should be removed. In order to create the lower version boundary, the least significant version number should be incremented by one. Trailing dot-zero suffixes should be removed from the version identifier. <=, >=: Inclusive ordered comparison clause <, >: Exclusive ordered comparison clause The operators above are similar to the same operators in RPM. Trailing dot-zero suffixes should be removed from the version identifier. ===: Arbitrary equality clause. The arbitrary equality clause is not supported. References: https://www.python.org/dev/peps/pep-0440/#version-specifiers ~=: Compatible release clause ==: Version matching clause !=: Version exclusion clause <=, >=: Inclusive ordered comparison clause <, >: Exclusive ordered comparison clause ===: Arbitrary equality clause. The comma (",") is equivalent to a logical and operator https://rpm.org/user_doc/dependencies.html https://rpm.org/user_doc/boolean_dependencies.html Instead of ‘>=’, you may also use ‘<’, ‘>’, ‘<=’, or ‘=’. Dot-zero suffixes are significant in rpm: $ rpmdev-vercmp 1.0-1 1-3 1.0-1 > 1-3 $ rpmdev-vercmp 1.0-1 1.0-3 1.0-1 < 1.0-3
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published