Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 391893

Summary: confusing USE dependency conflict
Product: Portage Development Reporter: Martin von Gagern <Martin.vGagern>
Component: Core - ConfigurationAssignee: Portage team <dev-portage>
Status: RESOLVED DUPLICATE    
Severity: minor    
Priority: Normal    
Version: 2.2   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 300071    
Attachments: emerge --info

Description Martin von Gagern 2011-11-25 20:12:23 UTC
Created attachment 293755 [details]
emerge --info

Currently, my portage 2.2.0_alpha75 fails to update world:

emerge: there are no ebuilds built with USE flags to satisfy
">=gnome-extra/nm-applet-0.9.1.90[bluetooth?]".
!!! One of the following packages is required to complete your request:
- gnome-extra/nm-applet-0.9.1.95::gentoo (Change USE: +bluetooth)
- gnome-base/gnome-core-apps-3.2.1::gentoo (Change USE: -bluetooth)

That's strange, because I've got USE="... -bluetooth" in my make.conf, haven't changed USE_ORDER, so I'd expect the make.conf setting to override the package default.

I assume you don't have full three-state logic here, but in that case, please at least document that fact appropriately.
Comment 1 Zac Medico gentoo-dev 2011-11-25 20:22:02 UTC
(In reply to comment #0)
> That's strange, because I've got USE="... -bluetooth" in my make.conf, haven't
> changed USE_ORDER, so I'd expect the make.conf setting to override the package
> default.

Yes, that's strange. You can use `portageq envvar USE_ORDER` to check the value that's being used. It may be that use have a /etc/portage/package.use setting which overrides your negative make.conf setting.
Comment 2 Martin von Gagern 2011-11-25 20:29:32 UTC
(In reply to comment #1)
> You can use `portageq envvar USE_ORDER` to check the value that's being used.

# portageq envvar USE_ORDER
env:pkg:conf:defaults:pkginternal:repo:env.d

Looks good to me, as conf precedes pkginternal.

> It may be that use have a /etc/portage/package.use setting
> which overrides your negative make.conf setting.

Nope, checked that. Added a negative flag there now, for this single package, to work around this problem for now.
Comment 3 Zac Medico gentoo-dev 2011-11-25 20:36:41 UTC
Make sure that you don't have any overriding settings later in make.conf, or via a 'source foo.conf' statement that pulls in settings from another config file. Also, it /etc/portage/make.conf exists, then it overrides /etc/make.conf.
Comment 4 Martin von Gagern 2011-11-25 21:10:05 UTC
(In reply to comment #2)
> Added a negative flag there now, for this single package,
> to work around this problem for now.

No luck: neither adding a negative flag to an /etc/portage/package.use/* file nor to the USE flag environment variable will work.
Comment 5 Martin von Gagern 2011-11-25 21:14:38 UTC
(In reply to comment #3)
> Make sure that you don't have any overriding settings later in make.conf,

Checked: No other mention of bluetooth.

> or
> via a 'source foo.conf' statement that pulls in settings from another config
> file.

Checked: The only occurrence of "source" is in a comment.

> Also, it /etc/portage/make.conf exists, then it overrides /etc/make.conf.

Checked: Doesn't exist.
Comment 6 Martin von Gagern 2011-11-25 22:54:26 UTC
Simply trying to emerge gnome-base/gnome-core-apps instead of a world update resulted in several USE flag config problems. After selecting avahi[autoipd] and liboauth[-curl], and also unmerging gnome-extra/fast-user-switch-applet due to its dependency on gnome-panel[bonobo], things start to become clearer, as I get a more useful error message for the world update now:

The following USE changes are necessary to proceed:
#required by gnome-base/gnome-core-apps-3.2.1, required by gnome-base/gnome-3.2.1, required by @selected, required by @world (argument)
>=gnome-extra/nm-applet-0.9.2.0 bluetooth
#required by gnome-base/gnome-3.2.1, required by @selected, required by @world
>=gnome-base/gnome-core-apps-3.2.1 bluetooth

Looking at the ebuild, gnome really has a hard dependency on bluetooth, which might possibly be due to bug #362613.

The original error message didn't give an indication to that effect, though, perhaps due to those other unresolved problems. Do you want to close this WORKSFORME, or do you think there is a chance of improving the error message?
Comment 7 Zac Medico gentoo-dev 2011-11-25 23:05:55 UTC
(In reply to comment #0)
> emerge: there are no ebuilds built with USE flags to satisfy
> ">=gnome-extra/nm-applet-0.9.1.90[bluetooth?]".
> !!! One of the following packages is required to complete your request:
> - gnome-extra/nm-applet-0.9.1.95::gentoo (Change USE: +bluetooth)
> - gnome-base/gnome-core-apps-3.2.1::gentoo (Change USE: -bluetooth)

Did you have gnome-base/gnome-core-apps-3.2.1 installed already with bluetooth enabled? Maybe that would explain why it didn't trigger the autounmask message shown in comment #6.
Comment 8 Martin von Gagern 2011-11-25 23:24:04 UTC
(In reply to comment #7)
> Did you have gnome-base/gnome-core-apps-3.2.1 installed already with bluetooth
> enabled?

No, I didn't.
Comment 9 Zac Medico gentoo-dev 2011-11-25 23:50:49 UTC
The autounmask message is supposed to be displayed before the unsatisfied dependency message. Is it possible that it displayed both, but you noticed the unsatisfied dependency message because it was the last thing displayed?
Comment 10 Martin von Gagern 2011-11-26 09:03:22 UTC
(In reply to comment #9)
> Is it possible that it displayed both, but you noticed the
> unsatisfied dependency message because it was the last thing displayed?

Could be. I believe I did scroll back, but it might be that I accidentially scrolled back my terminal, not the screen I had running inside that.
Comment 11 Zac Medico gentoo-dev 2011-11-26 18:48:19 UTC
(In reply to comment #10)
> (In reply to comment #9)
> > Is it possible that it displayed both, but you noticed the
> > unsatisfied dependency message because it was the last thing displayed?
> 
> Could be. I believe I did scroll back, but it might be that I accidentially
> scrolled back my terminal, not the screen I had running inside that.

I guess something like that happened. I think we can categorize this as "confusion related to --autounmask being enabled by default", like bug 372569.

*** This bug has been marked as a duplicate of bug 372569 ***