From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 79F351382C5 for ; Sun, 16 May 2021 22:29:17 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 85954E0823; Sun, 16 May 2021 22:29:16 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 5D569E0823 for ; Sun, 16 May 2021 22:29:16 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 7E6C4340F71 for ; Sun, 16 May 2021 22:29:13 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id CC637643 for ; Sun, 16 May 2021 22:29:11 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <1621204035.e26a08896f098ff93530efcd2d77d60d2eff0257.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: lib/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: lib/_emerge/EbuildBuild.py lib/_emerge/Scheduler.py X-VCS-Directories: lib/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: e26a08896f098ff93530efcd2d77d60d2eff0257 X-VCS-Branch: master Date: Sun, 16 May 2021 22:29:11 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 53aab085-52ec-4786-a3f2-14f71e4c5faf X-Archives-Hash: 44fa97685fe7834833c4de795de1a265 commit: e26a08896f098ff93530efcd2d77d60d2eff0257 Author: James Stevenson gmail com> AuthorDate: Sun May 16 10:58:13 2021 +0000 Commit: Zac Medico gentoo org> CommitDate: Sun May 16 22:27:15 2021 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=e26a0889 emerge --fetchonly --quiet: use emerge-fetch.log when writable (bug 285614) Closes: https://github.com/gentoo/portage/pull/707 Bug: https://bugs.gentoo.org/285614 Signed-off-by: James Stevenson gmail.com> Signed-off-by: Zac Medico gentoo.org> lib/_emerge/EbuildBuild.py | 25 +++++++++++++++++++++---- lib/_emerge/Scheduler.py | 4 ++-- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/lib/_emerge/EbuildBuild.py b/lib/_emerge/EbuildBuild.py index aeb8a252b..db85b20b2 100644 --- a/lib/_emerge/EbuildBuild.py +++ b/lib/_emerge/EbuildBuild.py @@ -23,6 +23,7 @@ from portage.package.ebuild.digestcheck import digestcheck from portage.package.ebuild.doebuild import _check_temp_dir from portage.package.ebuild._spawn_nofetch import SpawnNofetchWithoutBuilddir from portage.util._async.AsyncTaskFuture import AsyncTaskFuture +from portage.util.path import first_existing class EbuildBuild(CompositeTask): @@ -160,16 +161,32 @@ class EbuildBuild(CompositeTask): self._default_final_exit) return + quiet_setting = settings.get("PORTAGE_QUIET", False) + fetch_log = None + logwrite_access = False + if quiet_setting: + fetch_log = os.path.join( + _emerge.emergelog._emerge_log_dir, "emerge-fetch.log" + ) + logwrite_access = os.access(first_existing(fetch_log), os.W_OK) + fetcher = EbuildFetcher( config_pool=self.config_pool, ebuild_path=self._ebuild_path, fetchall=self.opts.fetch_all_uri, fetchonly=self.opts.fetchonly, - background=False, - logfile=None, + background=quiet_setting if logwrite_access else False, + logfile=fetch_log if logwrite_access else None, pkg=self.pkg, - scheduler=self.scheduler) - self._start_task(fetcher, self._fetchonly_exit) + scheduler=self.scheduler, + ) + + if fetch_log and logwrite_access: + fetcher.addExitListener(self._fetchonly_exit) + self._task_queued(fetcher) + self.scheduler.fetch.schedule(fetcher, force_queue=True) + else: + self._start_task(fetcher, self._fetchonly_exit) return self._build_dir = EbuildBuildDir( diff --git a/lib/_emerge/Scheduler.py b/lib/_emerge/Scheduler.py index d3528ee68..5146863ab 100644 --- a/lib/_emerge/Scheduler.py +++ b/lib/_emerge/Scheduler.py @@ -560,7 +560,7 @@ class Scheduler(PollScheduler): if pargs: self.status = pargs[0] - def _schedule_fetch(self, fetcher): + def _schedule_fetch(self, fetcher, force_queue=False): """ Schedule a fetcher, in order to control the number of concurrent fetchers. If self._max_jobs is greater than 1 then the fetch @@ -571,7 +571,7 @@ class Scheduler(PollScheduler): would be required before it would be possible to enable concurrent fetching within the parallel-fetch queue. """ - if self._max_jobs > 1: + if self._max_jobs > 1 and not force_queue: fetcher.start() else: self._task_queues.fetch.addFront(fetcher)