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.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 8BC2215800F for ; Sat, 18 Feb 2023 00:00:23 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 96639E07E2; Sat, 18 Feb 2023 00:00:21 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 7B160E07E2 for ; Sat, 18 Feb 2023 00:00:21 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 77CA0340F07 for ; Sat, 18 Feb 2023 00:00:20 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id BD2D18B3 for ; Sat, 18 Feb 2023 00:00:18 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1676678412.cdc8191e17e7dd1a6af1579ee2514a69811cf97b.sam@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: /, lib/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: NEWS lib/_emerge/PackageMerge.py X-VCS-Directories: lib/_emerge/ / X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: cdc8191e17e7dd1a6af1579ee2514a69811cf97b X-VCS-Branch: master Date: Sat, 18 Feb 2023 00:00:18 +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: eef34864-6f3e-47f5-af19-41b46f6aefe9 X-Archives-Hash: cf5b6482fabe38153709724b310ab912 commit: cdc8191e17e7dd1a6af1579ee2514a69811cf97b Author: Benjamin Gordon chromium org> AuthorDate: Tue Feb 4 18:40:13 2020 +0000 Commit: Sam James gentoo org> CommitDate: Sat Feb 18 00:00:12 2023 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=cdc8191e emerge: Log completion of package installs The log currently shows Emerging/Installing progress messages, but it doesn't indicate when a package finishes. Since there can be dozens of installs in flight at once, this makes it nearly impossible to determine how long an individual package took. This adds a similar "Completed" line when the package merge completes. Closes: https://github.com/gentoo/portage/pull/987 Reviewed-by: Mike Frysinger chromium.org> Reviewed-by: Chris McDonald chromium.org> Signed-off-by: Benjamin Gordon chromium.org> Signed-off-by: Matt Turner gentoo.org> Signed-off-by: Sam James gentoo.org> NEWS | 2 ++ lib/_emerge/PackageMerge.py | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/NEWS b/NEWS index fbc847c37..8a4d95144 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,8 @@ Features: * install-qa-check.d: 60pkgconfig: add opt-in QA_PKGCONFIG_VERSION check +* emerge: Log completion of package installs. + Bug fixes: * gpkg: Handle out-of-space errors (bug #891391). diff --git a/lib/_emerge/PackageMerge.py b/lib/_emerge/PackageMerge.py index f9e6bf8fe..82725c66a 100644 --- a/lib/_emerge/PackageMerge.py +++ b/lib/_emerge/PackageMerge.py @@ -58,5 +58,25 @@ class PackageMerge(CompositeTask): def _install_exit(self, task): self.postinst_failure = getattr(task, "postinst_failure", None) + + pkg = self.merge.pkg + pkg_count = self.merge.pkg_count + + if self.postinst_failure: + action_desc = "Failed" + preposition = "in" + counter_str = "" + else: + action_desc = "Completed" + preposition = "to" + counter_str = "({} of {}) ".format( + colorize("MERGE_LIST_PROGRESS", str(pkg_count.curval)), + colorize("MERGE_LIST_PROGRESS", str(pkg_count.maxval)), + ) + + if self._should_show_status(): + msg = self._make_msg(pkg, action_desc, preposition, counter_str) + self.merge.statusMessage(msg) + self._final_exit(task) self.wait()