# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/dev-libs/dbxml/dbxml-2.5.16.ebuild,v 1.2 2010/01/19 09:31:03 dev-zero Exp $ EAPI="2" inherit autotools flag-o-matic perl-app python 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/database/berkeley-db/xml/index.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="OracleDB Apache-1.1 BSD" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="doc examples java perl python tcl" RDEPEND="sys-libs/db:${DB_VER}[-nocxx,java?] >=dev-libs/xerces-c-3 >=dev-libs/xqilla-2.1.2 sys-libs/zlib perl? ( dev-lang/perl ) python? ( dev-lang/python:2.6 >=dev-python/bsddb3-4.8.0 ) tcl? ( dev-lang/tcl ) java? ( >=virtual/jre-1.5 )" DEPEND="${RDEPEND} sys-devel/libtool java? ( >=virtual/jdk-1.5 )" get_patches() { local patches="" local patch_v=1 while [ ${patch_v} -le ${PATCH_V} ] ; do patches="${patches} patch.${MY_PV}.${patch_v}" let "patch_v = ${patch_v} + 1" done echo ${patches} } for patch in $(get_patches) ; 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" } src_prepare() { for patch in $(get_patches) ; do edos2unix "${DISTDIR}/${patch}" epatch "${DISTDIR}/${patch}" done # 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/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=/usr/$(get_libdir)" export ac_cv_prog_path_strip="missing_strip" ECONF_SOURCE="../" \ JAVAPREFIX="${JAVA_HOME}" \ econf \ --with-berkeleydb=/usr \ --with-xqilla=/usr \ --with-xerces=/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" python_version "${python}" setup.py build || die "python build failed" 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 "${D}"/usr/docs/* rm -rf "${D}/usr/docs" if use java ; then java-pkg_dojar "${D}/usr/$(get_libdir)/dbxml.jar" rm "${D}/usr/$(get_libdir)/dbxml.jar" fi if use python ; then cd "${S}/src/python" python_version "${python}" setup.py install --root="${D}" --no-compile || die "python install failed" python_need_rebuild fi if use perl ; then cd "${S}/src/perl" emake DESTDIR="${D}" install || die "emake install perl module failed" fixlocalpod fi if use examples ; then insinto /usr/share/doc/${PF} doins -r "${S}/examples" fi } pkg_preinst() { perl-module_pkg_preinst java-pkg-opt-2_pkg_preinst } pkg_postinst() { if use python ; then python_version python_mod_optimize "/usr/$(get_libdir)/python${PYVER}/site-packages" fi } pkg_postrm() { if use python ; then python_version python_mod_cleanup "/usr/$(get_libdir)/python${PYVER}/site-packages" fi }