Portage 2.1.9.24 (default/linux/amd64/10.0/developer, gcc-4.3.5, glibc2.12.1-r2, 2.6.36 x86_64) The offensive dependency is kdelibs on qt-qt3support[kde]. uwakimon steve # USE=semantic-desktop emerge -N -u kdelibs * * The FEATURES=digest setting can prevent corruption from being noticed. * The `repoman manifest` command is the preferred way to generate * manifests and it is capable of doing an entire repository or category at * once. * Calculating dependencies... done! emerge: there are no ebuilds built with USE flags to satisfy ">=x11-libs/qt-qt3support-4.6.3:4[accessibility,kde]". !!! One of the following packages is required to complete your request: - x11-libs/qt-qt3support-4.7.1 (Change USE: +kde) (dependency required by "kde-base/kdelibs-4.5.3" [ebuild]) (dependency required by "kdelibs" [argument]) uwakimon steve # equery uses qt-qt3support [ Legend : U - flag is set in make.conf ] [ : I - package is installed with flag ] [ Colors : set, unset ] * Found these USE flags for x11-libs/qt-qt3support-4.7.1: U I - + accessibility : Adds support for accessibility (eg 'at-spi' library) - - aqua : Include support for the Aqua / Carbon GUI - - debug : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml - + exceptions : Add support for exceptions - like catching them inside the event loop (recommended by Nokia) - + kde : Select media-sound/phonon as phonon variant needed for kde - - pch : Enable precompiled header support for faster compilation at the expense of disk space and memory (>=sys-devel/gcc-3.4 only) - - phonon : Enable phonon configuration dialog in qtconfig uwakimon steve # nano /etc/make.conf uwakimon steve # equery uses qt-qt3support [ Legend : U - flag is set in make.conf ] [ : I - package is installed with flag ] [ Colors : set, unset ] * Found these USE flags for x11-libs/qt-qt3support-4.7.1: U I + + accessibility : Adds support for accessibility (eg 'at-spi' library) - - aqua : Include support for the Aqua / Carbon GUI - - debug : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml - + exceptions : Add support for exceptions - like catching them inside the event loop (recommended by Nokia) + + kde : Select media-sound/phonon as phonon variant needed for kde - - pch : Enable precompiled header support for faster compilation at the expense of disk space and memory (>=sys-devel/gcc-3.4 only) - - phonon : Enable phonon configuration dialog in qtconfig uwakimon steve # USE=semantic-desktop emerge -N -u kdelibs * * The FEATURES=digest setting can prevent corruption from being noticed. * The `repoman manifest` command is the preferred way to generate * manifests and it is capable of doing an entire repository or category at * once. * Calculating dependencies... done! >>> Creating Manifest for /usr/portage/kde-base/kde-env >>> Creating Manifest for /usr/portage/kde-base/kdelibs >>> Creating Manifest for /usr/portage/kde-base/nepomuk >>> Creating Manifest for /usr/portage/kde-base/khelpcenter ... and we're off to the races.
It seems as if you have a conflict between -N and your current USE setting, such that -N triggers a rebuild of qt-qt3support with the kde USE flag disabled. If that is indeed the problem, then you'll need to change your make.conf and/or package.use settings so the USE=kde is enabled for qt-qt3support.
(In reply to comment #1) > It seems as if you have a conflict between -N and your current USE setting, > such that -N triggers a rebuild of qt-qt3support with the kde USE flag > disabled. If that is indeed the problem, then you'll need to change your > make.conf and/or package.use settings so the USE=kde is enabled for > qt-qt3support. I don't *have* a USE setting, except as required to make portage happy. Over the past three years make.conf has acquired the following cruft responding to the demands of portage: ACCEPT_KEYWORDS="~amd64" ACCEPT_LICENSE="AdobeFlash-10.1" USE="-arts dvdr nptl nptlonly toolbar unicode Xaw3d paste64 truetype" (I guess "Xaw3d" and "dvdr" are optional; the rest are there to get portage to merge some desired package.) It looks like "USE=desired-flag emerge -uN required-package cranky-package" works, though, without editing make.conf.
When I say "USE setting" I mean "USE setting or lack thereof". Your problem is that you lack a USE=kde setting. This is what the emerge message is supposed to indicate, but occasionally we find users that don't understand it. Perhaps we need to document the message better. I'm not sure if it's mentioned in the handbook.
I understand that perfectly well. Look: emerge says: emerge: there are no ebuilds built with USE flags to satisfy ">=x11-libs/qt-qt3support-4.6.3:4[accessibility,kde]". and immediately following that, equery says: * Found these USE flags for x11-libs/qt-qt3support-4.7.1: U I - + kde : Select media-sound/phonon as phonon variant needed for kde (several flags omitted for clarity). kde is indeed not set in make.conf, but the installed qt-qt3support was built with kde, and equery can figure that out. emerge has a bug. The message it emits is incorrect. Either the message should say "it's not good enough to build with the flag, it needs to be in make.conf too", or emerge should DTRT and look at the actual installed package as equery does.
(In reply to comment #4) > emerge: there are no ebuilds built with USE flags to satisfy > ">=x11-libs/qt-qt3support-4.6.3:4[accessibility,kde]". I guess the "no ebuilds" part could be qualified with "in the calculated dependency graph". Having an installed package with the correct USE settings doesn't help you when it's going to be replaced with a package that has incorrect USE settings.
Or, maybe what you'd like is something like automatic USE dependency satisfaction as requested in bug 258371. The new --autounmask option is similar, though you have to use its suggestions to edit your config files.
(In reply to comment #6) > Or, maybe what you'd like is something like automatic USE dependency > satisfaction as requested in bug 258371. The new --autounmask option is > similar, though you have to use its suggestions to edit your config files. No, I want correct, intelligible behavior.
(In reply to comment #5) > I guess the "no ebuilds" part could be qualified with "in the calculated > dependency graph". Having an installed package with the correct USE settings > doesn't help you when it's going to be replaced with a package that has > incorrect USE settings. Well, the message says "built with". Since the last thing I did was to build the recommended version of the package with the recommended USE flag, that's damn confusing. It's also unclear to me why emerge thinks it's proper to replace a package I just built with user-specified flags, with the same version with different flags, if that is indeed what it is doing. It has to check that the package is there, and what version, to do its job. It could check the use flags, as well. If it's not going to do so, it should say "USE flags must be specified in the system config files; an installed package with the correct flags is not good enough."
(In reply to comment #8) > If it's not going to do so, it should say "USE flags must be specified in the > system config files; an installed package with the correct flags is not good > enough." The installed package works just fine, up until it's rebuilt due to -N/--newuse or some other reason such an upgrade.
So the bottom line is that when portage tells you "Package A requires USE flag B in package C", you must change your system configuration, even though *you* don't want to do any such thing, you want portage to take care of itself when you install packages with their default settings.
*sigh* I'll have to think about whether I want to use Gentoo any more, but I guess it's functioning as misdesigned.
(In reply to comment #10) > So the bottom line is that when portage tells you "Package A requires USE flag > B in package C", you must change your system configuration, even though *you* > don't want to do any such thing, you want portage to take care of itself when > you install packages with their default settings. In response to this, comment #6 seems relevant.
Note that it's possible to get approximate behavior to that requested in bug 258371 but setting EMERGE_DEFAULT_OPTS="--autounmask" in /etc/make.conf.