commit: 81f2615d603108def204041c5d3e3e1058ada4c1 Author: Jethro Donaldson <devel <AT> jro <DOT> nz> AuthorDate: Wed Dec 3 10:36:16 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Feb 16 06:54:15 2026 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=81f2615d
output: add 'g' symbol to indicate remote binary with --getbinpkg Provide visual feedback to the user as to whether a selected binary package is local or remote. The symbol 'g' is used to indicate that a remote binary will be fetched due to --getbinpkg, and is shown in the same place as 'f' or 'F'. These flags represent a similar concept yet should never shown for remote binaries, but will still be shown preferentially should they somehow be applicable. Signed-off-by: Jethro Donaldson <devel <AT> jro.nz> Part-of: https://github.com/gentoo/portage/pull/1527 Signed-off-by: Sam James <sam <AT> gentoo.org> lib/_emerge/Package.py | 6 ++++++ lib/_emerge/resolver/output.py | 3 +++ lib/_emerge/resolver/output_helpers.py | 8 ++++++-- man/emerge.1 | 1 + 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/_emerge/Package.py b/lib/_emerge/Package.py index 79011380d5..c397d10508 100644 --- a/lib/_emerge/Package.py +++ b/lib/_emerge/Package.py @@ -41,6 +41,7 @@ class Package(Task): "iuse", "mtime", "pf", + "remote", "root", "slot", "sub_slot", @@ -116,6 +117,11 @@ class Package(Task): raise db = self.root_config.trees["porttree"].dbapi + if self.type_name == "binary": + self.remote = db.bintree.isremote(self.cpv) + else: + self.remote = False + self.cpv = _pkg_str( self.cpv, metadata=self._metadata, settings=self.root_config.settings, db=db ) diff --git a/lib/_emerge/resolver/output.py b/lib/_emerge/resolver/output.py index 780642c6d2..5a36dc2faf 100644 --- a/lib/_emerge/resolver/output.py +++ b/lib/_emerge/resolver/output.py @@ -677,6 +677,9 @@ class Display: if pkg_info.ebuild_path is not None: self.restrict_fetch_list[pkg] = pkg_info + if pkg.type_name == "binary": + pkg_info.attr_display.remote_binary = pkg.remote + if self.vardb.cpv_exists(pkg.cpv): # Do a cpv match first, in case the SLOT has changed. pkg_info.previous_pkg = self.vardb.match_pkgs(Atom("=" + pkg.cpv))[0] diff --git a/lib/_emerge/resolver/output_helpers.py b/lib/_emerge/resolver/output_helpers.py index fe8daafd70..a5d082d8e0 100644 --- a/lib/_emerge/resolver/output_helpers.py +++ b/lib/_emerge/resolver/output_helpers.py @@ -18,6 +18,7 @@ from portage.output import ( colorize, create_color_func, green, + fuchsia, red, teal, turquoise, @@ -596,6 +597,7 @@ class PkgAttrDisplay(SlotObject): "new_slot", "new_version", "replace", + "remote_binary", ) def __str__(self): @@ -622,11 +624,13 @@ class PkgAttrDisplay(SlotObject): else: output.append(" ") - if self.fetch_restrict or self.fetch_restrict_satisfied: + if self.fetch_restrict or self.fetch_restrict_satisfied or self.remote_binary: if self.fetch_restrict_satisfied: output.append(green("f")) - else: + elif self.fetch_restrict: output.append(red("F")) + else: + output.append(fuchsia("g")) else: output.append(" ") diff --git a/man/emerge.1 b/man/emerge.1 index 2006f1ba2e..4ed28e67b1 100644 --- a/man/emerge.1 +++ b/man/emerge.1 @@ -861,6 +861,7 @@ r reinstall (forced for some reason, possibly due to slot or sub\-slot) R replacing (remerging same version) F fetch restricted (must be manually downloaded) f fetch restricted (already downloaded) +g remote binary (automatically download from binhost) I interactive (requires user input) B blocked by another package (unresolved conflict) b blocked by another package (automatically resolved conflict)
