If packages are installed on a system that are later masked (e.g. can be done by removing them from /etc/portage/package.keywords), and an emerge is done, the warning about these masked packages will not appear the first time the emerge is tried. It will, however, appear on subsequent runs. This can be shown by rebooting and then trying the same emerge twice when such installed packages exist on your system and should give the warning. Here is example output of running the same emerge twice: scorpius joe # emerge -av netkit-telnetd These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] net-misc/netkit-telnetd-0.17-r8 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB Would you like to merge these packages? [Yes/No] n Quitting. * GNU info directory index is up-to-date. scorpius joe # emerge -av netkit-telnetd These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] net-misc/netkit-telnetd-0.17-r8 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB !!! The following installed packages are masked: - media-gfx/povray-3.6.1-r3 (masked by: ~x86 keyword) - media-sound/squeezecenter-7.2.0-r1 (masked by: ~x86 keyword) For more information, see the MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. Would you like to merge these packages? [Yes/No] n Quitting. * GNU info directory index is up-to-date. scorpius joe #
The difference in output can be explained by the fact that the --complete-graph behavior is automatically triggered whenever the dependency calculation time exceeds a 20 seconds. It would be preferable to enable the --complete-graph behavior at all times, but the performance difference is not always acceptable, so it's only triggered in cases when the dependency calculation time exceeds a 20 seconds. The reasoning is that the user is probably not focusing on the dependency calculation if it has already taken 20 seconds, and after that much time has passed, the extra time required to enable --complete-graph behavior is usually negligible. Something that is puzzling it that you report the warning the second time rather than the first time. This is the reverse of the expected behavior since normally the first invocation takes longer than the second. Anyway, you should always get the same result in all invocations if you explicitly specify the --complete-graph option.
Hey Zac, I'll have to check out the timing to see why it seems reversed for my case. IMHO, though, I think it'd be better to make the behavior predictable rather than having the heuristic of time determine what happens. As an example, I would never have guessed this was why two identical commands produced different output. Why not just have the default be not to do --complete-graph, and have the user choose whether or not this is in effect? (A little like --deep). I do think that a single letter param would be nice (like "D" for --deep), as many people would want to use it regularly. I do see what the intent is, but I just think that the behavior now can change in a seemingly random sense and potentially be confusing (and it gives the impression there's a bug, as I thought).
I've removed the automatic --complete-graph code in r11814.
This is fixed in 2.2_rc14.