--- /usr/portage/sys-libs/cracklib/cracklib-2.7-r10.ebuild.orig 2005-03-03 15:02:58.375185448 +0100 +++ /usr/portage/sys-libs/cracklib/cracklib-2.7-r10.ebuild 2005-03-03 16:00:12.203030167 +0100 @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-libs/cracklib/cracklib-2.7-r10.ebuild,v 1.13 2005/02/22 22:30:12 vapier Exp $ -inherit flag-o-matic eutils toolchain-funcs +inherit flag-o-matic eutils toolchain-funcs multilib MY_P=${P/-/,} DESCRIPTION="Password Checking Library" @@ -17,7 +17,8 @@ RDEPEND="sys-apps/miscfiles" DEPEND="${RDEPEND} uclibc? ( app-arch/gzip ) - sys-devel/gcc-config" + sys-devel/gcc-config + !app-emulation/emul-linux-x86-baselibs" S="${WORKDIR}/${MY_P}" @@ -46,14 +47,72 @@ ${S}/cracklib/Makefile \ || die "sed ${S}/cracklib/Makefile failed" fi + + if use amd64 && has_multilib_profile; then + cp -ar ${S} ${S}-x86 + mv ${S} ${S}-amd64 + fi } src_compile() { - tc-export CC LD AR + if use amd64 && has_multilib_profile; then + local OPWD=$PWD + local OCFLAGS="${CFLAGS}" + local OLD="${LD}" + cd ${S}-x86 + CFLAGS="${OCFLAGS} -m32" + export LD="ld -melf_i386" + src_compile-multilib + CFLAGS="${OCFLAGS}" + LD="${OLD}" + cd ${S}-amd64 + src_compile-multilib LD + cd ${OPWD} + unset OLD + unset OCFLAGS + unset OPWD + else + src_compile-multilib LD + fi +} + +src_compile-multilib() { + tc-export CC ${1} AR emake all || die "emake failed" } src_install() { + if use amd64 && has_multilib_profile; then + local OPWD=$PWD + cd ${S}-x86 + dodir /usr/{lib32,sbin,include,lib} /lib32 + make DESTDIR="${D}" install LIBDIR="/usr/lib32" || die "make install failed" + # correct permissions on static lib + if [ -x "${D}/usr/lib32/libcrack.a" ] ; then + fperms 644 "/usr/lib32/libcrack.a" + fi + + # put libcrack.so.2.7 in /lib for cases where /usr isn't available yet + mv "${D}/usr/lib32/libcrack.so"* "${D}/lib32" \ + || die "mv failed" + + # This link is needed and not created. :| bug #9611 + dosym libcrack.so.2.7 "/lib32/libcrack.so.2" + + rm -rf ${D}/usr/lib32/cracklib* + cd ${S}-amd64 + src_install-multilib -amd64 + for files in ${D}/usr/lib64/cracklib*; do + ln -sf ../lib64/`basename $files` ${D}/usr/lib32/ + done + cd ${OPWD} + unset OPWD + else + src_install-multilib + fi +} + +src_install-multilib() { dodir /usr/{$(get_libdir),sbin,include,lib} /$(get_libdir) keepdir /usr/share/cracklib @@ -83,11 +142,11 @@ # it's possible that pam is NOT in the USE flag at the time, and will be # later on only. - cp "${S}/cracklib/packer.h" "${D}/usr/include" || die "cp failed" + cp "${S}${1}/cracklib/packer.h" "${D}/usr/include" || die "cp failed" #fix the permissions on it as they may be wrong in some cases fperms 644 /usr/include/packer.h preplib "/usr/$(get_libdir)" "/$(get_libdir)" - dodoc "${S}/"{HISTORY,MANIFEST,POSTER,README} + dodoc "${S}${1}/"{HISTORY,MANIFEST,POSTER,README} }