Summary: | sys-apps/portage: emerge --keep-going support for behavior related to --ignore-world and --implicit-system-deps=n | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Michael Moon <triffid.hunter> |
Component: | Core - Interface (emerge) | Assignee: | Portage team <dev-portage> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | esigra, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=771999 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 373807 | ||
Attachments: | Output of emerge -avtDUu @world --keep-going, emerge --resume, emerge ppp, emerge --info |
Description
Michael Moon
2021-02-21 22:39:16 UTC
(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. |