From: Zac Medico Date: Sat, 11 Sep 2010 19:48:44 +0000 (-0700) Subject: When fetching distfiles inside digestgen(), ignore conditional parts X-Git-Tag: v2.2_rc80 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=fd3f18634c4039d73d72554e0c8bb2817ccf753e;p=portage.git 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. --- 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(