Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 439688 - sys-apps/portage: slot conflict triggers unnecessary rebuilds
Summary: sys-apps/portage: slot conflict triggers unnecessary rebuilds
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All All
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
: 739648 (view as bug list)
Depends on:
Blocks: 300071 739718
  Show dependency tree
 
Reported: 2012-10-25 22:27 UTC by Zac Medico
Modified: 2023-10-09 21:57 UTC (History)
7 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Zac Medico gentoo-dev 2012-10-25 22:27:59 UTC
<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
Comment 1 Zac Medico gentoo-dev 2012-10-26 05:11:19 UTC
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.
Comment 3 Zac Medico gentoo-dev 2012-10-26 20:13:32 UTC
This is fixed in 2.1.11.31 and 2.2.0_alpha142.
Comment 4 Zac Medico gentoo-dev 2020-07-26 22:51:37 UTC
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)"
Comment 5 Stephan Menzel 2020-08-12 05:51:11 UTC
(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?
Comment 6 Zac Medico gentoo-dev 2020-08-12 16:34:32 UTC
(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.
Comment 7 Zac Medico gentoo-dev 2020-08-12 16:42:00 UTC
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
Comment 8 Stephan Menzel 2020-08-13 14:26:36 UTC
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
Comment 9 Zac Medico gentoo-dev 2020-08-30 21:55:18 UTC
*** Bug 739648 has been marked as a duplicate of this bug. ***
Comment 10 Larry the Git Cow gentoo-dev 2020-08-30 22:39:45 UTC
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(-)
Comment 12 Larry the Git Cow gentoo-dev 2020-08-31 06:22:12 UTC
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(-)
Comment 13 Larry the Git Cow gentoo-dev 2020-08-31 07:08:16 UTC
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(+)
Comment 14 Larry the Git Cow gentoo-dev 2023-06-16 03:34:54 UTC
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(+)
Comment 15 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-10-09 21:57:00 UTC
(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.