host lesstif # emerge -up world These are the packages that I would merge, in order: Calculating world dependencies - !!! all ebuilds that could satisfy "x11-libs/lesstif" have been masked. !!! (dependency required by "app-text/xpdf-2.01" [ebuild]) host lesstif # emerge -s lesstif Searching... [ Results for search key : lesstif ] [ Applications found : 1 ] * x11-libs/lesstif [ Masked ] Latest version available: 0.93.36-r2 Latest version installed: 0.93.36-r2 Size of downloaded files: 2,425 kB Homepage: http://www.lesstif.org/ Description: An OSF/Motif(R) clone. It seems that it wont honor it as a dep even though it's installed already. Here's my info: Portage 2.0.46-r4 (default-ppc-1.4, gcc-3.2.1, glibc-2.3.1-r2) ================================================================= System uname: 2.4.20-rc1-ben0 ppc 0 USE="oss dvd xv libwww jpeg nls mitshm gif gnome png truetype ppc gnome-libs gdbm berkdb slang readline arts tcltk X sdl gpm tcpd pam ssl perl python esd imlib oggvorbis gtk qt kde motif opengl mozilla cdr" ARCH="ppc" COMPILER="gcc3" CHOST="powerpc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fsigned-char" CXXFLAGS="" ACCEPT_KEYWORDS="ppc" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3/share/config /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" MAKEOPTS="-j2" JDK_HOME="" JAVA_HOME="" AUTOCLEAN="yes" SYNC="rsync://192.168.0.6/gentoo-x86-portage/" GENTOO_MIRRORS="http://192.168.0.6/distfiles/"
This comes from specifing --update. 'emerge xpdf' would acknowledge that lesstif is installed and would merge okay. 'emerge -u xpdf' wants to try to update lesstif, and at this point the masked version you have installed becomes "invisible" (because it is masked). Portage wants to install an unmasked version but finds none. This is the same mechanism that tries to downgrade your installed masked packages to the latest non-masked version during 'emerge -u world'. My patch from bug 14078 would allow the '-u world' to continue, although it still would not upgrade xpdf. I believe Portage is working as designed. Since your ACCEPT_KEYWORDS does not allow for masked packages and you've asked it to upgrade, it can't find a way to give you a non-masked lesstif and errors out. The erroring out part is not entirely helpful. I think the design could be extended to allow an installed package to meet a dependency when no suitable upgrade can be found, allowing xpdf to be upgraded.
Created attachment 7428 [details, diff] emerge.diff This patch changes emerge so that when checking dependencies if no installable (unmasked) candidates exist, but a matching masked version is on disk, the dependency is considered satisfied. geep root # emerge -up xpdf These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild U ] app-text/xpdf-2.01-r1 [2.01] geep root # emerge -up lesstif These are the packages that I would merge, in order: Calculating dependencies !!! all ebuilds that could satisfy "lesstif" have been masked. !!! Error calculating dependancies. Please correct. geep root # emerge -up world These are the packages that I would merge, in order: Calculating world dependencies ...done! [ebuild U ] app-text/xpdf-2.01-r1 [2.01]
I should mention that in my example I edited xpdf-2.01-r1 to depend on lesstif.
I was concerned about this because I was sure the previous behaviour was that if something that met or beat the dependancy was already install (masked or not) it wouldn't complain... but I could be wrong.
old bug, putting it to bed