summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/portage/dbapi/porttree.py2
-rw-r--r--pym/portage/eclass_cache.py11
2 files changed, 9 insertions, 4 deletions
diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py
index 0ade59a19..a0b7d7e1f 100644
--- a/pym/portage/dbapi/porttree.py
+++ b/pym/portage/dbapi/porttree.py
@@ -424,7 +424,7 @@ class portdbapi(dbapi):
# snag mtime since we use it later, and to trigger stat failure
# if it doesn't exist
ebuild_hash.mtime
- except OSError:
+ except FileNotFound:
writemsg(_("!!! aux_get(): ebuild for " \
"'%s' does not exist at:\n") % (cpv,), noiselevel=-1)
writemsg("!!! %s\n" % ebuild_path, noiselevel=-1)
diff --git a/pym/portage/eclass_cache.py b/pym/portage/eclass_cache.py
index adfe69ae9..4a934f16f 100644
--- a/pym/portage/eclass_cache.py
+++ b/pym/portage/eclass_cache.py
@@ -9,7 +9,7 @@ import sys
import operator
from portage.util import normalize_path
import errno
-from portage.exception import PermissionDenied
+from portage.exception import FileNotFound, PermissionDenied
from portage import os
from portage import checksum
@@ -30,7 +30,12 @@ class hashed_path(object):
# the straight c api.
# thus use the defacto python compatibility work around;
# access via index, which guarantees you get the raw long.
- self.mtime = obj = os.stat(self.location)[stat.ST_MTIME]
+ try:
+ self.mtime = obj = os.stat(self.location)[stat.ST_MTIME]
+ except OSError as e:
+ if e.errno in (errno.ENOENT, errno.ESTALE):
+ raise FileNotFound(self.location)
+ raise
return obj
if not attr.islower():
# we don't care to allow .mD5 as an alias for .md5
@@ -113,7 +118,7 @@ class cache(object):
obj.eclass_dir = x
try:
mtime = obj.mtime
- except OSError:
+ except FileNotFound:
continue
ys=y[:-eclass_len]
if x == self._master_eclass_root: