summaryrefslogtreecommitdiffstats
path: root/pym/portage/package/ebuild/digestgen.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage/package/ebuild/digestgen.py')
-rw-r--r--pym/portage/package/ebuild/digestgen.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/pym/portage/package/ebuild/digestgen.py b/pym/portage/package/ebuild/digestgen.py
index d6ac6fd70..9408b1456 100644
--- a/pym/portage/package/ebuild/digestgen.py
+++ b/pym/portage/package/ebuild/digestgen.py
@@ -13,6 +13,7 @@ portage.proxy.lazyimport.lazyimport(globals(),
from portage import os
from portage.const import MANIFEST2_REQUIRED_HASH
from portage.dbapi.porttree import FetchlistDict
+from portage.dep import use_reduce
from portage.exception import InvalidDependString, FileNotFound, \
PermissionDenied, PortagePackageException
from portage.localization import _
@@ -108,9 +109,15 @@ def digestgen(myarchives=None, mysettings=None, myportdb=None):
for cpv in distfiles_map[myfile]:
uris.update(myportdb.getFetchMap(
cpv, mytree=mytree)[myfile])
- restrict_fetch = 'fetch' in \
- myportdb.aux_get(cpv, ['RESTRICT'],
- mytree=mytree)[0].split()
+ restrict = myportdb.aux_get(cpv, ['RESTRICT'],
+ mytree=mytree)[0]
+ # Here we ignore conditional parts of RESTRICT since
+ # they don't apply unconditionally. Assume such
+ # conditionals only apply on the client side where
+ # digestgen() does not need to be called.
+ restrict = use_reduce(restrict,
+ flat=True, matchnone=True)
+ restrict_fetch = 'fetch' in restrict
try:
st = os.stat(os.path.join(