was testing a bootstrap for unrelated reasons when i noticed this problem with virtuals: # emerge linux26-headers binutils -p These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] sys-kernel/linux-headers-2.4.22 [ebuild N ] sys-devel/gnuconfig-20040214 [ebuild N ] sys-devel/gettext-0.14.1 [ebuild N ] sys-libs/glibc-2.3.4.20041102 [ebuild N ] sys-devel/patch-2.5.9-r1 [ebuild N ] sys-kernel/linux26-headers-2.6.8.1-r2 [ebuild N ] sys-libs/ncurses-5.4-r5 [ebuild N ] app-shells/bash-3.0-r7 [ebuild N ] sys-devel/binutils-config-1.7 [ebuild U ] sys-devel/binutils-2.15.92.0.2-r2 [2.14.90.0.8-r1] notice how linux-headers and linux26-headers arent blocking ... if i do a simpler emerge, it does block: # emerge binutils -p These are the packages that I would merge, in order: Calculating dependencies ...done! [blocks B ] sys-kernel/linux-headers (from pkg sys-kernel/linux26-headers-2.6.8.1-r2) [ebuild N ] sys-devel/patch-2.5.9-r1 [ebuild N ] sys-kernel/linux-headers-2.4.22 [ebuild N ] sys-kernel/linux26-headers-2.6.8.1-r2 [ebuild N ] sys-devel/gnuconfig-20040214 [ebuild N ] sys-devel/gettext-0.14.1 [ebuild N ] sys-libs/glibc-2.3.4.20041102 [ebuild N ] sys-libs/ncurses-5.4-r5 [ebuild N ] app-shells/bash-3.0-r7 [ebuild N ] sys-devel/binutils-config-1.7 [ebuild U ] sys-devel/binutils-2.15.92.0.2-r2 [2.14.90.0.8-r1] however, neither of these are correct in what *should* be happening ... portage should select either linux-headers or linux26-headers (based upon the profile defaults of course) ... Portage 2.0.51-r13 (default-linux/x86/2004.3, gcc-3.3.4, unavailable, 2.6.8-gentoo-r4 i686) ================================================================= System uname: 2.6.8-gentoo-r4 i686 AMD Opteron(tm) Processor 246 Gentoo Base System version 1.4.16 Python: [2.3.4 (#1, Oct 24 2004, 00:50:52)] dev-lang/python: [Not Present] sys-devel/autoconf: [Not Present] sys-devel/automake: [Not Present] sys-devel/binutils: 2.14.90.0.8-r1 sys-devel/libtool: [Not Present] virtual/os-headers: [Not Present] ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O2 -mcpu=i686 -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /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 autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X alsa apm arts ati audiofile avi berkdb bitmap-fonts blas cdparanoia cdr crypt cups dvd dvdr encode f77 fftw flac font-server foomaticdb fortran freetype gd gdbm gif gimpprint glx gnome gnuplot gphoto2 gpm gtk gtk2 icq imlib ipv6 jabber jpeg jpeg2k kde ldap libg++ libwww linguas_pl lzw-tiff mad maildir mikmod mmx mmx2 motif mozilla mpeg ncurses network nls nptl objc oggvorbis ooo-kde opengl oss pam pdflib perl plotutils png python qt quicktime readline samba scanner sdl speex spell sse ssl svg svga tcltk tcpd theora threads tiff truetype truetype-fonts trutype type1-fonts videos wmf x86 xine xinerama xml2 xmms xv xvid zlib" Unset: LDFLAGS, PORTDIR_OVERLAY
upgrading severity since this version of portage will be unable to correctly create stage tarballs ...
2.0.51-r3 handles it a little better ... # emerge linux26-headers binutils -p | grep linux [ebuild N ] sys-kernel/linux-headers-2.4.21-r1 [ebuild N ] sys-kernel/linux26-headers-2.6.8.1-r2 # emerge binutils -p | grep linux [ebuild N ] sys-kernel/linux-headers-2.4.21-r1
2.0.51-r12 gets it right: # emerge linux26-headers binutils -p | grep linux [ebuild N ] sys-kernel/linux26-headers-2.6.8.1-r2 # emerge binutils -p | grep linux [ebuild N ] sys-kernel/linux-headers-2.4.21-r1
@@ -1278,7 +1276,7 @@ # XXX: Is this bad? -- It's a permanent modification self.treeVirtuals[virt] = portage_util.unique_array(self.treeVirtuals[virt]+[cp]) - return self.__getvirtuals_compile() + self.virtuals = self.__getvirtuals_compile() def regenerate(self,useonly=0,use_cache=1):
Fixing this created another bug which is at bug #79509. I've uploaded a patch there that fixes that bug. Can people test that there is no regression with regard to this one, please?
2.0.51-r15 fixed this