# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI="4" PYTHON_COMPAT=( python2_7 ) DISTUTILS_OPTIONAL=1 inherit eutils distutils-r1 libtool multilib-minimal toolchain-funcs MY_P=${P/_} DESCRIPTION="Password Checking Library" HOMEPAGE="http://sourceforge.net/projects/cracklib" SRC_URI="mirror://sourceforge/cracklib/${MY_P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" KEYWORDS="amd64 x86" IUSE="nls python static-libs test zlib" RDEPEND="zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )" DEPEND="${RDEPEND} python? ( dev-python/setuptools[${PYTHON_USEDEP}] test? ( dev-python/nose[${PYTHON_USEDEP}] ) )" RDEPEND="${RDEPEND} abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20140508-r6 !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )" S=${WORKDIR}/${MY_P} do_python() { multilib_is_native_abi || return 0 use python || return 0 pushd python > /dev/null || die distutils-r1_src_${EBUILD_PHASE} popd > /dev/null } pkg_setup() { # workaround #195017 if has unmerge-orphans ${FEATURES} && has_version "<${CATEGORY}/${PN}-2.8.10" ; then eerror "Upgrade path is broken with FEATURES=unmerge-orphans" eerror "Please run: FEATURES=-unmerge-orphans emerge cracklib" die "Please run: FEATURES=-unmerge-orphans emerge cracklib" fi } src_prepare() { elibtoolize #269003 epatch "${FILESDIR}"/cracklib-2.9.1-setup.py-srcdir.patch do_python } multilib_src_configure() { export ac_cv_header_zlib_h=$(usex zlib) export ac_cv_search_gzopen=$(usex zlib -lz no) # use /usr/lib so that the dictionary is shared between ABIs ECONF_SOURCE=${S} \ econf \ --with-default-dict='/usr/lib/cracklib_dict' \ --without-python \ $(use_enable nls) \ $(use_enable static-libs static) } multilib_src_compile() { default do_python } multilib_src_test() { do_python } python_test() { nosetests -w "${S}"/python || die "Tests fail with ${EPYTHON}" } multilib_src_install() { default # move shared libs to / multilib_is_native_abi && gen_usr_ldscript -a crack do_python } multilib_src_install_all() { einstalldocs prune_libtool_files rm -r "${ED}"/usr/share/cracklib insinto /usr/share/dict doins dicts/cracklib-small || die } pkg_postinst() { if [[ ${ROOT} == "/" ]] ; then ebegin "Regenerating cracklib dictionary" create-cracklib-dict "${EPREFIX}"/usr/share/dict/* > /dev/null eend $? fi }