aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Erdmann <dywi@mailerd.de>2013-07-05 18:43:19 +0200
committerAndré Erdmann <dywi@mailerd.de>2013-07-05 18:43:19 +0200
commit63c708b21af0b6aea9ffb881f24a98a3e2281209 (patch)
tree97be6c852dec31dbecb0d980e2f64706271a2bc5 /roverlay/packageinfo.py
parenttests/depres: (try to) load rule files (diff)
downloadR_overlay-63c708b21af0b6aea9ffb881f24a98a3e2281209.tar.gz
R_overlay-63c708b21af0b6aea9ffb881f24a98a3e2281209.tar.bz2
R_overlay-63c708b21af0b6aea9ffb881f24a98a3e2281209.zip
packageinfo: init_selfdep_validate(), versiontuple
versiontuple implements comparision operations (==,!=,<=,<,>=,>).
Diffstat (limited to 'roverlay/packageinfo.py')
-rw-r--r--roverlay/packageinfo.py28
1 files changed, 23 insertions, 5 deletions
diff --git a/roverlay/packageinfo.py b/roverlay/packageinfo.py
index bef9327..1bcf495 100644
--- a/roverlay/packageinfo.py
+++ b/roverlay/packageinfo.py
@@ -18,6 +18,7 @@ import os.path
import logging
import roverlay.digest
+import roverlay.versiontuple
import roverlay.db.distmap
from roverlay import config, strutil
@@ -128,11 +129,11 @@ class PackageInfo ( object ):
* **initial_info -- passed to update ( **kw )
"""
self._info = dict()
- self.valid = True
self.readonly = False
self.logger = LOGGER
self.selfdeps = None
+ #self.selfdeps_valid = UNDEF
#self.overlay_package_ref = None
#self._evars = dict()
#self._lazy_actions = list()
@@ -141,13 +142,26 @@ class PackageInfo ( object ):
self.update ( **initial_info )
# --- end of __init__ (...) ---
+ def init_selfdep_validate ( self ):
+ """Tells this packageinfo to initialize selfdep validation.
+ Returns True on success (=has selfdeps), else False.
+ """
+ self.selfdeps_valid = True
+ if self.selfdeps:
+ for selfdep in self.selfdeps:
+ selfdep.prepare_selfdep_reduction()
+ return True
+ else:
+ return False
+ # --- end of init_selfdep_validate (...) ---
+
def has_valid_selfdeps ( self ):
"""Returns True if all selfdeps of this package are valid."""
- v = self.valid
+ v = self.selfdeps_valid
if v is True and self.selfdeps is not None and not all (
map ( lambda d: d.deps_satisfiable(), self.selfdeps )
):
- self.valid = False
+ self.selfdeps_valid = False
return False
return v
# --- end of has_valid_selfdeps (...) ---
@@ -528,7 +542,9 @@ class PackageInfo ( object ):
"""
rev = self._info['rev'] + 1 if newrev is None else int ( newrev )
rev_str = ( '-r' + str ( rev ) ) if rev > 0 else ''
- vstr = '.'.join ( str ( k ) for k in self ['version'] ) + rev_str
+ vstr = (
+ '.'.join ( str ( k ) for k in self._info['version'] ) + rev_str
+ )
# preserve destpath directory
# (this allows to handle paths like "a/b.tar/pkg.tgz" properly)
@@ -735,7 +751,9 @@ class PackageInfo ( object ):
try:
version = tuple ( int ( z ) for z in version_str.split ( '.' ) )
- self._info ['version'] = version
+ self._info ['version'] = (
+ roverlay.versiontuple.IntVersionTuple ( version )
+ )
except ValueError as ve:
# version string is malformed, cannot use it
self.logger.error (