Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 37679 - portage ignores use flag changes
Summary: portage ignores use flag changes
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-01-09 05:05 UTC by Jarkko
Modified: 2004-01-11 22:51 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 Jarkko 2004-01-09 05:05:18 UTC
I changed my use flags and did "emerge -epv world". The use flag settings were not updated until I added every removed use flag as -<foo> to make.conf

This doesn't feel healthy and I think this must be a bug.

Reproducible: Always
Steps to Reproduce:
1. Get latest portage (r21) 
2. Remove some use flags
3. emerge info | grep USE= 

Actual Results:  
Old use flags.

Expected Results:  
The new use flags.

I think this worked with r15. I'm not sure and I cannot give more information 
at the moment because I'm at work and this happened with my home PC.

Also I cannot use X at the moment because of this problem and this bugzilla 
doesn't work with lynx.

Is this normal behaviour? If it is I think it is not well thought off because 
use flags should be always honoured and not rememberd from the last build.

There's a bug about portage not remembering use flags when updating. I think 
portage should remember use flags when updating but not when rebuilding.
Comment 1 Marius Mauch (RETIRED) gentoo-dev 2004-01-09 09:36:29 UTC
Want to tell us what you changed, might be some flags in make.defaults or autouse.
Comment 2 Nicholas Jones (RETIRED) gentoo-dev 2004-01-11 16:52:05 UTC
As Marius said... They are implied/automatic use flags.
It works how it's supposed to. -flag removes it. Empty
is not "off".
Comment 3 Jarkko 2004-01-11 22:26:46 UTC
Yes, it was those automatic use flags which caused this behaviour. Although here's what happened:

- I enabled some flags that were not very good for my system.
- I removed the flags and build the system with the new ones. ("emerge -e world")
  --> The build failed because it tried to build with the old flags, not with the new ones.

I think the autouse feature is good but not when building the whole system again. One would expect that "emerge --emptytree world" builds the system with the new settings, not with the old ones.
Comment 4 SpanKY gentoo-dev 2004-01-11 22:29:38 UTC
well, like nick said, empty is not the samething as -flag

you could always have done `emerge world -epv` and looked at the use flag leverage ... or changed all the flags you wanted to '-flag'
Comment 5 Jarkko 2004-01-11 22:51:28 UTC
Yes, I know this is something that "works like specified" but it's also something that works differently than what the user expects.


The documentation says:

An interesting side effect of how world update works can be exploited by users wishing to recompile all installed software on a system. Since world update will try to update all packages mentioned in the world file and their dependencies, the use of the argument --emptytree is a way of forcing the recompile of these packages and every dependency except for glibc. This can be useful for users wishing to change their compiler options or USE keyword settings and want these changes to be used by all the software they use without manually remerging every package. Simply populate the world file with all your commonly used applications and issue the following command: 

Code listing 3.11: Recompile all dependencies too
 
# emerge --update world --emptytree


It doesn't say "Hey, you must set every removed flag as -<foo> for this to work".

Also, I don't want to leave the flags as -<foo> after recompiling because if the make.defaults sets them on after some upgrade, I'd like them to be set.

This is not logical behaviour because user expects that the --emptytree option empties the automatic use flags too. The tree is not completely empty otherwise.