By default, virtual/mta is mail-mta/ssmtp. After installing postscript I really want ssmtp to be blocked if "mailwrapper" is not in USE. Unfortunately, portage seems to allow ssmtp to be merged if it is defined as a virtual: # USE="-mailwrapper" emerge =postfix-2.0.19-r3 # USE="-mailwrapper" emerge =ssmtp-2.60.7-r1 -vp These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] mail-mta/ssmtp-2.60.7-r1 -ipv6 -mailwrapper -md5sum +ssl 0 kB # python -c 'import portage; print portage.settings.virtuals["virtual/mta"]' ['mail-mta/postfix', 'mail-mta/ssmtp'] # ( . /usr/portage/mail-mta/ssmtp/ssmtp-2.60.7-r1.ebuild && echo ${RDEPEND} ) -bash: inherit: command not found mailwrapper? ( >=net-mail/mailwrapper-0.2 ) !mailwrapper? ( !virtual/mta ) net-mail/mailbase ssl? ( dev-libs/openssl ) # sed -ie '/ssmtp/d' /etc/make.profile/virtuals # USE=-mailwrapper emerge =ssmtp-2.60.7-r1 -vp These are the packages that I would merge, in order: Calculating dependencies ...done! [blocks B ] mail-mta/postfix (from pkg mail-mta/ssmtp-2.60.7-r1) [ebuild N ] mail-mta/ssmtp-2.60.7-r1 -ipv6 -mailwrapper -md5sum +ssl 0 kB It gets even weirder. I should have stopped when I thought I'd solved the problem. # cd /etc/make.profile && rm virtuals && cvs up virtuals # sed -ie 's/ssmtp/sendmail/' /etc/make.profile/virtuals # python -c 'import portage; print portage.settings.virtuals["virtual/mta"]' ['mail-mta/postfix', 'mail-mta/sendmail'] # USE=-mailwrapper emerge =ssmtp-2.60.7-r1 -vp These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] mail-mta/ssmtp-2.60.7-r1 -ipv6 -mailwrapper -md5sum +ssl 0 kB # sed -ie '/sendmail/d' /etc/make.profile/virtuals # python -c 'import portage; print portage.settings.virtuals["virtual/mta"]' ['mail-mta/postfix'] # USE=-mailwrapper emerge =ssmtp-2.60.7-r1 -vp These are the packages that I would merge, in order: Calculating dependencies ...done! [blocks B ] mail-mta/postfix (from pkg mail-mta/ssmtp-2.60.7-r1) [ebuild N ] mail-mta/ssmtp-2.60.7-r1 -ipv6 -mailwrapper -md5sum +ssl 0 kB Okay, that's really weird! # emerge info Portage 2.0.51_pre9 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3_pre20040420-r0, 2.6.5-gentoo-r1) ================================================================= System uname: 2.6.5-gentoo-r1 i686 Intel(R) Pentium(R) M processor 1600MHz Gentoo Base System version 1.4.15 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.3 Binutils: sys-devel/binutils-2.14.90.0.8-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O2 -mcpu=i686 -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -mcpu=i686 -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache cvs noauto sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.us.gentoo.org/gentoo-portage" USE="X aalib alsa apm arts avi berkdb cdr crypt cups dvd encode esd flac foomaticdb gdbm gif gnome gpm gtk gtk2 imlib java jpeg kde ldap libg++ libwww mad mikmod mmx motif mozilla mpeg ncurses nls nptl oggvorbis opengl oss pam pda pdflib perl png python qt quicktime readline sdl slang spell sse ssl svga tcltk tcpd tetex tiff truetype x86 xml2 xmms xv zlib" Reproducible: Always Steps to Reproduce: 1. 2. 3.
s/postscript/postfix/g
I should also add that the postfix and ssmtp versions I referenced (and the sendmail version as well) are all package.mask'd, w/ corresponding entries in /etc/portage/package.unmask.
If I had to guess I'd say it's substituting in for the blocker incorrectly.
Fixed in CVS. (It happens when there are two or more packages in one virtual varibale.)
Bug has been fixed and released in stable portages on or before 2.0.51-r2