After an $>emerge -u fam x11-libs/libxklavier dev-perl/MIME-Base64 the world file was 3 lines bigger regardless of the fact that these packages are only dependencies of other packages and where never explicitely emerged. The reason for doing the update statement was to prevent the whole system to be updated. I think portage should not update the world file if the parameter -u is used. Reproducible: Always Steps to Reproduce: 1. 2. 3.
Emerge doesn't if add packages to the world file if you specify --update *and* the package is installed already. Please confirm this was the case and, if not, report what the output of emerge --info.
Did some testing and you are right. Fixed in CVS.
*** Bug 70355 has been marked as a duplicate of this bug. ***
I would not even limit this to the case when option "-u" is given. If you do, "emerge -u <some-package>", and that package hasn't been installed at all yet, it is very reasonable to put it in the world-profile. I'd choose a different criteria when to put it in worl-propile and when not. In Bug 70355, i decribed that portage should only add packaged to world-profile if (and only if) they don't show up with a big "U" in an "emerge -p". So if "emerge -p xorg-x11" would show [ebuild U ] x11-base/xorg-x11-6.8.0-r1 [6.7.0-r1] than portage should not put it into world-profile even when doing a "emerge xorg-x11" without the "-u" option.
Ohh, there are not only "new" and "update" emerges, but also "repair" emerges. So i should perhaps rephrase: a portage should be added to the world-profile if (and only if) an "emerge --pretend" shows an "N" like this here: [ebuild N ] x11-base/xorg-x11-6.8.0-r1 [6.7.0-r1]
Unless you can provide a good reason why, I think no. --oneshot already exists for this reason (as well as others).
people aren't aware of the fact that portage records packages explicitly emerged in the world-profile, and i'd guess that at least the world-profiles of 50% of the users out there contain packages, that went there by doing a "emerge libxslt" or something, but the user just wanted to do an update, and he doesn't recognize the difference between "emerge --oneshot libxslt" and "emerge libxslt". I just think, that portage should try to guess as good as it can if the user wants just to update or repair a package.
*** This bug has been marked as a duplicate of 48181 ***