diff options
author | André Erdmann <dywi@mailerd.de> | 2013-07-17 19:58:11 +0200 |
---|---|---|
committer | André Erdmann <dywi@mailerd.de> | 2013-07-17 20:00:00 +0200 |
commit | a01c5b354610331bdd684aa3632a1f692a44d6cb (patch) | |
tree | e4c05a67ad9fdcd6c4a0669b2f8eb0e4e9d3e6dd /roverlay/packageinfo.py | |
parent | roverlay/interface: in-code documentation (diff) | |
download | R_overlay-a01c5b354610331bdd684aa3632a1f692a44d6cb.tar.gz R_overlay-a01c5b354610331bdd684aa3632a1f692a44d6cb.tar.bz2 R_overlay-a01c5b354610331bdd684aa3632a1f692a44d6cb.zip |
fix versiontuple (again)
The le/lt/ge/gt comparision functions were completely wrong, which caused
selfdep validation to misbehave. Checking "(0,97) <= (1,1,2)" always returned
False (but 0 < 1!), whereas "(1,1,2) >= (0,97)" returned False, too (which is
be correct, but "neither less nor greater nor equal" makes no sense at all).
In a second (incremental) run, all comparisions would then evaluate to true,
because PackageInfo created normal tuples for scanned ebuilds, for which
IntVersionTuple returns NotImplemented (when comparing).
And bool( NotImplemented ) <=> True,
so even IntVersionTuple(1,1) was "less than" tuple(0,0).
This commit fixes this issue.
Diffstat (limited to 'roverlay/packageinfo.py')
-rw-r--r-- | roverlay/packageinfo.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/roverlay/packageinfo.py b/roverlay/packageinfo.py index 0224d6c..feee360 100644 --- a/roverlay/packageinfo.py +++ b/roverlay/packageinfo.py @@ -108,7 +108,7 @@ class PackageInfo ( object ): 'has_suggests', )) _UPDATE_KEYS_SIMPLE_INITIAL = frozenset (( - 'package_filename', + 'package_filename', 'name', )) _UPDATE_KEYS_FILTER_NONE = frozenset (( 'src_uri_base', @@ -810,9 +810,10 @@ class PackageInfo ( object ): ) ) # non-digit chars in pv are unsupported, too - - self._info ['version'] = tuple ( int ( z ) for z in pv.split ( '.' ) ) - self._info ['rev'] = int ( pr_str ) if pr_str else 0 + self._info ['version'] = roverlay.versiontuple.IntVersionTuple ( + int ( z ) for z in pv.split ( '.' ) + ) + self._info ['rev'] = int ( pr_str ) if pr_str else 0 self._info ['ebuild_verstr'] = pvr # --- end of _use_pvr (...) --- |