summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-01-12 08:18:19 +0000
committerZac Medico <zmedico@gentoo.org>2009-01-12 08:18:19 +0000
commit9bdcb111d8d493d18ecf3ef4085cbbcc203ab9a4 (patch)
tree54cdca64276cf9b19355f44e1f8dc16d1ee59142 /pym/_emerge
parent082d83e8523d654447b3be5bc123e8c2cc44415e (diff)
downloadportage-9bdcb111d8d493d18ecf3ef4085cbbcc203ab9a4.tar.gz
portage-9bdcb111d8d493d18ecf3ef4085cbbcc203ab9a4.tar.bz2
portage-9bdcb111d8d493d18ecf3ef4085cbbcc203ab9a4.zip
Bug #254114 - Fix ValueError triggered by missing COUNTER. Also, fix broken
mtime check inside FakeVartree._sync(). (trunk r12388) svn path=/main/branches/2.1.6/; revision=12455
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/__init__.py22
1 files changed, 18 insertions, 4 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index f28baffea..373979b23 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -1028,6 +1028,9 @@ class FakeVartree(portage.vartree):
self.root = real_vartree.root
self.settings = real_vartree.settings
mykeys = list(real_vartree.dbapi._aux_cache_keys)
+ if "_mtime_" not in mykeys:
+ mykeys.append("_mtime_")
+ self._db_keys = mykeys
self._pkg_cache = pkg_cache
self.dbapi = PackageVirtualDbapi(real_vartree.settings)
vdb_path = os.path.join(self.root, portage.VDB_PATH)
@@ -1166,8 +1169,12 @@ class FakeVartree(portage.vartree):
pkg = pkg_vardb.get(pkg_hash_key)
if pkg is not None:
counter, mtime = real_vardb.aux_get(cpv, validation_keys)
+ try:
+ counter = long(counter)
+ except ValueError:
+ counter = 0
- if counter != pkg.metadata["COUNTER"] or \
+ if counter != pkg.counter or \
mtime != pkg.mtime:
pkg_vardb.cpv_remove(pkg)
aux_get_history.discard(pkg.cpv)
@@ -1189,11 +1196,18 @@ class FakeVartree(portage.vartree):
def _pkg(self, cpv):
root_config = self._root_config
real_vardb = root_config.trees["vartree"].dbapi
- db_keys = list(real_vardb._aux_cache_keys)
pkg = Package(cpv=cpv, installed=True,
- metadata=izip(db_keys, real_vardb.aux_get(cpv, db_keys)),
+ metadata=izip(self._db_keys,
+ real_vardb.aux_get(cpv, self._db_keys)),
root_config=root_config,
type_name="installed")
+
+ try:
+ mycounter = long(pkg.metadata["COUNTER"])
+ except ValueError:
+ mycounter = 0
+ pkg.metadata["COUNTER"] = str(mycounter)
+
return pkg
def grab_global_updates(portdir):
@@ -1540,7 +1554,7 @@ class _PackageMetadataWrapper(_PackageMetadataWrapperBase):
def _set_counter(self, k, v):
if isinstance(v, basestring):
try:
- v = int(v.strip())
+ v = long(v.strip())
except ValueError:
v = 0
self._pkg.counter = v