diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index 090d9e1..9449e6c 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -42,6 +42,7 @@ good = create_color_func("GOOD") bad = create_color_func("BAD") from portage.package.ebuild._ipc.QueryCommand import QueryCommand from portage.package.ebuild.doebuild import _check_temp_dir +from portage.package.ebuild._spawn_nofetch import spawn_nofetch from portage._sets import load_default_config, SETPREFIX from portage._sets.base import InternalPackageSet from portage.util import cmp_sort_key, writemsg, \ @@ -328,9 +329,24 @@ def action_build(settings, trees, mtimedb, if retval != os.EX_OK: return retval mergecount=0 - for x in mydepgraph.altlist(): - if isinstance(x, Package) and x.operation == "merge": + nofetch = [] + portdb = trees[settings['EROOT']]["porttree"].dbapi + for pkg in mydepgraph.altlist(): + if isinstance(pkg, Package) and pkg.operation == "merge": mergecount += 1 + if ('fetch' in pkg.metadata.restrict and + portdb.getfetchsizes( + pkg.cpv, + useflags=mydepgraph._pkg_use_enabled(pkg), + myrepo=pkg.repo)): + nofetch.append(pkg) + for pkg in nofetch: + print() + print("Fetch instructions for %s:" % (pkg.cpv,)) + spawn_nofetch( + portdb, + portdb.findname(pkg.cpv, myrepo=pkg.repo), + settings=settings) if mergecount==0: sets = trees[settings['EROOT']]['root_config'].sets