# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI="5" PYTHON_DEPEND="python? 2" SUPPORT_PYTHON_ABIS="1" RESTRICT_PYTHON_ABIS="3.* *-jython" inherit autotools distutils flag-o-matic perl-app eutils versionator libtool multilib java-pkg-opt-2 MY_PV="$(get_version_component_range 1-3)" MY_P="${PN}-${MY_PV}" PATCH_V="$(get_version_component_range 4)" PATCH_V="${PATCH_V:-0}" DB_VER="4.8" DESCRIPTION="BerkeleyDB XML, a native XML database from the BerkeleyDB team" HOMEPAGE="http://www.oracle.com/technetwork/database/berkeleydb/index-083851.html http://download.oracle.com/otndocs/products/berkeleydb/html/$(get_version_component_range 1-2).html" SRC_URI="http://download-east.oracle.com/berkeley-db/${MY_P}.tar.gz http://download-west.oracle.com/berkeley-db/${MY_P}.tar.gz http://download-uk.oracle.com/berkeley-db/${MY_P}.tar.gz" LICENSE="Sleepycat Apache-1.1 BSD" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="doc examples java perl python tcl" RDEPEND="sys-libs/db:${DB_VER}[cxx,java?] >=dev-libs/xerces-c-3 =dev-libs/xqilla-2.2* sys-libs/zlib perl? ( dev-lang/perl ) python? ( >=dev-python/bsddb3-4.8.0 ) tcl? ( dev-lang/tcl:0= ) java? ( >=virtual/jre-1.5 )" DEPEND="${RDEPEND} sys-devel/libtool java? ( >=virtual/jdk-1.5 )" # return a list of patches calculated using the micro-version get_patches() { local patches="" for (( patch_v=1 ; patch_v <= ${PATCH_V} ; patch_v++ )) ; do patches="${patches} patch.${MY_PV}.${patch_v}" done echo ${patches} } MYPATCHES="$(get_patches)" for patch in ${MYPATCHES} ; do SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/xml/update/${MY_PV}/${patch}" done S="${WORKDIR}/${MY_P}/dbxml" src_unpack() { tar xzpf "${DISTDIR}/${MY_P}.tar.gz" ${MY_P}/dbxml || die "unpacking package failed" for patch in ${MYPATCHES} ; do cp "${DISTDIR}/${patch}" "${WORKDIR}" || die "copying patch ${patch} failed" done } src_prepare() { for patch in ${MYPATCHES} ; do edos2unix "${WORKDIR}/${patch}" epatch "${WORKDIR}/${patch}" done epatch "${FILESDIR}/${PV}-respect-ldflags-no-rpath.patch" # sys-libs/db is slotted on Gentoo sed -i \ -e "s:db_version=.*:db_version=${DB_VER}:" \ dist/aclocal/options.ac configure || die "sed failed" if use java ; then sed -i \ -e "s|\$with_berkeleydb/lib/db.jar|$(java-pkg_getjars db-${DB_VER})|" \ dist/aclocal/options.ac configure || die "sed failed" fi # * Fix libraries to link # * Strip "../../build_unix/.libs" from LIBPATH or it'll # show up in the RPATH entry sed -i \ -e "s|dbxml-2|dbxml-$(get_version_component_range 1-2)|" \ -e "s|db-4|db-${DB_VER}|" \ -e 's|dbxml_home = .*|dbxml_home = "../.."|' \ -e 's|"../../build_unix/.libs",||' \ src/python/setup.py.in || die "sed failed" sed -i \ -e "s|dbxml-2|dbxml-$(get_version_component_range 1-2)|" \ -e "s|db_cxx-4|db_cxx-${DB_VER}|" \ -e "s|@DB_DIR@/lib|/usr/$(get_libdir)|" \ -e "s|@DB_DIR@/include|/usr/include/db${DB_VER}|" \ -e "s|@XERCES_DIR@/lib|/usr/$(get_libdir)|" \ -e "s|@XQILLA_DIR@/lib|/usr/$(get_libdir)|" \ src/perl/config.in || die "sed failed" # avoid the automake/autoconf run in src_{configure,compile} eautoreconf } src_configure() { cd "${S}/build_unix" #Needed despite db_version stuff above append-flags -I"${EPREFIX}"/usr/include/db${DB_VER} local myconf="" # use_enable doesn't work here due to a different syntax use java && myconf="${myconf} --enable-java" use tcl && myconf="${myconf} --enable-tcl --with-tcl=${EPREFIX}/usr/$(get_libdir)" export ac_cv_prog_path_strip="missing_strip" ECONF_SOURCE="../" \ JAVAPREFIX="${JAVA_HOME}" \ econf \ --with-berkeleydb="${EPREFIX}"/usr \ --with-xqilla="${EPREFIX}"/usr \ --with-xerces="${EPREFIX}"/usr \ ${myconf} } src_compile() { cd "${S}/build_unix" default if use python ; then einfo "Compiling python extension" cd "${S}/src/python" append-cflags "-I../../include" append-ldflags "-L../../build_unix/.libs" distutils_src_compile fi if use perl ; then cd "${S}/src/perl" perl-app_src_prep perl-app_src_compile fi } src_install() { cd "${S}/build_unix" # somewhat broken build system emake DESTDIR="${D}" install || die "emake install failed" use doc && dohtml -A pdf -r "${ED}"/usr/docs/* rm -rf "${ED}/usr/docs" if use java ; then java-pkg_dojar "${ED}/usr/$(get_libdir)/dbxml.jar" rm "${ED}/usr/$(get_libdir)/dbxml.jar" fi if use python ; then cd "${S}/src/python" distutils_src_install fi if use perl ; then cd "${S}/src/perl" emake DESTDIR="${D}" install || die "emake install perl module failed" perl_delete_localpod fi if use examples ; then insinto /usr/share/doc/${PF} doins -r "${S}/examples" fi } pkg_preinst() { perl_set_version java-pkg-opt-2_pkg_preinst } pkg_postinst() { if use python ; then python_mod_optimize dbxml.py fi } pkg_postrm() { if use python ; then python_mod_cleanup dbxml.py fi }