emerging cyrus-sasl-2.1.21-r1 when using confcache causes the compile to die: -- i686-pc-linux-gnu-gcc -Wall -W -O2 -march=prescott -fomit-frame-pointer -pipe -fno-ident -Wl,-O1 -o pwcheck pwcheck.o pwcheck_getspnam.lo -lresolv -lresolv pwcheck_getspnam.lo: In function `pwcheck':pwcheck_getspnam.c:(.text+0x31): undefined reference to `crypt' collect2: ld returned 1 exit status make[2]: *** [pwcheck] Error 1 make[2]: Leaving directory `/var/tmp/portage/cyrus-sasl-2.1.21-r1/work/cyrus-sasl-2.1.21/pwcheck' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/cyrus-sasl-2.1.21-r1/work/cyrus-sasl-2.1.21' make: *** [all] Error 2 !!! ERROR: dev-libs/cyrus-sasl-2.1.21-r1 failed. !!! Function src_compile, Line 181, Exitcode 2 -- "FEATURES=-confcache emerge cyrus-sasl" is successful. i'll attach a config.log for a failed and completed build. would any files from ~/.confcache help as well? Portage 2.0.53_rc7 (default-linux/x86/2005.1, gcc-4.0.3-beta20051124, glibc-2.3.6-r1, 2.6.14-ck5 i686) ================================================================= System uname: 2.6.14-ck5 i686 Mobile Intel(R) Pentium(R) 4 CPU 3.06GHz Gentoo Base System version 1.12.0_pre11 ccache version 2.4 [enabled] dev-lang/python: 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.91.0.3, 2.16.91.0.4 sys-devel/libtool: 1.5.20-r1 virtual/os-headers: 2.6.11-r3 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=prescott -fomit-frame-pointer -pipe -fno-ident" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/share/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=prescott -fomit-frame-pointer -pipe -fno-ident -fvisibility-inlines-hidden" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache confcache distlocks parallel-fetch sandbox sfperms" GENTOO_MIRRORS="http://gentoo.chem.wisc.edu/gentoo/" LDFLAGS="-Wl,-O1" LINGUAS="en" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/home/dirtyepic/overlay" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X a52 aac acpi alsa avi bash-completion berkdb bzip2 cdr crypt curl dbus dri dts dvd dvdr dvdread encode exif fam ffmpeg fftw firefox flac gdbm gif gnutls gphoto2 gtk gtk2 hal imagemagick imlib java jpeg kde mad mmap mmx mng mp3 mpeg mpi ncurses nntp nptl nsplugin ogg oggvorbis opengl pcmcia perl pic png python qt quicktime readline ruby sdl sse sse2 ssl svg tcpd threads tiff truetype usb vcd vorbis wifi win32codecs xine xml xml2 xv xvid zlib linguas_en userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL
[ebuild R ] dev-libs/cyrus-sasl-2.1.21-r1 -authdaemond +berkdb +crypt +gdbm +java -kerberos -ldap -mysql -ntlm_unsupported_patch -pam -postgres -sample -srp +ssl +urandom 0 kB
Created attachment 73702 [details] config.log for failed build
Created attachment 73703 [details] config.log for successful build
I assume this is with ferringb's pyconfcache, and if so, what version of pyconfcache are you using? If it's not pyconfcache please specify what confcache you are using :)
oops. this is dev-utils/confcache-0.3.3 from portage, which i believe is brian's pyconfcache.
Created attachment 73704 [details] config.status.diff these diffs of config.status and config.cache should be a lot more helpful to you than the config.logs.
Created attachment 73705 [details] config.cache.diff
especially these parts: (config.status) -s,@LIB_CRYPT@,,;t t +s,@LIB_CRYPT@,-lcrypt,;t t s,@GSSAPI_LIBS@,,;t t s,@GSSAPIBASE_LIBS@,,;t t -s,@PLAIN_LIBS@,,;t t +s,@PLAIN_LIBS@,-lcrypt,;t t (config.cache) -ac_cv_func_crypt=${ac_cv_func_crypt=yes} +ac_cv_func_crypt=${ac_cv_func_crypt=no}
Assigning to Brian as it's his package :) I assume I'm correct in keeping this out of dev-portage Brian?
Alec: yeah, confcache horkage falls on my head (regardless if the portage integration goes mainline or not). :) Ryan: Backup a copy of /var/tmp/confcache (attach the tarball here please), remove the directory, and try it again. Offhand, roughly a test got cached stating crypt wasn't available, which confcache is (obviously) missing testing. Mildly whacko, but a possibility here is that the original test was stat based, and sandbox isn't logging stat calls. Either way, can look through the file db and do some digging, then do some digging in sandbox code (again). :)
Created attachment 73722 [details] contents of cache at time of error
Actually, the opposite, there's a configure with a broken test out there, that checks for crypt() presence while adding -lcrypt; the checked files are the same (because cyrus-sasl is actually checking crypt() function in -lcrypt later) but in the first case it would tell that there's crypt() without needing any external library. I don't think there's a way to fix that in confcache itself, so we would have to check what was merged before cyrus-sasl when it broke and find the misbehaving configure and fix it. I think this is still one of the main drawbacks: if ocnfigures does stupid things, they can break lots of stuff.
Fix via adding RESTRICT='confcache' to the ebuild if it's not fixed by the 0.4.1 release.
okay i just hit this again tonight so looks like confcache-0.4.1 doesn't fix it. does RESTRICT='confcache' need to be added to cyrus-sasl or to the package that has the broken configure? i'll attach the list of the ebuilds emerged before cyrus-sasl. it's long but better than nothing. i'll try to narrow it down a bit unless someone thinks it's not worth the trouble. =P
Created attachment 79549 [details] ebuild list
got it. it's dev-lang/ruby.
*bump*
All of ruby is confcache-restricted already, so this instance is fixed. The main issue here is that confcache should probably simply ignore to cache some values as they are often mishandled by the configures... I'll try to get a /usr/share/confcache/blacklist file working in the next days, if I find time for them (right now I'm feverish, better NOT hack at it).