If I change my package.use file emerge apparently does not care when using --newuse. Maybe other features as well, I have not checked yet. Example: If I change add www-client/mozilla-firefox mozbranding to my package.use file and then run equery uses =www-client/mozilla-firefox -a it will detect the change in package.use and denote it properly + - mozbranding : Enable official branding but if I then run emerge --pretend --verbose --update --newuse Portage tells me that I don't have any changes and that no packages need to be re-emerged. To me this seems like it would be standard behavior for Portage to check files like package.use for changes and not just make.conf.
Sure it does... # echo "www-client/mozilla-firefox -mozbranding" >> /etc/portage/package.use # emerge --pretend --verbose --update --newuse mozilla-firefox These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] www-client/mozilla-firefox-2.0.0.1-r2 USE="-debug filepicker -gnome ipv6 java -mozbranding* -mozdevelop moznopango -restrict-javascript xforms xinerama -xprint" LINGUAS="-ar -bg -ca cs -da -de -el -en_GB -es -es_AR -es_ES -eu -fi -fr -fy -fy_NL -ga -ga_IE -gu -gu_IN -he -hu -it -ja -ka -ko -ku -lt -mk -mn -nb -nb_NO -nl -nn -nn_NO -pa -pa_IN -pl -pt -pt_BR -pt_PT -ru -sk -sl -sv -sv_SE -tr -zh -zh_CN -zh_TW" 0 kB
A common problem is having multiple entries in package.use. Portage uses the most specific entry (which can be ambiguous in some cases). Versions of portage prior to 2.1.2 only use the last entry for a given atom but 2.1.2 stacks them up.
It works in that case for me too, but thats sort of lame that I have to go through and update each package individually. If it works when doing packages individually why does it not work when using "world"? I would think it should do both. Medico, your point is taken. And I can understand how that would make it difficult, but does not explain why when updating newuse for world it doesn't check package.use.
Apparently it will check package.use if you update world if also include the --deep option. As they used to say on, In Living Color, "Hated it!"
It will always check package.use, your issue was that firefox wasn't included in the depgraph. Generally if you want emerge to act on "world" or "system" use -uD as options, and use neither if you're only targeting single packages (e.g. if you want to update a single package use `emerge --oneshot --noreplace package`, not `emerge --update package`) as --update doesn't really do what the name suggests.