sys-libs/cracklib-2.8.2 fails to emerge when bootstrapping a stage2 system to stage3. The problem seems to be caused by the fact that libcrack.so.2 does not yet exist in stage2, but the invocation of cracklib-packer in the src_install() rule of the ebuild script assumes it is already present on the system somewhere. Perhaps LD_LIBRARY_PATH should be temporarily set to help cracklib-packer find libcrack.so.2 in this particular case? Reproducible: Always Steps to Reproduce: 1. install stage2 tarfile somewhere (or upgrade from stage1 to stage2) 2. emerge sync 3. emerge -e system (or emerge cracklib) Actual Results: The cracklib shared libraries and applications build and link as expected. However, when trying to invoke cracklib-format near the bottom of the ebuild, as follows: cracklib-format dicts/cracklib-small \ | cracklib-packer "${D}"/usr/$(get_libdir)/cracklib_dict \ || die "couldnt create dict" The build dies with a "cracklib-packer failed: unable to locate shared library libcrack.so.2" message, followed by a long series of "grep: broken pipe" messages. livecd ~ # emerge --info Portage 2.0.51.19 (default-linux/amd64/2005.0, gcc-3.4.3-20050110, glibc-2.3.4.20050125-r1, 2.6.11-gentoo-r3-k8 x86_64) ================================================================= System uname: 2.6.11-gentoo-r3-k8 x86_64 AMD Athlon(tm) 64 Processor 3200+ Gentoo Base System version 1.6.10 Python: dev-lang/python-2.3.5 [2.3.5 (#1, Mar 28 2005, 11:04:51)] dev-lang/python: 2.3.5 sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r7 sys-devel/libtool: 1.5.14 virtual/os-headers: 2.6.8.1-r4 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CFLAGS="-march=athlon64 -O3 -pipe -ffast-math -funroll-all-loops -fpeel-loops -ftracer -funswitch-loops -funit-at-a-time" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon64 -O3 -pipe -ffast-math -funroll-all-loops -fpeel-loops -ftracer -funswitch-loops -funit-at-a-time" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox" GENTOO_MIRRORS="ftp://mirror.iawnet.sandia.gov/pub/gentoo http://distfiles.gentoo.org http://www.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="amd64 X aalib acpi alsa arts berkdb bitmap-fonts bonobo cdr crypt cups curl directfb esd fam flac font-server fortran gdbm gif gnome gphoto2 gpm gstreamer gtk gtkhtml guile imagemagick imlib ipv6 java jp2 jpeg kde ldap libwww lzw lzw-tiff mad motif mozilla mp3 mysql ncurses nls oggvorbis opengl oss pam perl png postgres python qt readline scanner sdl slang speex sqlite ssl tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts usb userlocales xml xml2 xmms xpm xrandr xv zlib" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY
This not only happens from a stage 2 install, I have the exact same problem from at stage 1 install. There is probably also some other problem with lib vs. lib64. Here is the output that src_installs creates on my machine (amd64): >>> Install cracklib-2.8.2 into /var/tmp/portage/cracklib-2.8.2/image/ category sys-libs Making install in lib make[1]: Entering directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/lib' make[2]: Entering directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/lib' /bin/sh ../mkinstalldirs /var/tmp/portage/cracklib-2.8.2/image//usr/lib64 mkdir /var/tmp/portage/cracklib-2.8.2/image/usr mkdir /var/tmp/portage/cracklib-2.8.2/image/usr/lib64 /bin/sh ../libtool --mode=install /bin/install -c libcrack.la /var/tmp/portage/cracklib-2.8.2/image//usr/lib64/libcrack.la /bin/install -c .libs/libcrack.so.2.8.0 /var/tmp/portage/cracklib-2.8.2/image//usr/lib64/libcrack.so.2.8.0 (cd /var/tmp/portage/cracklib-2.8.2/image//usr/lib64 && rm -f libcrack.so.2 && ln -s libcrack.so.2.8.0 libcrack.so.2) (cd /var/tmp/portage/cracklib-2.8.2/image//usr/lib64 && rm -f libcrack.so && ln -s libcrack.so.2.8.0 libcrack.so) /bin/install -c .libs/libcrack.lai /var/tmp/portage/cracklib-2.8.2/image//usr/lib64/libcrack.la /bin/install -c .libs/libcrack.a /var/tmp/portage/cracklib-2.8.2/image//usr/lib64/libcrack.a x86_64-pc-linux-gnu-ranlib /var/tmp/portage/cracklib-2.8.2/image//usr/lib64/libcrack.a chmod 644 /var/tmp/portage/cracklib-2.8.2/image//usr/lib64/libcrack.a libtool: install: warning: remember to run `libtool --finish /usr/lib64' /bin/sh ../mkinstalldirs /var/tmp/portage/cracklib-2.8.2/image//usr/include mkdir /var/tmp/portage/cracklib-2.8.2/image/usr/include /bin/install -c -m 644 crack.h /var/tmp/portage/cracklib-2.8.2/image//usr/include/crack.h /bin/install -c -m 644 packer.h /var/tmp/portage/cracklib-2.8.2/image//usr/include/packer.h make[2]: Leaving directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/lib' make[1]: Leaving directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/lib' Making install in util make[1]: Entering directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/util' make[2]: Entering directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/util' /bin/sh ../mkinstalldirs /var/tmp/portage/cracklib-2.8.2/image//usr/sbin mkdir /var/tmp/portage/cracklib-2.8.2/image/usr/sbin /bin/sh ../libtool --mode=install /bin/install -c cracklib-packer /var/tmp/portage/cracklib-2.8.2/image//usr/sbin/cracklib-pac ker libtool: install: warning: `../lib/libcrack.la' has not been installed in `/usr/lib64' /bin/install -c .libs/cracklib-packer /var/tmp/portage/cracklib-2.8.2/image//usr/sbin/cracklib-packer /bin/sh ../libtool --mode=install /bin/install -c cracklib-unpacker /var/tmp/portage/cracklib-2.8.2/image//usr/sbin/cracklib-u npacker libtool: install: warning: `../lib/libcrack.la' has not been installed in `/usr/lib64' /bin/install -c .libs/cracklib-unpacker /var/tmp/portage/cracklib-2.8.2/image//usr/sbin/cracklib-unpacker /bin/sh ../libtool --mode=install /bin/install -c cracklib-check /var/tmp/portage/cracklib-2.8.2/image//usr/sbin/cracklib-chec k libtool: install: warning: `../lib/libcrack.la' has not been installed in `/usr/lib64' /bin/install -c .libs/cracklib-check /var/tmp/portage/cracklib-2.8.2/image//usr/sbin/cracklib-check /bin/sh ../mkinstalldirs /var/tmp/portage/cracklib-2.8.2/image//usr/sbin /bin/install -c create-cracklib-dict /var/tmp/portage/cracklib-2.8.2/image//usr/sbin/create-cracklib-dict /bin/install -c cracklib-format /var/tmp/portage/cracklib-2.8.2/image//usr/sbin/cracklib-format make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/util' make[1]: Leaving directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/util' Making install in doc make[1]: Entering directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/doc' make[2]: Entering directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/doc' make[2]: Nothing to be done for `install-exec-am'. /bin/sh ../mkinstalldirs /var/tmp/portage/cracklib-2.8.2/image//usr/share/cracklib mkdir /var/tmp/portage/cracklib-2.8.2/image/usr/share mkdir /var/tmp/portage/cracklib-2.8.2/image/usr/share/cracklib /bin/install -c -m 644 cracklib.magic /var/tmp/portage/cracklib-2.8.2/image//usr/share/cracklib/cracklib.magic make[2]: Leaving directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/doc' make[1]: Leaving directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2/doc' make[1]: Entering directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2' make[2]: Entering directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2' make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2' make[1]: Leaving directory `/var/tmp/portage/cracklib-2.8.2/work/cracklib-2.8.2' cracklib-packer: error while loading shared libraries: libcrack.so.2: cannot open shared object file: No such file or directory grep: writing output: Broken pipe grep: writing output: Broken pipe grep: writing output: Broken pipe grep: writing output: Broken pipe ...
um, ~x86, ~amd64, and other ~architectures are NOT supported for install. I'm sending this to base-system, but be ready for a RESOLVED: INVALID. We have enough on our hands supporting stable installs.
if you read 1 line up you'll see that we export LD_LIBRARY_PATH to cover this the problem is that i had hardcoded /lib instead of /$(get_libdir) so it failed when the libraries were in /lib64