Created attachment 687984 [details] Output of emerge -avtDUu @world --keep-going, emerge --resume, emerge ppp, emerge --info Seems like a regression of https://bugs.gentoo.org/374583 With --keep-going, it comes up with an empty resume list. With --resume, it complains that the list is invalid somehow. After a merge failure of dev-lang/spidermonkey during emerge -avtDUu @world (which I made a separate bug about): (see attachment, bugzilla complained about too much text) Highlights: from emerge --keep-going -avtDUu @world after spidermonkey failure: *** Resuming merge... These are the packages that would be merged, in reverse order: ... done! ... Note: empty list, despite merge list being large and many packages not depending on spidermonkey! From emerge --resume --skipfirst These are the packages that would be merged, in order: Calculating dependencies ... done! * Invalid resume list: * * ('ebuild', '/', 'media-libs/gst-plugins-base-1.16.3', 'merge') * ('ebuild', '/', 'media-libs/gst-plugins-good-1.16.3', 'merge') * ('ebuild', '/', 'media-libs/gst-plugins-bad-1.16.3', 'merge') * ('ebuild', '/', 'media-libs/gst-plugins-ugly-1.16.3', 'merge') etc etc - list looks ok to me, why is it being flagged as invalid?
(In reply to Michael Moon from comment #0) > From emerge --resume --skipfirst > > These are the packages that would be merged, in order: > > Calculating dependencies ... done! > * Invalid resume list: > * > * ('ebuild', '/', 'media-libs/gst-plugins-base-1.16.3', 'merge') > * ('ebuild', '/', 'media-libs/gst-plugins-good-1.16.3', 'merge') > * ('ebuild', '/', 'media-libs/gst-plugins-bad-1.16.3', 'merge') > * ('ebuild', '/', 'media-libs/gst-plugins-ugly-1.16.3', 'merge') > > etc etc - list looks ok to me, why is it being flagged as invalid? The behavior is intentional. The resume list is invalid because of this: > * One or more packages are either masked or have missing dependencies: > * > * >=dev-libs/icu-67.1:0/67.1= pulled in by: > * (dev-lang/spidermonkey-78.6.0:78/78::gentoo, installed) Since you skipped the spidermonkey update, it seems that your installed spidermonkey has a broken icu dependency. You need a working spidermonkey because this polkit stuff, since polkit requires spidermonkey: > [nomerge ] kde-plasma/systemsettings-5.20.5:5::gentoo USE="-debug handbook" > [nomerge ] kde-frameworks/kauth-5.77.0:5/5.77::gentoo [5.74.0:5/5.74::gentoo] USE="-debug -doc nls (policykit) -test" > [nomerge ] sys-auth/polkit-qt-0.113.0::gentoo USE="-debug" > [nomerge ] sys-auth/polkit-0.118::gentoo USE="elogind -examples gtk introspection -jit kde nls pam (-selinux) -systemd -test" > [nomerge ] kde-plasma/polkit-kde-agent-5.20.5:5::gentoo USE="-debug" > [nomerge ] kde-frameworks/kiconthemes-5.77.0:5/5.77::gentoo [5.74.0:5/5.74::gentoo] USE="-debug -designer -doc -test" > [ebuild U ] kde-frameworks/karchive-5.77.0:5/5.77::gentoo [5.74.0:5/5.74::gentoo] USE="-debug -doc -test" 0 KiB > [ebuild U ] kde-frameworks/breeze-icons-5.77.0-r1:5/5.77::gentoo [5.74.0:5/5.74::gentoo] USE="-test" 0 KiB > [ebuild U ] kde-frameworks/ki18n-5.77.0:5/5.77::gentoo [5.74.0:5/5.74::gentoo] USE="-debug -doc -test" PYTHON_SINGLE_TARGET="-python3_7 python3_8 -python3_9" 0 KiB > [nomerge ] kde-plasma/sddm-kcm-5.20.5:5::gentoo USE="-debug" > [nomerge ] kde-plasma/kde-cli-tools-5.20.5:5::gentoo USE="X -debug handbook -kdesu -test" > [nomerge ] kde-plasma/libkworkspace-5.20.5:5::gentoo USE="-debug -test" > [nomerge ] kde-frameworks/plasma-5.77.0-r1:5/5.77::gentoo [5.74.0-r1:5/5.74::gentoo] USE="X -debug -doc -gles2-only -test -wayland" > [nomerge ] kde-frameworks/kio-5.77.0-r2:5/5.77::gentoo [5.74.1-r2:5/5.74::gentoo] USE="X acl -debug -designer -doc handbook -kerberos kwallet -test" > [nomerge ] kde-frameworks/kauth-5.77.0:5/5.77::gentoo [5.74.0:5/5.74::gentoo] USE="-debug -doc nls (policykit) -test" > [nomerge ] kde-plasma/polkit-kde-agent-5.20.5:5::gentoo USE="-debug" > [nomerge ] dev-qt/qtwidgets-5.15.2:5/5.15::gentoo USE="X -debug -gles2-only gtk png -test" > [nomerge ] x11-libs/gtk+-3.24.24-r1:3::gentoo [3.24.22:3::gentoo] USE="X (-aqua) -broadway -cloudprint -colord cups -examples -gtk-doc introspection -sysprof% -test -vim-syntax -wayland xinerama" ABI_X86="32 (64) (-x32)" > [ebuild U ] dev-util/gtk-update-icon-cache-3.24.24::gentoo [3.24.21::gentoo] 0 KiB > [ebuild U ] x11-misc/shared-mime-info-2.0-r2::gentoo [1.15::gentoo] 0 KiB
Ok sure, but why doesn't it pick up net-dialup/ppp for example, which emerge seems to be perfectly happy to merge without spidermonkey when specified manually? Also, pretty sure shadowsocks-libev doesn't need spidermonkey, nor distcc, nor many others in the list.. I distinctly remember portage being able to skip _some_ of the resume list due to unsatisfied deps and continue with the other stuff not so long ago.
(In reply to Michael Moon from comment #2) > Ok sure, but why doesn't it pick up net-dialup/ppp for example, which emerge > seems to be perfectly happy to merge without spidermonkey when specified > manually? > > Also, pretty sure shadowsocks-libev doesn't need spidermonkey, nor distcc, > nor many others in the list.. > > I distinctly remember portage being able to skip _some_ of the resume list > due to unsatisfied deps and continue with the other stuff not so long ago. I see your expectation is that the --keep-going flag would cause it to drop anything requiring polkit and spidermonkey. The --keep-going flag currently does not affect emerge --resume commands.
> I see your expectation is that the --keep-going flag would cause it to drop anything requiring polkit and spidermonkey. Yes, and from memory this did used to happen - although I don't know when it stopped working. > The --keep-going flag currently does not affect emerge --resume commands. Yeah I'm not too worried about that, just thought it would be useful to point out that both of them don't work in a somewhat similar manner in this case.
(In reply to Michael Moon from comment #4) > > I see your expectation is that the --keep-going flag would cause it to drop anything requiring polkit and spidermonkey. > > Yes, and from memory this did used to happen - although I don't know when it > stopped working. The --keep-going flag has never had any effect on the initial dependency calculation for emerge --resume commands.
OK, let's forget about resume for now. What I expect is that --keep-going would decide "these dozen things can't be built because their dependency failed, but these _other_ dozen things don't depend on that failed dep - so I can continue merging them" It would be nice if resume did the same, but I guess that's a separate issue
(In reply to Michael Moon from comment #6) > OK, let's forget about resume for now. > > What I expect is that --keep-going would decide "these dozen things can't be > built because their dependency failed, but these _other_ dozen things don't > depend on that failed dep - so I can continue merging them" I think what we need is something like the emerge --ignore-world option, but it will specifically ignore packages which are not needed to complete the desired builds. The --ignore-world option doesn't fit exactly, since we also want to ignore packages that may have been given as arguments but later failed to build. Users might have different preferences on how much they'd like to ignore. Maybe they'd like to ignore world packages but not system packages. The --implicit-system-deps=n option exists to remove special considerations for system packages. Maybe you could test with 'emerge -uD --keep-going --ignore-world @world' to see if it gives better results? I'd like to try it myself. > It would be nice if resume did the same, but I guess that's a separate issue The intention of --resume is only to resume the specific set of packages from a previous emerge invocation, and nothing more. Filed as bug 771999.