It looks like portage only checks for blocks with already installed packages when merging something, not with packages that will be merged by the current merge. Some examples: ACCEPT_KEYWORDS="~x86" emerge -vp turck-mmcache PECL-apc Calculating dependencies ...done! [ebuild N ] net-libs/c-client-2002e-r2 +ssl 2,106 kB [ebuild N ] app-crypt/mhash-0.9.1 362 kB [ebuild N ] dev-libs/libmcrypt-2.5.7 511 kB [ebuild N ] app-text/sablotron-1.0.1 -doc -perl 474 kB [ebuild N ] media-libs/freetype-1.3.1-r4 +nls +tetex 1,919 kB [ebuild N ] media-libs/t1lib-5.0.2 +X -doc 1,657 kB [ebuild N ] dev-php/mod_php-4.3.6-r2 +X +apache2 +berkdb +crypt -curl -debug -debug -doc -fdftk -firebird -flash -freetds -gd -gd-external +gdbm -gmp -hardenedphp +imap -informix -ipv6 +java +jpeg -kerberos -ldap -mcal -memlimit -mssql -mysql +nls -oci8 -odbc +pam +pdflib +png +postgres +qt -snmp +spell +ssl -tiff +truetype +xml2 -yaz 3,876 kB [ebuild N ] dev-php/turck-mmcache-2.4.6 114 kB [ebuild N ] dev-php/php-4.3.6-r1 +X +berkdb +crypt -curl -debug -doc -fdftk -firebird -flash -freetds -gd -gd-external +gdbm -gmp -hardenedphp +imap -informix -ipv6 +java +jpeg -kerberos -ldap -mcal -memlimit -mssql -mysql +ncurses +nls -oci8 -odbc +pam +pdflib +png +postgres +qt +readline -snmp +spell +ssl -tiff +truetype +xml2 -yaz 3,876 kB [ebuild N ] dev-php/PECL-apc-2.0 42 kB This happily merges both, while the turck-mmcache ebuild has: DEPEND="$DEPEND !dev-php/ioncube_loaders !dev-php/php-accelerator !dev-php/PECL-apc" Another example: emerge -vp mit-krb5 heimdal These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] app-crypt/mit-krb5-1.3.1-r1 -krb4 -static 6,013 kB [ebuild N ] app-crypt/heimdal-0.6.2 +berkdb -ipv6 -krb4 +ssl 3,235 kB These two both provide virtual/krb5, and have !virtual/krb5 in their DEPEND. The case where this bug is really biting right now is with x86 people installing xorg-x11 on a fresh install. If they unmask xorg-x11, then run "emerge xorg-x11 gnome", gnome will pull in virtual/x11 as a dependency, portage will pick xfree to fulfill this dependency (because that is listed in /usr/portage/default-x86-2004.0/virtuals) and because the block between xfree and xorg-x11 is not detected, people end up with xorg-x11 and xfree overwriting each other. I've tested this with the current stable portage. If this is already solved in development portage, please close. Reproducible: Always Steps to Reproduce: 1. emerge two blocking packages, making sure none of them is installed yet. 2. 3. Actual Results: portage suggests merging both Expected Results: it should have told me they block each other and refused to merge. Portage 2.0.50-r8 (default-x86-1.4, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.7) ================================================================= System uname: 2.6.7 i686 AMD Athlon(tm) XP 2600+ Gentoo Base System version 1.4.16 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -march=athlon-xp -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O2 -march=athlon-xp -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox userpriv" GENTOO_MIRRORS="ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://www.mirror.ac.uk/sites/www.ibiblio.org/gentoo/ ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /usr/local/bmg-main" SYNC="rsync://rsync.nl.gentoo.org/gentoo-portage" USE="3dnow X aalib alsa apache2 berkdb cdr crypt dga emacs encode esd faad fam fbcon fluidsynth gdbm gif gnome gpm gstreamer gtk gtk2 imap jack java javascript jikes jpeg libcaca lufsusermount maildir mikmod mmx mng mozilla mpeg msn ncurses nls nptl oggvorbis opengl pam pdflib png postgres python qt quicktime readline sdl slang slp softmmu spell sse ssl tcpd tetex truetype unicode usb x86 xml xml2 xosd xv zlib"
In CVS. Will be included by 2.0.51.
Bug has been fixed and released in stable portages on or before 2.0.51-r2