From fd3f18634c4039d73d72554e0c8bb2817ccf753e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 11 Sep 2010 12:48:44 -0700 Subject: When fetching distfiles inside digestgen(), 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. --- pym/portage/package/ebuild/digestgen.py | 13 ++++++++++--- 1 file 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( -- cgit v1.2.3-1-g7c22