# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=4 PYTHON_COMPAT=( python2_7 ) inherit bash-completion-r1 eutils python-single-r1 user DESCRIPTION="paludis, the other package mangler" HOMEPAGE="http://paludis.exherbo.org/" SRC_URI="http://paludis.exherbo.org/download/${P}.tar.bz2" IUSE="doc pbins pink python ruby search-index test xml" LICENSE="GPL-2 vim" SLOT="0" KEYWORDS="~alpha amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc x86" COMMON_DEPEND=" >=app-admin/eselect-1.2.13 >=app-shells/bash-3.2 dev-libs/libpcre[cxx] sys-apps/file pbins? ( >=app-arch/libarchive-3.1.2 ) python? ( ${PYTHON_DEPS} >=dev-libs/boost-1.41.0[python,${PYTHON_USEDEP}] ) ruby? ( dev-lang/ruby:1.9 ) search-index? ( >=dev-db/sqlite-3 ) xml? ( >=dev-libs/libxml2-2.6 )" DEPEND="${COMMON_DEPEND} >=app-text/asciidoc-8.6.3 app-text/htmltidy app-text/xmlto >=sys-devel/gcc-4.7 doc? ( || ( >=app-doc/doxygen-1.5.3 <=app-doc/doxygen-1.5.1 ) python? ( dev-python/sphinx[${PYTHON_USEDEP}] ) ruby? ( dev-ruby/syntax ) ) virtual/pkgconfig test? ( >=dev-cpp/gtest-1.6.0-r1 )" RDEPEND="${COMMON_DEPEND} sys-apps/sandbox" PDEPEND="app-eselect/eselect-package-manager" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" pkg_pretend() { if [[ ${MERGE_TYPE} != buildonly ]]; then if id paludisbuild >/dev/null 2>/dev/null ; then if ! groups paludisbuild | grep --quiet '\<tty\>' ; then eerror "The 'paludisbuild' user is now expected to be a member of the" eerror "'tty' group. You should add the user to this group before" eerror "upgrading Paludis." die "Please add paludisbuild to tty group" fi fi fi if [[ ${MERGE_TYPE} != binary ]]; then if [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ) ]] then eerror "Paludis requires at least gcc 4.7 to build. Please switch the active" eerror "gcc version using gcc-config." die "Paludis requires at least gcc 4.7" fi fi } pkg_setup() { enewgroup "paludisbuild" enewuser "paludisbuild" -1 -1 "/var/tmp/paludis" "paludisbuild,tty" use python && python-single-r1_pkg_setup } src_prepare() { # The package explicitly wants ruby1.9, so fix the script on it. # https://bugs.gentoo.org/show_bug.cgi?id=439372#c2 sed -i -e '1s/ruby/&19/' ruby/demos/*.rb || die epatch "${FILESDIR}/${P}-fix-format-security.patch" epatch_user } src_configure() { local myconf=( --htmldir=/usr/share/doc/${PF}/html $(use_enable doc doxygen) $(use_enable test gtest) $(use_enable pbins) $(use_enable pink) $(use_enable python) $(use python && use_enable doc python-doc) $(use_enable ruby) $(use ruby && use_enable doc ruby-doc) $(use_enable search-index) $(use_enable xml) --enable-vim --enable-visibility --with-config-framework=eselect --with-environments=default,portage --with-vim-install-dir=/usr/share/vim/vimfiles ) econf "${myconf[@]}" } src_install() { default prune_libtool_files dobashcomp bash-completion/cave insinto /usr/share/zsh/site-functions doins zsh-completion/_cave } src_test() { # Work around Portage bugs local -x PALUDIS_DO_NOTHING_SANDBOXY="portage sucks" local -x BASH_ENV=/dev/null if [[ ${EUID} == 0 ]] ; then # hate local -x PALUDIS_REDUCED_UID=0 local -x PALUDIS_REDUCED_GID=0 fi if ! nonfatal emake check ; then eerror "Tests failed. Looking for files for you to add to your bug report..." find "${S}" -type f -name '*.epicfail' -or -name '*.log' | while read a ; do eerror " $a" done die "Make check failed" fi } pkg_postinst() { local pm if [[ -f ${ROOT}/etc/env.d/50package-manager ]] ; then pm=$( source "${ROOT}"/etc/env.d/50package-manager ; echo "${PACKAGE_MANAGER}" ) fi if [[ ${pm} != paludis ]] ; then elog "If you are using paludis or cave as your primary package manager," elog "you should consider running:" elog " eselect package-manager set paludis" fi }