See https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a8af3151b4ecb713101d6dab3f6cb2ea045d259d which adjusted the libvpx dependency to "system-libvpx? ( =media-libs/libvpx-1.7*:0=[postproc] )" in all but www-client/firefox-68.0.2. > # emerge --ask --verbose --update --deep --with-bdeps=y --usepkg=n --newuse world > > These are the packages that would be merged, in order: > > Calculating dependencies... done! > [ebuild r U ] media-libs/libvpx-1.8.0-r1:0/6::gentoo [1.7.0:0/5::gentoo] USE="highbitdepth postproc threads -doc -static-libs -svc -test" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="(-avx%) (-avx2%) (-mmx%*) (-sse%*) (-sse2%*) (-sse3%) (-sse4_1%) (-ssse3%)" 0 KiB > [ebuild r UD ] media-libs/libvpx-1.6.1:0/4::gentoo [1.7.0:0/5::gentoo] USE="highbitdepth postproc threads -doc -static-libs -svc -test" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="mmx sse sse2 -avx -avx2 -sse3 -sse4_1 -ssse3" 1.914 KiB > [ebuild rR ] media-video/ffmpeg-4.2:0/56.58.58::gentoo USE="bzip2 encode gpl iconv network postproc threads vpx zlib -X -alsa (-altivec) -amr -amrenc (-appkit) -bluray -bs2b -cdio -chromaprint -chromium -codec2 -cpudetection -cuda -dav1d -debug -doc -fdk -flite -fontconfig -frei0r -fribidi -gcrypt -gme -gmp -gnutls -gsm -hardcoded-tables -iec61883 -ieee1394 -jack -jpeg2k -kvazaar -ladspa -libaom -libaribb24 -libass -libcaca -libdrm -libilbc -libressl -librtmp -libsoxr -libv4l -libxml2 -lv2 -lzma (-mipsdspr1) (-mipsdspr2) (-mipsfpu) (-mmal) -modplug -mp3 -openal -opencl -opengl -openh264 -openssl -opus -oss -pic -pulseaudio -rubberband -samba -sdl -snappy -speex -srt -ssh -static-libs -svg -test -theora -truetype -twolame -v4l -vaapi -vdpau -vidstab -vorbis -wavpack -webp -x264 -x265 -xcb -xvid -zeromq -zimg -zvbi" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="mmx mmxext sse sse2 -3dnow -3dnowext -aes -avx -avx2 -fma3 -fma4 -sse3 -sse4_1 -sse4_2 -ssse3 -xop" FFTOOLS="aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher" VIDEO_CARDS="-nvidia" 0 KiB > [ebuild UD ] www-client/firefox-68.0.2::gentoo [69.0::gentoo] USE="gmp-autoupdate screenshot system-av1 system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-webp -bindist -clang -custom-cflags -custom-optimization -dbus% -debug -eme-free -geckodriver -hardened -hwaccel -jack -lto (-neon) -pgo -pulseaudio (-selinux) -startup-notification -system-sqlite -test -wayland -wifi" CPU_FLAGS_X86="-avx2" L10N="-ach -af -an -ar -ast -az -be -bg -bn -br -bs -ca -cak -cs -cy -da -de -dsb -el -en-CA -en-GB -eo -es-AR -es-CL -es-ES -es-MX -et -eu -fa -ff -fi -fr -fy -ga -gd -gl -gn -gu -he -hi -hr -hsb -hu -hy -ia -id -is -it -ja -ka -kab -kk -km -kn -ko -lij -lt -lv -mk -mr -ms -my -nb -nl -nn -oc -pa -pl -pt-BR -pt-PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv -ta -te -th -tr -uk -ur -uz -vi -xh -zh-CN -zh-TW" 0 KiB > > Total: 4 packages (1 upgrade, 2 downgrades, 1 reinstall), Size of downloads: 1.914 KiB > > !!! Multiple package instances within a single package slot have been pulled > !!! into the dependency graph, resulting in a slot conflict: > > media-libs/libvpx:0 > > (media-libs/libvpx-1.8.0-r1:0/6::gentoo, ebuild scheduled for merge) pulled in by > >=media-libs/libvpx-1.7.0:0=[postproc] required by (www-client/firefox-68.0.2:0/0::gentoo, ebuild scheduled for merge) > ^^ ^^^^^^^^ > > (media-libs/libvpx-1.6.1:0/4::gentoo, ebuild scheduled for merge) pulled in by > <media-libs/libvpx-1.8:0=[postproc] required by (www-client/firefox-68.0.2:0/0::gentoo, ebuild scheduled for merge) > ^ ^^^^^^ > > > It may be possible to solve this problem by using package.mask to > prevent one of those packages from being selected. However, it is also > possible that conflicting dependencies exist such that they are > impossible to satisfy simultaneously. If such a conflict exists in > the dependencies of two different packages, then those packages can > not be installed simultaneously. > > For more information, see MASKED PACKAGES section in the emerge man > page or refer to the Gentoo Handbook. > > > The following packages are causing rebuilds: > > (media-libs/libvpx-1.8.0-r1:0/6::gentoo, ebuild scheduled for merge) causes rebuilds for: > (media-video/ffmpeg-4.2:0/56.58.58::gentoo, ebuild scheduled for merge) > > The following USE changes are necessary to proceed: > (see "package.use" in the portage(5) man page for more details) > # required by www-client/firefox-68.0.2::gentoo[system-libvpx] > # required by @selected > # required by @world (argument) > >=media-libs/libvpx-1.8.0-r1 postproc > # required by www-client/firefox-68.0.2::gentoo[system-libvpx] > # required by @selected > # required by @world (argument) > =media-libs/libvpx-1.6.1 postproc > > Would you like to add these changes to your config files? [Yes/No] n > > * In order to avoid wasting time, backtracking has terminated early > * due to the above autounmask change(s). The --autounmask-backtrack=y > * option can be used to force further backtracking, but there is no > * guarantee that it will produce a solution. > > > # cat /var/lib/portage/world > app-editors/nano > app-misc/colordiff > app-portage/eix > app-portage/gentoolkit > app-portage/repoman > app-text/tree > sys-fs/ncdu > www-client/firefox > > > # emerge --info www-client/firefox media-video/ffmpeg > Portage 2.3.75 (python 3.6.9-final-0, default/linux/amd64/17.1, gcc-9.2.0, glibc-2.29-r5, 4.19.69-gentoo-x86_64 x86_64)
It looks like it tried to upgrade libvpx because of ffmpeg's >=media-libs/libvpx-1.4.0 dependency, and this triggered a slot conflict the version of libvpx pulled in by firefox's =media-libs/libvpx-1.7* dependency. Ultimately, --autounmask-backtrack=n terminated backtracking due to the autounmask changes triggered for the libvpx postproc USE flag.
Thomas Deutschmann reports that after removing the firefox-68.0.2, wants to downgrade firefox to firefox-60.9.0 (this version has no dep on libvpx). It is masking libvpx-1.7.0:0/5 as resolution which is causing the downgrade.
(In reply to Zac Medico from comment #1) > It looks like it tried to upgrade libvpx because of ffmpeg's > >=media-libs/libvpx-1.4.0 dependency, and this triggered a slot conflict the > version of libvpx pulled in by firefox's =media-libs/libvpx-1.7* dependency. > Ultimately, --autounmask-backtrack=n terminated backtracking due to the > autounmask changes triggered for the libvpx postproc USE flag. (In reply to Zac Medico from comment #2) > Thomas Deutschmann reports that after removing the firefox-68.0.2, wants to > downgrade firefox to firefox-60.9.0 (this version has no dep on libvpx). It > is masking libvpx-1.7.0:0/5 as resolution which is causing the downgrade. Both behaviors are likely side-effects from the fix for bug 692746, since this change makes it consider masking libvpx-1.7 even though it satisfies all involved parent atoms.
In this case it's unclear (to an automated solver) whether it's better to have the latest version of libvpx or the latest version of firefox. However, it's possible that we could make it prefer upgrades for members of @world, which would be helpful if firefox is in @world and libvpx is not.
Created attachment 589680 [details] unit test demonstrating the undesirable firefox downgrade The attached unit test demonstrates the problem: > [ebuild UD ] www-client/firefox-60.9.0 [69.0] > > !!! The following update(s) have been skipped due to unsatisfied dependencies > !!! triggered by backtracking: > > www-client/firefox:0
Patch posted for review: https://archives.gentoo.org/gentoo-portage-dev/message/7c6b9899c388693201797c214c2f7933 https://github.com/gentoo/portage/pull/460
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=1e61c439143b12d079e1fc344bbc0c192a84cbe0 commit 1e61c439143b12d079e1fc344bbc0c192a84cbe0 Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2019-09-11 02:54:51 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2019-09-12 01:31:21 +0000 _add_dep: less aggressive backtracking (bug 693836) In order to suppress the sort of aggressive backtracking that can trigger undesirable downgrades as in bug 693836, do not backtrack for an unsatisfied dependency if there's an available package in the runtime package mask which was involved in a slot conflict and satisfied all involved parent atoms. Instead, discard the current depgraph in favor of other backtracking configurations that may exist. This case would not have been encountered prior to the fix for bug 692746 which enabled backtracking for the type of slot conflict that is detected here. Fixes: 994ac00aa764 ("_slot_confict_backtrack: consider masking a package matched by all parent atoms (bug 692746)") Bug: https://bugs.gentoo.org/693836 Signed-off-by: Zac Medico <zmedico@gentoo.org> lib/_emerge/depgraph.py | 13 ++++ .../test_aggressive_backtrack_downgrade.py | 91 ++++++++++++++++++++++ 2 files changed, 104 insertions(+)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=39bc8967e254a5c83d5e0e22db6a0b6d772ed01e commit 39bc8967e254a5c83d5e0e22db6a0b6d772ed01e Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2019-09-12 02:15:52 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2019-09-12 02:35:05 +0000 sys-apps/portage: Bump to version 2.3.76 #693836 erroneous firefox downgrade #693980 x11-module-rebuild: support SYMLINK_LIB=no #694000 OwnerSet: fix exclude-files support Bug: https://bugs.gentoo.org/691278 Bug: https://bugs.gentoo.org/693836 Bug: https://bugs.gentoo.org/693980 Bug: https://bugs.gentoo.org/694000 Package-Manager: Portage-2.3.76, Repoman-2.3.17 Signed-off-by: Zac Medico <zmedico@gentoo.org> sys-apps/portage/Manifest | 1 + sys-apps/portage/portage-2.3.76.ebuild | 261 +++++++++++++++++++++++++++++++++ 2 files changed, 262 insertions(+)