app-biology/clustalx appears to be requireing libvibrant but makes mo mention of it. It therefor fails to build. Reproducible: Always Steps to Reproduce: 1. Start with a base stage3 installation 2. emerge -u clustalx Actual Results: oceanus2 distfiles # emerge -u clustalx Calculating dependencies ...done! >>> emerge (1 of 1) sci-biology/clustalx-1.83-r1 to / >>> md5 files ;-) clustalx-1.83-r1.ebuild >>> md5 files ;-) files/digest-clustalx-1.83-r1 >>> md5 src_uri ;-) clustalx1.83.sun.tar.gz >>> Unpacking source... >>> Unpacking clustalx1.83.sun.tar.gz to /var/tmp/portage/clustalx-1.83-r1/work >>> Source unpacked. gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer interface.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer sequence.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer showpair.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer malign.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer util.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer trees.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer gcgcheck.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer prfalign.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer pairalign.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer calcgapcoeff.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer calcprf1.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer calcprf2.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer calctree.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer readmat.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer alnscore.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer random.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer -DWIN_MOTIF -I/usr/include/ncbi xutils.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer -DWIN_MOTIF -I/usr/include/ncbi xmenu.c xmenu.c: In function `make_color_menu': xmenu.c:4618: warning: passing arg 3 of `Nlm_StatusItem' from incompatible pointer type gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer -DWIN_MOTIF -I/usr/include/ncbi xcolor.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer -DWIN_MOTIF -I/usr/include/ncbi xdisplay.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer -DWIN_MOTIF -I/usr/include/ncbi xscore.c gcc -c -march=pentium4 -Os -pipe -fomit-frame-pointer -DWIN_MOTIF -I/usr/include/ncbi clustalx.c gcc -o clustalx interface.o sequence.o showpair.o malign.o util.o trees.o gcgcheck.o prfalign.o pairalign.o calcgapcoeff.o calcprf1.o calcprf2.o calctree.o readmat.o alnscore.o random.o xutils.o xmenu.o xcolor.o xdisplay.o xscore.o clustalx.o -lm -march=pentium4 -Os -pipe -fomit-frame-pointer -L/usr/lib -L/usr/X11R6/lib -lvibrant -lncbi -lXm -lXmu -lXpm -lXt -lX11 -lm /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lvibrant collect2: ld returned 1 exit status make: *** [clustalx] Error 1 !!! ERROR: sci-biology/clustalx-1.83-r1 failed. !!! Function src_compile, Line 38, Exitcode 2 !!! (no error message) !!! If you need support, post the topmost build error, NOT this status message. Portage 2.0.53_rc7 (default-linux/x86/2005.1, gcc-3.3.6, glibc-2.3.5-r3, 2.6.9-22.ELsmp i686) ================================================================= System uname: 2.6.9-22.ELsmp i686 Intel(R) Xeon(TM) CPU 2.80GHz Gentoo Base System version 1.12.0_pre10 dev-lang/python: 2.3.5, 2.4.2 sys-apps/sandbox: 1.2.13 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1 sys-devel/binutils: 2.16.1 sys-devel/libtool: 1.5.20-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -Os -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" 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/terminfo /etc/env.d" CXXFLAGS="-march=pentium4 -Os -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="en_US.UTF-8" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="acpi bash-completion bcmath blas crypt cscope ctype curl curlwrappers emboss empress empress-bcs ethereal fastcgi java ldap lm_sensors mmx mono mpi ncurses netboot pam perl python readline ruby sse x86 userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LC_ALL, LDFLAGS, LINGUAS
Okay, I tracked this down. ClustalX needs to check to see that ncbi-tools was compiled with the "X" use flag. Perhaps simply check to see if the lib file exists and then if it doesn't throw a warning/error like pango does about cairo?
Hi Brady, "libvibrant" is part of the NCBI toolkit. Since you compiled this package without X in your "USE" flags, the library was not installed. As you noticed, recompiling the NCBI tools with X support solved the issue. Strictly speaking, the ebuild for ClustalX is not missing a dependency. The problem is rather that Portage does not support depending on a package compiled with a given set of "USE" flags. Until this is implemented, there will be no "clean" solution for this bug. I have added a check for X support in the NCBI tools as you suggested, but this is really only a workaround. Thanks for reporting.
Sorry to not explain things better! Checking/informing the user of the error is really all I was after. Thanks for your speedy reply to this issue!
Olivier, Could you elaborate on why built_with_use() from eutils.eclass is insufficient for this?
Donnie: Because the user who has -X in his USE flags and who types "emerge clustalx" is still screwed: he will compile ncbi-tools without X support, and immediately afterwards will be asked to recompile the package with X support enabled. Not exactly a clean solution. (I use "built_with_use" to do the check but I think depending on a package built with a given USE flag is a long overdue missing feature in Portage.)