| # Copyright 1999-2017 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI="5" |
| PYTHON_COMPAT=( python2_7 ) |
| DISTUTILS_OPTIONAL=1 |
| |
| inherit eutils distutils-r1 libtool multilib-minimal toolchain-funcs |
| |
| MY_P=${P/_} |
| DESCRIPTION="Password Checking Library" |
| HOMEPAGE="https://github.com/cracklib/cracklib/" |
| SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.tar.gz" |
| |
| LICENSE="LGPL-2.1" |
| SLOT="0" |
| KEYWORDS="*" |
| 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() { |
| epatch "${FILESDIR}"/cracklib-2.9.6-CVE-2016-6318.patch |
| epatch "${FILESDIR}"/cracklib-2.9.6-fix-long-word-bufferoverflow.patch |
| |
| elibtoolize #269003 |
| 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 / |
| 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 |
| } |