After a bit of a purge of old kernel ebuilds, I started getting this error message when running an update: # emerge --update --deep world --pretend These are the packages that I would merge, in order: Calculating world dependencies | !!! all ebuilds that could satisfy "virtual/linux-sources" have been masked. !!! (dependency required by "media-video/nvidia-kernel-1.0.3123-r2" [ebuild]) I have the following kernel packages installed: # qpkg -v -I -g sys-kernel sys-kernel/wolk-sources-4.0_pre9 * sys-kernel/linux-headers-2.4.19 * sys-kernel/vanilla-sources-2.4.20 * sys-kernel/usermode-sources-2.4.19-r25 * Both vanilla-sources-2.4.20 and wolk-sources-4.0_pre9 inherit from the kernel eclass. This eclass does PROVIDE="virtual/linux-sources" but this variable is obviously not getting passed down. I doubt if this is relevant, but I'm not actually running either of these kernels (I'm using vanilla 2.4.21-pre4, which I downloaded/patched myself). Portage version is 2.0.46-r12. - olly
please post `emerge info`
Okay, been doing more digging and it wasn't what I thought - virtual/linux-sources was being inherited (it was showing up in /var/db/pkg/sys-kernel/*/PROVIDE"). The problem seems to have been down to the way portage handles virtual dependencies and keyword masking. 'emerge -up --deep nvidia-kernel' fails due to unsatified dependency for virtual/linux-sources. On the other hand 'ACCEPT_KEYWORDS="~x86" emerge -up --deep nvidia-kernel' works. This is because wolk-sources are masked with KEYWORDS="~x86". The update without ACCEPT_KEYWORDS="~x86" still fails after wolk-sources have been unmerged. This is despite the only kernel-sources package now being vanilla-sources-2.4.20 which is stable. And the update with ~x86 will now result in wolk-sources being remerged. Finally, remerging vanilla-sources makes the problem go away. The virtual/linux-sources dependency is now satisfied both with and without ACCEPT_KEYWORDS="~x86". As far as I can tell, this is all happening because portage is only looking at the only the last package to be emerged that satisfies the virtual dependency. I can't tell why it is doing this (/etc/make.profile/virtuals has always given gentoo-sources as being the default for linux-sources, and I wasn't sure where else to look). In cases like this - if the last merged package satisfying the dependency is masked or has since been unmerged, portage needs to be more intelligent and see if any other merged packages will do. - olly
Oops, forgot emerge info. And sorry about the word-wrapping - thought bugzilla would do that for me :( # emerge info Portage 2.0.46-r12 (default-x86-1.4, gcc-3.2.1, glibc-2.3.1-r2) ================================================================= System uname: 2.4.21-pre4 i686 AMD Athlon(tm) XP 1900+ GENTOO_MIRRORS="ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo/ http://gentoo.oregonstate.edu/ http://www.ibiblio.org/pub/Linux/distributions/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="/usr/local/portage" USE="x86 3dnow apm avi crypt cups encode gif jpeg libg++ libwww mikmod mmx mpeg ncurses nls pdflib png qtmt quicktime spell truetype xml2 xmms xv zlib gtkhtml alsa gdbm berkdb slang readline bonobo svga tcltk java guile X sdl gpm tcpd pam ssl perl python esd imlib oggvorbis gnome gtk qt opengl mozilla cdr +3dnow +alsa -arts +cups +doc +evo +gtk +gtk2 +gpm +java -kde +maildir +mmx -motif +mozilla +nls +oggvorbis +opengl -oss +python +quicktime +sdl +truetype +X +xmms" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -O3 -pipe -funroll-loops -fomit-frame-pointer" CXXFLAGS="-march=athlon-xp -O3 -pipe -funroll-loops -fomit-frame-pointer" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" FEATURES="sandbox ccache"
don't worry about it, i just wanted to make sure that the reason it was failing was what i thought it was ;) *** This bug has been marked as a duplicate of 9050 ***