<slyfox> looks like portage is too eager at rebuilding even when subslot does not change: $ emerge -avt1 dev-haskell/network These are the packages that would be merged, in reverse order: Calculating dependencies... done! [ebuild rR ~] dev-haskell/web-routes-0.27.2:0/0.27.2::gentoo-haskell USE="doc hscolour {test} -hoogle -profile" 0 kB [ebuild rR ~] dev-haskell/missingh-1.2.0.0:0/1.2.0.0::gentoo-haskell USE="doc hscolour {test} -hoogle -profile" 0 kB [ebuild rR ~] dev-haskell/authenticate-1.3.1.2:0/1.3.1.2::gentoo-haskell USE="doc hscolour -hoogle -profile" 0 kB [ebuild rR ~] app-text/pandoc-1.9.4.5:0/1.9.4.5::gentoo-haskell USE="doc hscolour {test} -hoogle -profile" 0 kB [ebuild rR ~] dev-haskell/http-4000.2.6:0/4000.2.6::gentoo-haskell USE="doc hscolour -hoogle -profile" 0 kB [ebuild rR ~] dev-haskell/http-conduit-1.7.0:0/1.7.0::gentoo-haskell USE="doc hscolour {test} -hoogle -profile" 0 kB [ebuild rR ~] dev-haskell/network-2.3.1.0::gentoo-haskell USE="doc hscolour {test} -hoogle -profile" 0 kB Total: 7 packages (7 reinstalls), Size of downloads: 0 kB WARNING: One or more updates have been skipped due to a dependency conflict: dev-haskell/network:0 (dev-haskell/network-2.4.0.1::gentoo-haskell, ebuild scheduled for merge) conflicts with <dev-haskell/network-2.4 required by (dev-haskell/dbus-core-0.9.2.1::gentoo-haskell, installed) (dev-haskell/network-2.4.0.1::gentoo-haskell, ebuild scheduled for merge) conflicts with >=dev-haskell/network-2.2:0/0= required by (dev-vcs/darcs-2.8.2::gentoo-haskell, installed) (dev-haskell/network-2.4.0.1::gentoo-haskell, ebuild scheduled for merge) conflicts with <dev-haskell/network-2.4:0/0= required by (dev-vcs/darcs-2.8.2::gentoo-haskell, installed) <zmedico> you can probably solve that by masking the updates that trigger the slot conflict. what happens is that it's trying to do the upgrades + rebuilds and then the slot conflict interrupts it <zmedico> maybe portage can handle it better by going back and searching for unneeded rebuilds after it solves the conflict
We may be able handle this case by simply discarding the rebuild backtrack parameters, and re-calculating the graph while remembering to skip the problematic updates.
This is fixed in git: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=222dfa56e8fb311f4bea54012bdfd5d1a474d56c
This is fixed in 2.1.11.31 and 2.2.0_alpha142.
It looks like we have some remaining cases where _slot_confict_backtrack can add installed packages to the runtime_pkg_mask and trigger unnecessary rebuilds since the code from commit 222dfa56e8fb311f4bea54012bdfd5d1a474d56c does not remove them from runtime_pkg_mask. This example unnecessary rebuild was posted in #gentoo-portage: > These are the packages that would be merged, in order: > > Calculating dependencies . ... .. ...... done! > [ebuild R ] dev-lang/erlang-22.3.4:0/22.3.4::gentoo USE="hipe kpoll ssl systemd wxwidgets -doc -emacs -java -libressl -odbc -sctp -tk" 0 KiB > > Total: 1 package (1 reinstall), Size of downloads: 0 KiB > > WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict: > > app-i18n/unicode-data:0 > > (app-i18n/unicode-data-13.0.0:0/0::gentoo, ebuild scheduled for merge) USE="" ABI_X86="(64)" conflicts with > =app-i18n/unicode-data-12.1* required by (gnome-extra/gucharmap-12.0.1-r1:2.90/2.90::gentoo, installed) USE="introspection -debug -test -vala" ABI_X86="(64)" > ^ ^^^^^ > > dev-lang/erlang:0 > > (dev-lang/erlang-23.0.2:0/23.0.2::gentoo, ebuild scheduled for merge) USE="hipe kpoll ssl systemd wxwidgets -doc -emacs -java -libressl -odbc -sctp -tk" ABI_X86="(64)" conflicts with > >=dev-lang/erlang-21:0/22.3.4=[ssl] required by (dev-lang/elixir-1.10.4:0/0::gentoo, installed) USE="-test" ABI_X86="(64)" > ^^^^^^^^^^ > <dev-lang/erlang-23.0[ssl] required by (net-misc/rabbitmq-server-3.8.4:0/0::gentoo, installed) USE="" ABI_X86="(64)" > ^ ^^^^ > > dev-python/rsa:0 > > (dev-python/rsa-4.2:0/0::gentoo, ebuild scheduled for merge) USE="-test" ABI_X86="(64)" PYTHON_TARGETS="python3_7 -python3_6 -python3_8 -python3_9" conflicts with > <dev-python/rsa-3.5.0.0[python_targets_python3_7(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-),-python_single_target_python3_8(-)] required by (dev-python/awscli-1.18.70:0/0::gentoo, installed) USE="-test" ABI_X86="(64)" PYTHON_TARGETS="python3_7 -python3_6 -python3_8" > ^ ^^^^^^^ > > dev-util/scons:0 > > (dev-util/scons-4.0.1:0/0::gentoo, ebuild scheduled for merge) USE="-doc -test" ABI_X86="(64)" PYTHON_TARGETS="python3_7 -python3_6 -python3_8" conflicts with > dev-util/scons[python_targets_python2_7] required by (games-puzzle/pingus-0.7.6-r2:0/0::gentoo, installed) USE="opengl -music" ABI_X86="(64)"
(In reply to Zac Medico from comment #4) > > WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict: > > > > app-i18n/unicode-data:0 > > > > (app-i18n/unicode-data-13.0.0:0/0::gentoo, ebuild scheduled for merge) USE="" ABI_X86="(64)" conflicts with > > =app-i18n/unicode-data-12.1* required by (gnome-extra/gucharmap-12.0.1-r1:2.90/2.90::gentoo, installed) USE="introspection -debug -test -vala" ABI_X86="(64)" > > ^ ^^^^^ > > I have been seeing this for many months now and failed at trying to fix it. Even though it doesn't seem to cause any harm it still feels like something is off. Are there any news about a possible fix?
(In reply to Stephan Menzel from comment #5) > I have been seeing this for many months now and failed at trying to fix it. > Even though it doesn't seem to cause any harm it still feels like something > is off. In order to fix things like this, it's helpful to first have a unit test that demonstrates the problem. That makes it easy to demonstrate when you have a working fix. > Are there any news about a possible fix? No, and I don't have a unit test to demonstrate the problem either.
Our unit test for the case fixed in commit 222dfa56e8fb311f4bea54012bdfd5d1a474d56c is the testSlotConflictRebuild method in this file: https://gitweb.gentoo.org/proj/portage.git/tree/lib/portage/tests/resolver/test_slot_conflict_rebuild.py
For what it's worth, here's my output of emerge --info: Portage 3.0.2 (python 3.7.8-final-0, default/linux/amd64/17.1/desktop/gnome/systemd, gcc-10.2.0, glibc-2.31-r6, 5.6.19-gentoo x86_64) ================================================================= System uname: Linux-5.6.19-gentoo-x86_64-Intel-R-_Core-TM-_i7-4720HQ_CPU_@_2.60GHz-with-gentoo-2.7 KiB Mem: 16341652 total, 11939956 free KiB Swap: 19226304 total, 19226304 free Timestamp of repository gentoo: Thu, 13 Aug 2020 06:35:45 +0000 Head commit of repository gentoo: f8b0c525f5f2949ebcc166e912db7f780841a1cd sh bash 5.0_p18 ld GNU ld (Gentoo 2.34 p6) 2.34.0 app-shells/bash: 5.0_p18::gentoo dev-java/java-config: 2.3.1::gentoo dev-lang/perl: 5.30.3-r1::gentoo dev-lang/python: 2.7.18-r1::gentoo, 3.6.11-r2::gentoo, 3.7.8-r2::gentoo, 3.8.5::gentoo, 3.9.0_rc1::gentoo dev-util/cmake: 3.18.1::gentoo dev-util/pkgconfig: 0.29.2::gentoo sys-apps/baselayout: 2.7::gentoo sys-apps/sandbox: 2.20::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r5::gentoo sys-devel/automake: 1.13.4-r2::gentoo, 1.16.2::gentoo sys-devel/binutils: 2.34-r2::gentoo sys-devel/gcc: 8.4.0-r1::gentoo, 9.3.0::gentoo, 10.2.0::gentoo sys-devel/gcc-config: 2.3.1::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.6::gentoo (virtual/os-headers) sys-libs/glibc: 2.31-r6::gentoo Repositories: gentoo location: /home/portage sync-type: git sync-uri: https://github.com/gentoo-mirror/gentoo priority: -1000 crossdev location: /usr/local/portage-crossdev masters: gentoo priority: 10 ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* @EULA @FREE @BINARY-REDISTRIBUTABLE NVIDIA-CUDA Oracle-BCLA-JavaSE Google-TOS OPERA-2014" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -mtune=native -march=native -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/easy-rsa /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -mtune=native -march=native -pipe -fpermissive" DISTDIR="/home/portage/distfiles" ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en de" MAKEOPTS="-j3" PKGDIR="/home/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" USE="X a52 aac aacs acl acpi aio alsa alsa-plugin amd64 berkdb bindist bluetooth boost branding bzip2 cacert cairo cdda cdr cg clang cli client cmake colord context contrib crypt cryptsetup cups curl dbus designer developer devhelp dig dri dts dvd dvdr eds egl emboss encode evo exif ffmpeg fftw flac fontconfig fonts foomatic fortran fuse gallium game-engine gconf gdbm gdm gif git glade glsl gmp gnome gnome-keyring gnome-online-accounts gnome-shell gnuefi gold gpg gpl gpm gstreamer gtk gtk3 hdf5 hpcups hpijs iconv icu introspection ios ipv6 java jpeg json lcms ldap libcxx libglvnd libkms libnotify libsecret libtirpc llvm lzma mad minizip mng mp3 mp4 mpeg multilib nautilus ncurses network networkmanager nls nptl ntfs ntfsdecrypt ntfsprogs ntp nvidia offensive ogg ogg123 opengl openmp pam pango pcre pdf plugin png policykit postproc ppds pulseaudio python python2_7 qml qt5 rar raw readline samba sdl seccomp secure-delete smbkrb5passwd sna spell split-usr sql sqlite ssh ssl startup-notification sudo svg symlink syslog system-boost system-cairo system-clang system-crontab system-ffmpeg system-harfbuzz system-icu system-jpeg system-jsoncpp system-leveldb system-libevent system-libmspack system-libs system-libyaml system-llvm system-lua system-sqlite system-ssl systemd tcpd threads tiff tracker truetype udev udisks unicode upower usb user-session uvm v4l v4l2 vala video vim vim-syntax vorbis vulkan wayland widgets wifi x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="intel8x0 i810 hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 sse3" CURL_SSL="nss" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="libinput synaptics touchpad mtrack" KERNEL="linux" L10N="de en en-US en-GB" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LLVM_TARGETS="X86" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2 php7-3" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="pypy3 python3_7" RUBY_TARGETS="ruby27" USERLAND="GNU" VIDEO_CARDS="nvidia intel i965 modesetting" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS my world set is: app-admin/gnome-system-log app-admin/sudo app-admin/sysstat app-arch/p7zip app-crypt/easy-rsa app-crypt/gentoo-keys app-dicts/aspell-de app-dicts/myspell-de app-doc/gimp-help app-editors/gvim app-editors/vim app-emulation/docker app-eselect/eselect-postgresql app-eselect/eselect-rails app-eselect/eselect-ruby app-eselect/eselect-timezone app-misc/logitech-applet app-office/libreoffice app-pda/libimobiledevice app-pda/usbmuxd app-portage/cpuid2cpuflags app-portage/eix app-portage/genlop app-portage/gentoolkit app-portage/layman app-portage/mirrorselect app-portage/repoman app-portage/ufed app-shells/gentoo-bashcomp app-vim/udev-syntax dev-cpp/gstreamermm dev-cpp/libglademm dev-cpp/tbb dev-db/redis dev-lang/mono dev-lang/perl dev-libs/cudnn dev-libs/libcgroup dev-python/awscli dev-python/ipython dev-python/lxml dev-python/pip dev-python/python-systemd dev-python/wheel dev-qt/qt-creator dev-qt/qtcharts dev-qt/qtmultimedia dev-qt/qtquickcontrols2 dev-texlive/texlive-fontsrecommended dev-util/anjuta dev-util/bazel dev-util/debugedit dev-util/glade dev-util/gnome-devel-docs dev-util/nemiver dev-util/nvidia-cuda-toolkit dev-util/pycharm-community dev-util/strace dev-util/valgrind dev-vcs/git dev-vcs/subversion games-misc/fortune-mod gnome-base/gnome gnome-extra/gnome-calendar gnome-extra/gnome-logs gnome-extra/seahorse-nautilus media-fonts/corefonts media-fonts/freefonts media-fonts/intlfonts media-fonts/mathematica-fonts media-fonts/opendesktop-fonts media-fonts/sil-gentium media-fonts/steamfonts media-fonts/x11fonts-jmk media-gfx/argyllcms media-gfx/gimp media-gfx/nvidia-cg-toolkit media-gfx/rawtherapee media-libs/gegl media-plugins/gimp-lqr media-plugins/gimp-resynthesizer media-sound/alsa-utils media-sound/rhythmbox media-video/mplayer net-analyzer/nmap net-dns/bind-tools net-fs/s3fs net-im/pidgin net-im/skypeforlinux net-misc/bridge-utils net-misc/dhcpcd net-misc/electrum net-misc/netkit-telnetd net-print/hplip net-vpn/networkmanager-openvpn net-vpn/openvpn net-wireless/iw net-wireless/wpa_supplicant sci-libs/clblast sys-apps/hwdata-gentoo sys-apps/systemd sys-apps/usermode-utilities sys-block/gparted sys-boot/efibootmgr sys-boot/grub sys-devel/clang sys-devel/gdb sys-devel/prelink sys-firmware/bluez-firmware sys-firmware/intel-microcode sys-firmware/nvidia-firmware sys-fs/cryptsetup sys-fs/exfat-utils sys-fs/fuse-exfat sys-fs/ntfs3g sys-kernel/gentoo-sources sys-kernel/linux-firmware virtual/jdk virtual/mysql virtual/opencl virtual/udev www-client/firefox www-client/opera www-client/vivaldi www-plugins/google-talkplugin x11-apps/xinput x11-apps/xinput_calibrator x11-apps/xrandr x11-base/xorg-drivers x11-drivers/nvidia-drivers x11-drivers/xf86-video-intel x11-misc/primus x11-misc/xdotool x11-plugins/pidgin-encryption x11-plugins/pidgin-gpg x11-plugins/pidgin-otr x11-plugins/pidgin-rhythmbox x11-plugins/pidgin-sipe x11-themes/gentoo-artwork x11-themes/gentoo-artwork-livecd x11-themes/gentoo10-backgrounds x11-themes/gnome-colors-themes x11-themes/light-themes x11-themes/murrine-themes x11-themes/pidgin-penguins-smileys I don't know if that helps. Cheers, Stephan
*** Bug 739648 has been marked as a duplicate of this bug. ***
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=8b9345976c95ff41c7f075f7917d498f77d7d155 commit 8b9345976c95ff41c7f075f7917d498f77d7d155 Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2020-08-30 22:18:35 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2020-08-30 22:38:42 +0000 test_slot_conflict_rebuild: Add dev-lang/go case for bug 439688 Demonstrate this unwanted dev-lang/go rebuild triggered by a missed update due to a slot conflict: [ebuild R ] dev-lang/go-1.14.7 WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict: dev-lang/go:0 (dev-lang/go-1.15:0/1.15::test_repo, ebuild scheduled for merge) USE="" conflicts with =dev-lang/go-1.14* required by (net-p2p/syncthing-1.3.4-r1:0/0::test_repo, installed) USE="" ^ ^^^^^ Bug: https://bugs.gentoo.org/439688 Bug: https://bugs.gentoo.org/739648 Signed-off-by: Zac Medico <zmedico@gentoo.org> .../tests/resolver/test_slot_conflict_rebuild.py | 64 +++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-)
Patch posted for review: https://archives.gentoo.org/gentoo-portage-dev/message/f3954fd373f37941f98b58a226a31f1a https://github.com/gentoo/portage/pull/611
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=67423a3606db72f45ffe4dec325253a30508bd9d commit 67423a3606db72f45ffe4dec325253a30508bd9d Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2020-08-30 23:21:25 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2020-08-30 23:39:41 +0000 dephgraph: Allow elimination of highest version after slot conflict (bug 439688) After a slot conflict occurs, allow the highest version to be eliminated from the graph when appropriate. This is needed for correct behavior in cases the highest version cannot be installed because an older version is required by some package. This reverts a change related to bug 531656 from commit a9064d08ef4c92a5d0d1bfb3dc8a01b7850812b0, and that change no longer appears to be necessary, since the unit tests related to bug 531656 now pass without it. Due to this change in slot conflict handling, the --changed-slot test case related to bug 456208 will now fail unless we use an @world update to trigger rebuilds, therefore fix it to do so. Bug: https://bugs.gentoo.org/439688 Signed-off-by: Zac Medico <zmedico@gentoo.org> lib/_emerge/depgraph.py | 9 --------- lib/portage/tests/resolver/test_slot_change_without_revbump.py | 4 ++-- lib/portage/tests/resolver/test_slot_conflict_rebuild.py | 3 --- 3 files changed, 2 insertions(+), 14 deletions(-)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=abdafd44b842135d6a06cf243720f878277ccbe2 commit abdafd44b842135d6a06cf243720f878277ccbe2 Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2020-08-31 06:54:49 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2020-08-31 07:08:07 +0000 sys-apps/portage: Bump to version 3.0.5 #439688 depgraph: Allow elimination of highest version after slot conflict, which prevents unecessary rebuilds for dev-lang/go after backtracking for a missed update #739540 Use cached portage.getpid() function to avoid syscalls Bug: https://bugs.gentoo.org/739718 Bug: https://bugs.gentoo.org/439688 Bug: https://bugs.gentoo.org/739540 Package-Manager: Portage-3.0.5, Repoman-3.0.1 Signed-off-by: Zac Medico <zmedico@gentoo.org> sys-apps/portage/Manifest | 1 + sys-apps/portage/portage-3.0.5.ebuild | 264 ++++++++++++++++++++++++++++++++++ 2 files changed, 265 insertions(+)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=44afa8445dc46464200fe46c1e09e0c7475067bf commit 44afa8445dc46464200fe46c1e09e0c7475067bf Author: YiFei Zhu <zhuyifei1999@gmail.com> AuthorDate: 2023-06-12 02:23:09 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-06-16 03:34:46 +0000 depgraph: Don't ignore downgrades as missed_updates Missed updates can also come in the form of package downgrades, when, for example, there are keyword changes. They can cause rebuilds, and these rebuilds may be not possible due to reasons such as keywords or masks. In this case, prior to this patch, portage would cancel the downgrade, but the rebuilds would be requested endlessly, because bug 439688's backtrack code does not trigger. To reproduce, on an ACCEPT_KEYWORDS=~amd64 machine, emerge =dev-libs/openssl=3.0.9, dev-util/rustup, and something else that depends on openssl. Then un-accept ~amd64 for openssl and rustup. Prior to this patch, a @world upgrade would cause: These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild rR ] dev-libs/libevent-2.1.12-r1:0/2.1-7::gentoo [ebuild rR ] net-misc/rsync-3.2.7-r2::gentoo [...] Total: 71 packages (71 reinstalls), Size of downloads: 0 KiB There are no packages marked "R", only "rR". There are no section labeled "The following packages are causing rebuilds:" either. After this patch, we have: These are the packages that would be merged, in order: Calculating dependencies... done! Total: 0 packages, Size of downloads: 0 KiB WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict: dev-libs/openssl:0 (dev-libs/openssl-1.1.1u:0/1.1::gentoo, ebuild scheduled for merge) dev-libs/openssl:0/3= required by (dev-util/rustup-1.25.2:0/0::gentoo, installed) I also updated the test from the previous patch to account for this change. No other tests seems affected. Bug: https://bugs.gentoo.org/439688 Bug: https://bugs.gentoo.org/622270 Signed-off-by: YiFei Zhu <zhuyifei1999@gmail.com> Closes: https://github.com/gentoo/portage/pull/1053 Signed-off-by: Sam James <sam@gentoo.org> lib/_emerge/depgraph.py | 4 +--- lib/portage/tests/resolver/test_slot_conflict_blocked_prune.py | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) https://gitweb.gentoo.org/proj/portage.git/commit/?id=2af4bc17d1b4ea1581bb191dfa7f34ec64ab140b commit 2af4bc17d1b4ea1581bb191dfa7f34ec64ab140b Author: YiFei Zhu <zhuyifei1999@gmail.com> AuthorDate: 2023-06-12 02:07:39 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-06-16 03:34:46 +0000 tests: resolver: Test the (bad) behavior of bug #622270 Without fixing the bug. This is so we have a baseline behavior to compare against. Bug: https://bugs.gentoo.org/439688 Bug: https://bugs.gentoo.org/622270 Signed-off-by: YiFei Zhu <zhuyifei1999@gmail.com> Signed-off-by: Sam James <sam@gentoo.org> .../resolver/test_slot_conflict_blocked_prune.py | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+)
(In reply to Larry the Git Cow from comment #14) > The bug has been referenced in the following commit(s): > > https://gitweb.gentoo.org/proj/portage.git/commit/ > ?id=44afa8445dc46464200fe46c1e09e0c7475067bf > > commit 44afa8445dc46464200fe46c1e09e0c7475067bf > Author: YiFei Zhu <zhuyifei1999@gmail.com> > AuthorDate: 2023-06-12 02:23:09 +0000 > Commit: Sam James <sam@gentoo.org> > CommitDate: 2023-06-16 03:34:46 +0000 > > depgraph: Don't ignore downgrades as missed_updates We had to revert this a while ago because of bug 908717.