Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 345175 - equery says package is installed with correct use flags, but emerge wants them in make.conf
Summary: equery says package is installed with correct use flags, but emerge wants the...
Status: RESOLVED INVALID
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-12 07:11 UTC by Stephen J. Turnbull
Modified: 2010-11-15 03:00 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stephen J. Turnbull 2010-11-12 07:11:00 UTC
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.
Comment 1 Zac Medico gentoo-dev 2010-11-12 07:48:43 UTC
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.
Comment 2 Stephen J. Turnbull 2010-11-14 12:21:37 UTC
(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.

Comment 3 Zac Medico gentoo-dev 2010-11-14 13:48:25 UTC
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.
Comment 4 Stephen J. Turnbull 2010-11-14 15:12:24 UTC
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.
Comment 5 Zac Medico gentoo-dev 2010-11-14 15:30:16 UTC
(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.
Comment 6 Zac Medico gentoo-dev 2010-11-14 15:36:45 UTC
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.
Comment 7 Stephen J. Turnbull 2010-11-14 16:52:38 UTC
(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.


Comment 8 Stephen J. Turnbull 2010-11-14 17:06:12 UTC
(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."
Comment 9 Zac Medico gentoo-dev 2010-11-14 17:08:55 UTC
(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.
Comment 10 Stephen J. Turnbull 2010-11-15 00:15:28 UTC
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.
Comment 11 Stephen J. Turnbull 2010-11-15 00:16:42 UTC
*sigh*  I'll have to think about whether I want to use Gentoo any more, but I guess it's functioning as misdesigned.
Comment 12 Zac Medico gentoo-dev 2010-11-15 02:58:22 UTC
(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.
Comment 13 Zac Medico gentoo-dev 2010-11-15 03:00:48 UTC
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.