summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-08-01 00:47:23 +0000
committerZac Medico <zmedico@gentoo.org>2008-08-01 00:47:23 +0000
commitaf68d7d489e1e6a65e4262ef67fdd14f061cdcff (patch)
tree1f6c43387223f0acc17fcb6165cfbb74e180148a
parent0a1c9e82f925d820ab1020de244fcbb3262def91 (diff)
downloadportage-af68d7d489e1e6a65e4262ef67fdd14f061cdcff.tar.gz
portage-af68d7d489e1e6a65e4262ef67fdd14f061cdcff.tar.bz2
portage-af68d7d489e1e6a65e4262ef67fdd14f061cdcff.zip
Bug #233487 - Fix --fetch-all-uri breakage:
* Make --fetch-all-uri imply --fetchonly so that all the --fetchonly conditionals apply to --fetch-all-uri as well. * Add an EbuildFetcher.fetchall attribute, and also add the required support to portage.doebuild() for a "fetchall" phase that EbuildFetcher can invoke in the background via the ebuild(1) command. svn path=/main/trunk/; revision=11303
-rw-r--r--pym/_emerge/__init__.py13
-rw-r--r--pym/portage/__init__.py7
2 files changed, 16 insertions, 4 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index c99dfb09a..f002aa318 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -2227,7 +2227,7 @@ class MiscFunctionsProcess(SpawnProcess):
class EbuildFetcher(SpawnProcess):
- __slots__ = ("fetchonly", "pkg",)
+ __slots__ = ("fetchonly", "fetchall", "pkg",)
def _start(self):
@@ -2235,6 +2235,9 @@ class EbuildFetcher(SpawnProcess):
portdb = root_config.trees["porttree"].dbapi
ebuild_path = portdb.findname(self.pkg.cpv)
settings = root_config.settings
+ phase = "fetch"
+ if self.fetchall:
+ phase = "fetchall"
fetch_env = dict(settings.iteritems())
fetch_env["PORTAGE_NICENESS"] = "0"
@@ -2244,7 +2247,7 @@ class EbuildFetcher(SpawnProcess):
ebuild_binary = os.path.join(
settings["PORTAGE_BIN_PATH"], "ebuild")
- fetch_args = [ebuild_binary, ebuild_path, "fetch"]
+ fetch_args = [ebuild_binary, ebuild_path, phase]
debug = settings.get("PORTAGE_DEBUG") == "1"
if debug:
fetch_args.append("--debug")
@@ -2396,7 +2399,8 @@ class EbuildBuild(CompositeTask):
if self.background:
fetch_log = self.scheduler.fetch.log_file
- fetcher = EbuildFetcher(fetchonly=opts.fetchonly,
+ fetcher = EbuildFetcher(fetchall=opts.fetch_all_uri,
+ fetchonly=opts.fetchonly,
background=self.background, logfile=fetch_log,
pkg=pkg, scheduler=self.scheduler)
@@ -13399,6 +13403,9 @@ def emerge_main():
"--usepkg", "--usepkgonly"):
myopts.pop(opt, None)
+ if "--fetch-all-uri" in myopts:
+ myopts["--fetchonly"] = True
+
if "--skipfirst" in myopts and "--resume" not in myopts:
myopts["--resume"] = True
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index e3e38868a..f7abfe6c1 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -5061,7 +5061,8 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0,
clean_phases = ("clean", "cleanrm")
validcommands = ["help","clean","prerm","postrm","cleanrm","preinst","postinst",
- "config","info","setup","depend","fetch","digest",
+ "config", "info", "setup", "depend",
+ "fetch", "fetchall", "digest",
"unpack","compile","test","install","rpm","qmerge","merge",
"package","unmerge", "manifest"]
@@ -5076,6 +5077,10 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0,
writemsg("\n", noiselevel=-1)
return 1
+ if mydo == "fetchall":
+ fetchall = 1
+ mydo = "fetch"
+
if mydo not in clean_phases and not os.path.exists(myebuild):
writemsg("!!! doebuild: %s not found for %s\n" % (myebuild, mydo),
noiselevel=-1)