diff options
author | Eli Schwartz <eschwartz93@gmail.com> | 2023-10-22 12:53:23 -0400 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-10-22 23:09:32 +0100 |
commit | bb82666b48e18f448661a1a8bf6a39b773cc4b1c (patch) | |
tree | 812f15587e8ae9a883d46f70faa1173fe0342a6c /lib/_emerge/depgraph.py | |
parent | MergeProcess: Support QueryCommand with spawn start method (diff) | |
download | gentoo-portage-bb82666b48e18f448661a1a8bf6a39b773cc4b1c.tar.xz gentoo-portage-bb82666b48e18f448661a1a8bf6a39b773cc4b1c.zip |
emerge: avoid spamming too much info about unused binpkgs
Specifically:
- the binhost might have multiple binpkgs for the same cpv, same USE
flags, but with different build ids, in which case the same line is
repeated twice
- many packages can be participating in the recursive deptree, but not
get selected for actual merging, and may not even be installed at all;
these were still reported as mismatched-USE although the packages
themselves were not shown in show_merge_list
Both cases are useless noise. Prune them before printing a status
report.
Before:
```
Local copy of remote index is up-to-date and will be used.
Local copy of remote index is up-to-date and will be used.
These are the packages that would be merged, in order:
Calculating dependencies... done!
Dependency resolution took 17.29 s.
[binary U ] sys-apps/hwdata-0.374-1 [0.373]
[binary r U ] dev-libs/libsodium-1.0.19-r1-1 [1.0.18_p20220618]
[binary U ] net-dns/libidn2-2.3.4-r1-1 [2.3.4]
[ebuild R ] dev-python/fs-2.4.16 PYTHON_TARGETS="(-python3_12%*)"
[ebuild U ] sys-apps/iproute2-6.5.0 [6.4.0]
[binary U ] media-video/ffmpeg-6.0-r9-2 [6.0-r6]
[ebuild rR ] app-editors/vim-9.0.1627
The following packages are causing rebuilds:
(dev-libs/libsodium-1.0.19-r1-1:0/26::gentoo, binary scheduled for merge) causes rebuilds for:
(app-editors/vim-9.0.1627:0/0::gentoo, ebuild scheduled for merge)
!!! The following binary packages have been ignored due to non matching USE:
=app-shells/bash-5.1_p16-r6 -plugins
=sys-apps/util-linux-2.38.1-r2 -caps split-usr
=sys-apps/util-linux-2.38.1-r2 -caps split-usr
=sys-process/procps-3.3.17-r2 split-usr
=sys-process/procps-3.3.17-r2 split-usr -systemd
=app-editors/vim-9.0.1627 -python
=app-editors/vim-9.0.1627 -python
=dev-lang/python-3.11.5 -lto -pgo
=dev-lang/python-3.11.5 -lto -pgo
=dev-lang/python-3.11.5 -lto -pgo
=media-fonts/noto-20230831 X
=net-misc/networkmanager-1.42.6-r2 bluetooth gtk-doc ppp
=net-misc/networkmanager-1.42.6-r2 bluetooth gtk-doc ppp
=net-misc/networkmanager-1.42.6-r2 bluetooth gtk-doc ppp
=net-misc/networkmanager-1.42.6-r2 bluetooth gtk-doc ppp
=sys-devel/gdb-13.2-r1 -lzma nls -source-highlight -xxhash -zstd
=x11-base/xorg-server-21.1.8-r2 -xvfb
=media-libs/libsdl2-2.28.3 gles2 pulseaudio wayland
=media-libs/libsdl2-2.28.3 gles2 pipewire pulseaudio wayland
=sys-devel/clang-16.0.6 abi_x86_32
=sys-devel/clang-16.0.6 -xml
=app-arch/zstd-1.5.5 split-usr
=app-arch/zstd-1.5.5 split-usr
=sys-apps/sandbox-2.38 -abi_x86_32
=dev-python/certifi-3021.3.16-r3 -python_targets_python3_12
=dev-python/certifi-3021.3.16-r3 -python_targets_python3_12
=dev-libs/libffi-3.4.4-r1 abi_x86_32
=sys-libs/ncurses-6.4_p20230401 abi_x86_32 -gpm split-usr
=sys-libs/readline-8.1_p2-r1 split-usr
=dev-db/sqlite-3.43.2 -icu
=dev-libs/icu-73.2 abi_x86_32
=sys-libs/gpm-1.20.7-r5 abi_x86_32 split-usr
=app-crypt/pinentry-1.2.1-r3 keyring qt5 wayland
=dev-libs/glib-2.76.4 sysprof
=sys-apps/systemd-253.11 split-usr
=dev-libs/libxml2-2.11.5 abi_x86_32
=dev-libs/libxml2-2.11.5 -icu
=media-libs/mesa-23.1.8 video_cards_intel video_cards_nouveau
=media-libs/mesa-23.1.8 video_cards_intel video_cards_nouveau
=media-libs/mesa-23.1.8 video_cards_intel video_cards_nouveau
=media-libs/mesa-23.1.8 video_cards_intel video_cards_nouveau
=media-libs/mesa-23.1.8 video_cards_intel video_cards_nouveau
=x11-libs/libxkbcommon-1.5.0 wayland
=x11-libs/libxkbcommon-1.5.0 wayland
=x11-libs/libxkbcommon-1.5.0 wayland
=sys-devel/llvm-16.0.6 abi_x86_32
=sys-devel/llvm-16.0.6 -xml
=x11-misc/xdg-utils-1.1.3_p20210805-r1 gnome
=dev-libs/libpcre2-10.42-r1 split-usr
=sys-auth/polkit-122-r1 kde
=net-libs/nghttp2-1.57.0 -systemd -xml
=sys-libs/glibc-2.37-r7 -multilib -stack-realign -systemd
=app-crypt/gpgme-1.21.0 -qt5
=sys-devel/clang-runtime-16.0.6 -abi_x86_32
=media-sound/mpg123-1.31.3-r1 pulseaudio
=dev-libs/libpcre-8.45-r2 split-usr
=net-wireless/wpa_supplicant-2.10-r3 qt5
=media-libs/gst-plugins-base-1.20.6 wayland
=media-libs/gst-plugins-base-1.20.6 theora wayland
=media-libs/gst-plugins-base-1.20.6 wayland
=net-libs/libproxy-0.5.3 kde
=gnome-base/gvfs-1.50.6 gnome-online-accounts keyring
=gnome-base/gvfs-1.50.6 gnome-online-accounts keyring
=sys-libs/libblockdev-2.28-r1 introspection
=dev-libs/libdbusmenu-16.04.0-r2 gtk
=dev-libs/libdbusmenu-16.04.0-r2 gtk
=dev-python/css-parser-1.0.9 -python_targets_python3_12
=dev-qt/qtbase-6.5.2-r2 nls wayland
=dev-qt/qtwebengine-6.5.2-r1 pulseaudio qml screencast
=dev-qt/qtwebengine-6.5.2-r1 pulseaudio qml screencast
=dev-qt/qtwebchannel-6.5.2-r2 qml
=app-arch/unzip-6.0_p27-r1 -natspec
=app-text/liblangtag-0.6.4 introspection
=app-text/liblangtag-0.6.4 introspection
=sys-apps/groff-1.22.4 -X
=virtual/tmpfiles-0-r5 -systemd
=sys-apps/systemd-utils-253.11-r1 split-usr
=virtual/libcrypt-2-r1 -abi_x86_32
=virtual/udev-217-r7 -systemd
=net-misc/openssh-9.4_p1-r1 -X
=dev-libs/libusb-1.0.26 split-usr
=media-video/pipewire-0.3.80 bluetooth sound-server
=media-video/pipewire-0.3.80 bluetooth sound-server
=x11-misc/mate-notification-daemon-1.26.0-r1 wayland
=x11-misc/mate-notification-daemon-1.26.0-r1 wayland
=x11-misc/mate-notification-daemon-1.26.0-r1 wayland
=kde-plasma/plasma-workspace-5.27.8-r1 screencast
=kde-plasma/plasma-workspace-5.27.8-r1 screencast
=kde-plasma/plasma-workspace-5.27.8-r1 screencast
=sys-devel/llvm-15.0.7-r3 abi_x86_32
NOTE: The --binpkg-respect-use=n option will prevent emerge
from ignoring these binary packages if possible.
Using --binpkg-respect-use=y will silence this warning.
Would you like to merge these packages? [Yes/No]
```
After:
```
Local copy of remote index is up-to-date and will be used.
Local copy of remote index is up-to-date and will be used.
These are the packages that would be merged, in order:
Calculating dependencies... done!
Dependency resolution took 17.25 s.
[binary U ] sys-apps/hwdata-0.374-1 [0.373]
[binary r U ] dev-libs/libsodium-1.0.19-r1-1 [1.0.18_p20220618]
[binary U ] net-dns/libidn2-2.3.4-r1-1 [2.3.4]
[ebuild R ] dev-python/fs-2.4.16 PYTHON_TARGETS="(-python3_12%*)"
[ebuild U ] sys-apps/iproute2-6.5.0 [6.4.0]
[binary U ] media-video/ffmpeg-6.0-r9-2 [6.0-r6]
[ebuild rR ] app-editors/vim-9.0.1627
The following packages are causing rebuilds:
(dev-libs/libsodium-1.0.19-r1-1:0/26::gentoo, binary scheduled for merge) causes rebuilds for:
(app-editors/vim-9.0.1627:0/0::gentoo, ebuild scheduled for merge)
!!! The following binary packages have been ignored due to non matching USE:
=sys-apps/iproute2-6.5.0 split-usr
=app-editors/vim-9.0.1627 -python
NOTE: The --binpkg-respect-use=n option will prevent emerge
from ignoring these binary packages if possible.
Using --binpkg-respect-use=y will silence this warning.
Would you like to merge these packages? [Yes/No]
```
Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
Closes: https://github.com/gentoo/portage/pull/1148
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'lib/_emerge/depgraph.py')
-rw-r--r-- | lib/_emerge/depgraph.py | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py index deab51718b5c..85845dc1e2f7 100644 --- a/lib/_emerge/depgraph.py +++ b/lib/_emerge/depgraph.py @@ -1232,25 +1232,38 @@ class depgraph: self._show_ignored_binaries_changed_deps(ignored_binaries["changed_deps"]) def _show_ignored_binaries_respect_use(self, respect_use): - writemsg( - "\n!!! The following binary packages have been ignored " - + "due to non matching USE:\n\n", - noiselevel=-1, - ) - + seen = {} + messages = [] + merging = {pkg.cpv for pkg in self._dynamic_config._displayed_list} for pkg, flags in respect_use.items(): + # Don't include recursive deps which aren't in the merge list anyway. + if pkg.cpv not in merging: + continue flag_display = [] for flag in sorted(flags): if flag not in pkg.use.enabled: flag = "-" + flag flag_display.append(flag) flag_display = " ".join(flag_display) - # The user can paste this line into package.use - writemsg(f" ={pkg.cpv} {flag_display}", noiselevel=-1) - if pkg.root_config.settings["ROOT"] != "/": - writemsg(f" # for {pkg.root}", noiselevel=-1) - writemsg("\n", noiselevel=-1) + # We don't want to list the same USE flags for multiple build IDs + if pkg.cpv not in seen or flag_display not in seen[pkg.cpv]: + seen.setdefault(pkg.cpv, set()).add(flag_display) + # The user can paste this line into package.use + messages.append(f" ={pkg.cpv} {flag_display}") + if pkg.root_config.settings["ROOT"] != "/": + messages.append(f" # for {pkg.root}") + messages.append("\n") + + if not messages: + return + writemsg( + "\n!!! The following binary packages have been ignored " + + "due to non matching USE:\n\n", + noiselevel=-1, + ) + for line in messages: + writemsg(line, noiselevel=-1) msg = [ "", "NOTE: The --binpkg-respect-use=n option will prevent emerge", |