Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 707108

Summary: portage 2.3.86(only!) wants to emerge python 3.7.6 again after depclean removed it
Product: Portage Development Reporter: inactive <gentoo_eshoes>
Component: UnclassifiedAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal CC: bkohler, gentoo_eshoes
Priority: Normal Keywords: InVCS, REGRESSION
Version: unspecified   
Hardware: AMD64   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=705700
https://bugs.gentoo.org/show_bug.cgi?id=693790
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 706142    
Attachments: debug.log in tar.xz format (it's like 4MiB otherwise)

Description inactive 2020-01-29 15:26:04 UTC
emerge @world wants to emerge python 3.7.6 after depclean just removed it

steps can be repeated forever


Reproducible: Always

Steps to Reproduce:
1. be on ~amd64
2. be up to date
3. # emerge -av --depclean
4. # emerge --verbose --tree --update --deep --with-bdeps=y --changed-use --newuse --ask --complete-graph  @world 
5. repeate from step 3 to cause an infinite loop of always reproducible results.
Actual Results:  
The step 3 depclean removes:
 dev-lang/python
    selected: 3.7.6 
   protected: none 
     omitted: 2.7.17-r1 3.6.10 3.8.1 

The step 4 update re-emerges it:
These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
[nomerge       ] media-sound/pavucontrol-4.0::gentoo  USE="-nls" 
[nomerge       ]  media-libs/libcanberra-0.30-r5::gentoo  USE="gtk gtk3 pulseaudio sound -alsa -gnome -gstreamer -oss -tdb -udev" ABI_X86="(64) -32 (-x32)" 
[nomerge       ]   x11-libs/gtk+-3.24.13:3::gentoo  USE="X introspection (-aqua) -broadway -cloudprint -colord -cups -examples -gtk-doc -test -vim-syntax -wayland -xinerama" ABI_X86="(64) -32 (-x32)" 
[nomerge       ]    media-libs/libepoxy-1.5.4::gentoo  USE="X egl -test" ABI_X86="(64) -32 (-x32)" 
[ebuild  NS    ]     dev-lang/python-3.7.6:3.7/3.7m::gentoo [2.7.17-r1:2.7::gentoo, 3.6.10:3.6/3.6m::gentoo, 3.8.1:3.8::gentoo] USE="gdbm ncurses readline ssl xml -bluetooth -build -examples -hardened -ipv6 -libressl -sqlite -test -tk -wininst" 0 KiB

Total: 1 package (1 in new slot), Size of downloads: 0 KiB


Expected Results:  
python 3.7.6 should not be re-emerged
or
it shouldn't be depcleaned

either will do.


As per https://bugs.gentoo.org/705700#c13 I created this new issue.

For another user experiencing this issue, see: https://bugs.gentoo.org/705700#c14

As per comment 15 here:
I've made the debug.log file from:
# emerge -p --depclean --debug > debug.log 2>&1

(looks like I can't attach it now, then I'll do so on the next comment)
Comment 1 inactive 2020-01-29 15:26:52 UTC
Created attachment 607328 [details]
debug.log in tar.xz format (it's like 4MiB otherwise)
Comment 2 Ben Kohler gentoo-dev 2020-01-29 15:28:08 UTC
Probably related to bug 705700
Comment 3 inactive 2020-01-29 15:29:37 UTC
# emerge --info
Portage 2.3.86 (python 3.6.10-final-0, default/linux/amd64/17.1, gcc-9.2.0, glibc-2.30-r3, 5.4.15-gentoo-x86_64 x86_64)
=================================================================
System uname: Linux-5.4.15-gentoo-x86_64-x86_64-Intel-R-_Core-TM-_i7-8700K_CPU_@_3.70GHz-with-gentoo-2.6
KiB Mem:    32196828 total,  29667976 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Wed, 29 Jan 2020 15:00:01 +0000
Head commit of repository gentoo: bc8a1661e165a7be90cab0b71a97f028f89301de
sh bash 5.0_p11
ld GNU ld (Gentoo 2.33.1 p2) 2.33.1
ccache version 3.7.7 [enabled]
app-shells/bash:          5.0_p11::gentoo
dev-lang/perl:            5.30.1::gentoo
dev-lang/python:          2.7.17-r1::gentoo, 3.6.10::gentoo, 3.7.6::gentoo, 3.8.1::gentoo
dev-util/ccache:          3.7.7::gentoo
dev-util/cmake:           3.16.3::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/openrc:          0.42.1::gentoo
sys-apps/sandbox:         2.18::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo
sys-devel/automake:       1.16.1-r2::gentoo
sys-devel/binutils:       2.33.1-r1::gentoo
sys-devel/gcc:            9.2.0-r3::gentoo
sys-devel/gcc-config:     2.2.1::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.3::gentoo
sys-kernel/linux-headers: 5.4::gentoo (virtual/os-headers)
sys-libs/glibc:           2.30-r3::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-vcs-ignore: false
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts: 
    sync-rsync-verify-jobs: 1

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=skylake -mtune=skylake-avx512 -mprefer-vector-width=128 -O2 -pipe -frecord-gcc-switches -ggdb -fvar-tracking-assignments -fno-omit-frame-pointer -ftrack-macro-expansion=2 -fstack-protector-all -Wno-trigraphs -fno-schedule-insns2 -fno-delete-null-pointer-checks -D_FORTIFY_SOURCE=2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /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"
CXXFLAGS="-march=skylake -mtune=skylake-avx512 -mprefer-vector-width=128 -O2 -pipe -frecord-gcc-switches -ggdb -fvar-tracking-assignments -fno-omit-frame-pointer -ftrack-macro-expansion=2 -fstack-protector-all -Wno-trigraphs -fno-schedule-insns2 -fno-delete-null-pointer-checks -D_FORTIFY_SOURCE=2"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS=" --jobs=4 --load-average=4 --keep-going n --ask --ask-enter-invalid --jobs=12 --load-average=12"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN 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="-march=skylake -mtune=skylake-avx512 -mprefer-vector-width=128 -O2 -pipe -frecord-gcc-switches -ggdb -fvar-tracking-assignments -fno-omit-frame-pointer -ftrack-macro-expansion=2 -fstack-protector-all -Wno-trigraphs -fno-schedule-insns2 -fno-delete-null-pointer-checks -D_FORTIFY_SOURCE=2"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs ccache cgroup collision-protect config-protect-if-modified distlocks downgrade-backup ebuild-locks fakeroot fixlafiles force-mirror ipc-sandbox merge-sync multilib-strict network-sandbox news nostrip parallel-fetch pid-sandbox prelink-checksums preserve-libs sandbox sfperms skiprocheck split-elog split-log strict suidctl unknown-features-warn unmerge-logs userfetch userpriv usersandbox"
FFLAGS="-march=skylake -mtune=skylake-avx512 -mprefer-vector-width=128 -O2 -pipe -frecord-gcc-switches -ggdb -fvar-tracking-assignments -fno-omit-frame-pointer -ftrack-macro-expansion=2 -fstack-protector-all -Wno-trigraphs -fno-schedule-insns2 -fno-delete-null-pointer-checks -D_FORTIFY_SOURCE=2"
GENTOO_MIRRORS="https://mirrors.evowise.com/gentoo/ https://mirror.dkm.cz/gentoo/ https://ftp.fau.de/gentoo https://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ https://gentoo.wheel.sk/"
INSTALL_MASK="/lib/systemd /lib32/systemd /lib64/systemd /usr/lib/systemd /usr/lib32/systemd /usr/lib64/systemd /etc/systemd"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="--no-keep-going -j18"
PKGDIR="/var/cache/binpkgs"
PORTAGE_BINHOST=""
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 acl aes amd64 avx avx2 berkdb bindist btrfs bzip2 cli consolekit cscope cxx dbus dri extensions f16c fma3 gdbm git gpg gpm gtk3 iconv jpeg libtirpc lm_sensors lock mmx mmxext mosh-hardening multilib ncurses nptl ogg openmp opus pam pclmul pcre pie png policykit popcnt pulseaudio qt5 readline rsync-verify seccomp session smp source-highlight split-usr sse sse2 sse3 sse4_1 sse4_2 ssl ssp ssse3 startup-notification strong-security unicode xcomposite zlib" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" 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="pc" INPUT_DEVICES="keyboard evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" RUBY_TARGETS="ruby24 ruby25" USERLAND="GNU" VIDEO_CARDS="intel" XFCE_PLUGINS="brightness clock trash battery power" 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, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 4 inactive 2020-01-29 15:31:31 UTC
(if it matters)

# eselect python list
Available Python interpreters, in order of preference:
  [1]   python3.8 (fallback)
  [2]   python3.7 (fallback)
  [3]   python3.6 (fallback)
  [4]   python2.7 (fallback)
Comment 5 inactive 2020-01-29 15:42:56 UTC
Looks like it's `--with-bdeps=y`, if I use `=n` it doesn't want to pull it in.

# time emerge --verbose --tree --update --deep --with-bdeps=n --ask  @world --implicit-system-deps=n

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 KiB

Nothing to merge; quitting.


# time emerge --verbose --tree --update --deep --with-bdeps=y --ask  @world --implicit-system-deps=n

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
[nomerge       ] media-sound/paprefs-1.1::gentoo 
[nomerge       ]  media-sound/pulseaudio-13.0::gentoo  USE="X alsa alsa-plugin asyncns caps dbus gdbm glib orc qt5 sox ssl udev -bluetooth -doc -elogind -equalizer -gconf -gtk -ipv6 -jack -libressl -libsamplerate -lirc -native-headset -ofono-headset (-oss) -realtime (-selinux) (-system-wide) -systemd -tcpd -test -webrtc-aec -zeroconf" ABI_X86="(64) -32 (-x32)" 
[nomerge       ]   media-libs/libsndfile-1.0.29_pre2_p20191024::gentoo  USE="-alsa -minimal -sqlite -static-libs -test" ABI_X86="(64) -32 (-x32)" 
[ebuild  NS    ]    dev-lang/python-3.7.6:3.7/3.7m::gentoo [2.7.17-r1:2.7::gentoo, 3.6.10:3.6/3.6m::gentoo, 3.8.1:3.8::gentoo] USE="gdbm ncurses readline ssl xml -bluetooth -build -examples -hardened -ipv6 -libressl -sqlite -test -tk -wininst" 0 KiB

Total: 1 package (1 in new slot), Size of downloads: 0 KiB
Comment 6 inactive 2020-01-29 15:44:33 UTC
actually both --deep and --with-bdeps=y  are required, without --deep , --with-bdeps=y  doesn't want to pull it either.

# time emerge --verbose --tree --update --with-bdeps=y --ask  @world

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 KiB

Nothing to merge; quitting.
Comment 7 inactive 2020-01-29 15:46:28 UTC
minimal step 4 reduction:

# emerge --deep --update --with-bdeps=y @world

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  NS    ] dev-lang/python-3.7.6 [2.7.17-r1, 3.6.10, 3.8.1]
Comment 8 inactive 2020-01-29 16:09:33 UTC
I mistakenly posted the following comment into the wrong bug here: https://bugs.gentoo.org/705700#c17

sorry about that, it was meant to be posted on this bug report:

It's the PYTHON_COMPAT line(s) in any ebuild, that make emerge pull in python 3.7.6

in libepoxy-1.5.4.ebuild:
PYTHON_COMPAT=( python{2_7,3_6,3_7} )
if I change 3_7 to 3_8, next emerge will want python 3_7 because of libsndfile(no longer because of libepoxy),

in
/var/db/repos/gentoo/media-libs/libsndfile/libsndfile-1.0.29_pre2_p20191024.ebuild
line:
PYTHON_COMPAT=( python{2_7,3_6,3_7} pypy3 )  

if I change 3_7 into 3_8 and remanifest, the emerge will go to another ebuild as the dep requiring python 3_7, such as: sys-devel/llvm-9.0.1
Comment 9 inactive 2020-01-29 16:24:57 UTC
perhaps I was wrong, the output of the dep graph(or wut?!) seems random:

three consecutive emerges, 3 different outputs (maybe it's the --jobs arg mangling output ?)

# time emerge --verbose --tree --deep --with-bdeps=y --changed-use --newuse --ask --complete-graph=y  --update @world

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
[nomerge       ] lxqt-base/lxqt-meta-0.14.1-r1::gentoo  USE="about filemanager policykit trash -admin -lightdm -lximage -minimal -nls -powermanagement -processviewer -screenshot -sddm -ssh-askpass -sudo -terminal" 
[nomerge       ]  lxqt-base/lxqt-config-0.14.1-r1::gentoo  USE="monitor touchpad" 
[nomerge       ]   x11-drivers/xf86-input-libinput-0.29.0::gentoo 
[nomerge       ]    x11-base/xorg-server-1.20.7:0/1.20.7::gentoo  USE="suid udev xorg -debug -dmx -doc -elogind -ipv6 -kdrive -libglvnd -libressl -minimal (-selinux) -static-libs -systemd -unwind -wayland -xcsecurity -xephyr -xnest -xvfb" 
[nomerge       ]     media-libs/libepoxy-1.5.4::gentoo  USE="X egl -test" ABI_X86="(64) -32 (-x32)" 
[ebuild  NS    ]      dev-lang/python-3.7.6:3.7/3.7m::gentoo [2.7.17-r1:2.7::gentoo, 3.6.10:3.6/3.6m::gentoo, 3.8.1:3.8::gentoo] USE="gdbm ncurses readline ssl xml -bluetooth -build -examples -hardened -ipv6 -libressl -sqlite -test -tk -wininst" 0 KiB

# time emerge --verbose --tree --deep --with-bdeps=y --changed-use --newuse --ask --complete-graph=y  --update @world

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
[nomerge       ] media-sound/paprefs-1.1::gentoo 
[nomerge       ]  media-sound/pulseaudio-13.0::gentoo  USE="X alsa alsa-plugin asyncns caps dbus gdbm glib orc qt5 sox ssl udev -bluetooth -doc -elogind -equalizer -gconf -gtk -ipv6 -jack -libressl -libsamplerate -lirc -native-headset -ofono-headset (-oss) -realtime (-selinux) (-system-wide) -systemd -tcpd -test -webrtc-aec -zeroconf" ABI_X86="(64) -32 (-x32)" 
[nomerge       ]   media-libs/libsndfile-1.0.29_pre2_p20191024::gentoo  USE="-alsa -minimal -sqlite -static-libs -test" ABI_X86="(64) -32 (-x32)" 
[ebuild  NS    ]    dev-lang/python-3.7.6:3.7/3.7m::gentoo [2.7.17-r1:2.7::gentoo, 3.6.10:3.6/3.6m::gentoo, 3.8.1:3.8::gentoo] USE="gdbm ncurses readline ssl xml -bluetooth -build -examples -hardened -ipv6 -libressl -sqlite -test -tk -wininst" 0 KiB

Total: 1 package (1 in new slot), Size of downloads: 0 KiB


# time emerge --verbose --tree --deep --with-bdeps=y --changed-use --newuse --ask --complete-graph=y  --update @world

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
[nomerge       ] media-sound/paprefs-1.1::gentoo 
[nomerge       ]  dev-libs/glib-2.60.7-r1:2::gentoo  USE="dbus mime -debug -fam -gtk-doc (-selinux) -static-libs -systemtap -test -utils -xattr" ABI_X86="(64) -32 (-x32)" 
[ebuild  NS    ]   dev-lang/python-3.7.6:3.7/3.7m::gentoo [2.7.17-r1:2.7::gentoo, 3.6.10:3.6/3.6m::gentoo, 3.8.1:3.8::gentoo] USE="gdbm ncurses readline ssl xml -bluetooth -build -examples -hardened -ipv6 -libressl -sqlite -test -tk -wininst" 0 KiB

Total: 1 package (1 in new slot), Size of downloads: 0 KiB
Comment 10 inactive 2020-01-29 16:50:26 UTC
the above output differs for some reason, but it doesn't matter. (even though I answered 'n' to emerge question, ie. like --pretend)

I can confirm that after chaning like 10 ebuilds 's PYTHON_COMPAT from 3_7 to 3_8 , emerge now no longer wants to pull in python 3.7.6

# time emerge --verbose --tree --deep --with-bdeps=y --changed-use --newuse --ask --complete-graph=y  --update @world --jobs=1 --pretend

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 KiB

and depclean has nothing to clean.


thus,  Comment 8 is correct.

PYTHON_COMPAT pythons(well only 3_7 is missing for me) are being pulled by `emerge --deep --with-bdeps=y --update @world`   and then cleaned by `emerge --depclean -av`, then again pulled if I redo.
Comment 11 inactive 2020-01-30 00:51:29 UTC
the issue doesn't happen with
=sys-apps/portage-2.3.69
=sys-apps/portage-2.3.84-r1

happens with:
=sys-apps/portage-2.3.86
=sys-apps/portage-9999  (which is at 2.3.86 currently)
Comment 12 inactive 2020-01-30 00:57:38 UTC
also doesn't happen with:
=sys-apps/portage-2.3.85

(which is a copied ebuild of 2.3.86, without any changes, named /var/db/repos/gentoo/sys-apps/portage/portage-2.3.85.ebuild)

# emerge --version
Portage 2.3.85 (python 3.6.10-final-0, default/linux/amd64/17.1, gcc-9.2.0, glibc-2.30-r3, 5.4.15-gentoo-x86_64 x86_64)


so the issue was introduced in portage 2.3.86
Comment 13 inactive 2020-01-30 01:03:10 UTC
my tests indicate this is the commit that introduced this issue:
https://github.com/gentoo/portage/commit/f7d83d75c6b05a16ef07473917082dbd0cd9955c
Comment 14 inactive 2020-01-30 01:21:12 UTC
the issue being(ie. to summarize) that: 
`# emerge --deep --update --with-bdeps=y @world`
pulls in python 3.7.6 unnecessarily, which is then removed by `emerge -av --depclean`, only to be pulled again on next update attempt.

--with-bdeps=n   it doesn't pull it
without --deep also doesn't pull it
Comment 15 Zac Medico gentoo-dev 2020-01-30 18:59:40 UTC
I've got an idea for a fix which I've posted here:

https://github.com/gentoo/portage/pull/501#discussion_r373132507

We should be able to correct the problem by using the all_installed_slots attribute, for symmetry with the action that installs the new python slot.
Comment 16 Larry the Git Cow gentoo-dev 2020-02-01 04:47:58 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=1419af8b0830af4a93adda4a4b63d6bba8f3deb6

commit 1419af8b0830af4a93adda4a4b63d6bba8f3deb6
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2020-01-31 03:25:26 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2020-02-01 04:47:36 +0000

    Add test case that demonstrates bug 707108
    
    Bug: https://bugs.gentoo.org/707108
    Signed-off-by: Zac Medico <zmedico@gentoo.org>

 lib/portage/tests/resolver/test_or_choices.py | 123 ++++++++++++++++++++++++++
 1 file changed, 123 insertions(+)
Comment 18 Larry the Git Cow gentoo-dev 2020-02-01 21:09:38 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=d77d933b4a9cb2b830e661806a2a8689ffbac0ef

commit d77d933b4a9cb2b830e661806a2a8689ffbac0ef
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2020-02-01 04:53:45 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2020-02-01 20:54:11 +0000

    depclean: do not eliminate upgrades (bug 707108)
    
    For depclean actions, prefer choices where all packages have been
    pulled into the graph, except for choices that eliminate upgrades.
    This solves the test case for bug 707108, where depclean eliminated
    a new slot of python that had been pulled in by a world update.
    This should also prevent non-deterministic elimination of the
    latest vala slot that was reported in bug 693790.
    
    NOTE: There's a common perception (expressed in bug 705700) that
    emerge is pulling in an "unecessary" python slot in cases when that
    python slot is not enabled in PYTHON_TARGETS. However, the so-called
    "unnecessary" slot is practically indistinguishable from a desirable
    upgrade such as the missed llvm slot upgrade that was reported in
    bug 706278. Therefore, be advised that emerge must pull in the
    highest visible slot (regardless of PYTHON_TARGETS) in order to
    ensure that a desirable upgrade is not missed.
    
    Fixes: f7d83d75c6b0 ("dep_zapdeps: adjust || preference for slot upgrades (bug 706278)")
    Bug: https://bugs.gentoo.org/707108
    Bug: https://bugs.gentoo.org/706278
    Bug: https://bugs.gentoo.org/705700
    Bug: https://bugs.gentoo.org/693790
    Signed-off-by: Zac Medico <zmedico@gentoo.org>

 lib/portage/dep/dep_check.py                  | 23 +++++++++++++----------
 lib/portage/tests/resolver/test_or_choices.py |  4 ++--
 2 files changed, 15 insertions(+), 12 deletions(-)
Comment 19 Larry the Git Cow gentoo-dev 2020-02-01 22:13:32 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4f78a86ac5ba0150aa679c7feaf64a5ad67316ef

commit 4f78a86ac5ba0150aa679c7feaf64a5ad67316ef
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2020-02-01 22:03:22 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2020-02-01 22:13:24 +0000

    sys-apps/portage: Bump to version 2.3.87
    
     #691798 emerge: treat GLEP 81 acct-* categories like virtual
     #693790 depclean sometimes wants to remove latest vala slot
     #707108 depclean: do not eliminate upgrades
    
    Bug: https://bugs.gentoo.org/706142
    Bug: https://bugs.gentoo.org/693790
    Closes: https://bugs.gentoo.org/707108
    Package-Manager: Portage-2.3.87, Repoman-2.3.20
    Signed-off-by: Zac Medico <zmedico@gentoo.org>

 sys-apps/portage/Manifest              |   1 +
 sys-apps/portage/portage-2.3.87.ebuild | 260 +++++++++++++++++++++++++++++++++
 2 files changed, 261 insertions(+)