I just did an "emerge rsync", "emerge --pretend world", "emerge world", "emerge --pretend clean". I noticed that "emerge --pretend clean" wanted to delete the just installed version and keep the old one for two packages: iptables (1.2.7 vs. 1.2.6a-r1) and tetex (1.0.7-r11 vs. 1.0.7-r10). I checked the mask file: For both packages, the new version is masked due to problems (for iptables, a bugzilla search shows that 1.2.7 is seriously broken!). Why have these package versions been emerged by "emerge world" if they are both masked??? An "emerge world" should update my system to the latest stable versions, it should never install known-to-be-broken or marked-for-testing versions (without telling me)!
no, these packages got masked after the problems were discovered.
These packages were listed as "masked" in the mask file at the very moment I did my "emerge world". "emerge world" should consult the mask file, and should not install masked packages (or at least warn me and require some confirmation option), immediately before it is going to install something - it is obviously not doing that! If "emerge world" ignores the mask file (to my opinion, it should not!!!), "emerge clean" must also ignore the mask file (and keep the masked version, deleting the older version), otherwise the common, daily operation "emerge world; emerge clean" would break things: Currently, "emerge clean" obeys the mask file, "emerge world" does not. * "emerge world" emerges the new version, usually overwriting files of the previously installed version. * "emerge clean" removes *all* files of the newly installed version, including those which replaced files of the previously installed version. Hence, the newly installed version is gone, and the previously installed version is damaged seriously!
emerge world obeys the mask. Closing this bug as invalid.