blob: 65f1809ddf134a47888acb615333334e359569d2 [file] [log] [blame]
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
inherit eutils db multilib
#Number of official patches
#PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"`
PATCHNO=${PV/*.*.*_p}
if [[ ${PATCHNO} == "${PV}" ]] ; then
MY_PV=${PV}
MY_P=${P}
PATCHNO=0
else
MY_PV=${PV/_p${PATCHNO}}
MY_P=${PN}-${MY_PV}
fi
DESCRIPTION="Berkeley DB for transaction support in MySQL"
HOMEPAGE="http://www.oracle.com/technology/software/products/berkeley-db/index.html"
SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz"
for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do
export SRC_URI="${SRC_URI} http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}"
done
LICENSE="Sleepycat"
SLOT="3"
# This ebuild is to be the compatibility ebuild for when db4 is put
# in the tree.
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
IUSE="doc"
DEPEND="${RDEPEND}
=sys-libs/db-1.85*"
S="${WORKDIR}/${MY_P}"
src_unpack() {
# This doesn't build without exceptions
export CXXFLAGS="${CXXFLAGS/-fno-exceptions/-fexceptions}"
unpack "${MY_P}".tar.gz
chmod -R ug+w *
cd "${WORKDIR}"/"${MY_P}"
for (( i=1 ; i<=${PATCHNO} ; i++ ))
do
epatch "${DISTDIR}"/patch."${MY_PV}"."${i}"
done
# Get db to link libdb* to correct dependencies ... for example if we use
# NPTL or NGPT, db detects usable mutexes, and should link against
# libpthread, but does not do so ...
# <azarah@gentoo.org> (23 Feb 2003)
epatch "${FILESDIR}"/${MY_P}-fix-dep-link.patch
# We should get dump185 to link against system db1 ..
# <azarah@gentoo.org> (23 Feb 2003)
mv "${S}"/dist/Makefile.in "${S}"/dist/Makefile.in.orig
sed -e 's:DB185INC=:DB185INC= -I/usr/include/db1:' \
-e 's:DB185LIB=:DB185LIB= -ldb1:' \
"${S}"/dist/Makefile.in.orig > "${S}"/dist/Makefile.in || die "Failed to sed"
epatch "${FILESDIR}"/${MY_P}-gcc43.patch
# Fix invalid .la files
cd "${WORKDIR}"/${MY_P}/dist
rm -f ltversion.sh
# remove config.guess else we have problems with gcc-3.2
rm -f config.guess
sed -i "s,\(-D_GNU_SOURCE\),\1 ${CFLAGS}," configure
}
src_compile() {
local conf=
local conf_shared=
local conf_static=
conf="${conf}
--host=${CHOST} \
--build=${CHOST} \
--enable-cxx \
--enable-compat185 \
--enable-dump185 \
--prefix=/usr"
# --enable-rpc DOES NOT BUILD
# Robin H. Johnson <robbat2@gentoo.org> (18 Oct 2003)
conf_shared="${conf_shared}
--enable-dynamic"
# TCL support is also broken
# Robin H. Johnson <robbat2@gentoo.org> (18 Oct 2003)
# conf_shared="${conf_shared}
# `use_enable tcl tcl`
# `use_with tcl tcl /usr/$(get_libdir)`"
# NOTE: we should not build both shared and static versions
# of the libraries in the same build root!
einfo "Configuring ${P} (static)..."
mkdir -p "${S}"/build-static
cd "${S}"/build-static
strip=/bin/true \
ECONF_SOURCE="${S}"/dist econf \
${conf} ${conf_static} \
--libdir=/usr/$(get_libdir) \
--disable-shared \
--enable-static || die
einfo "Configuring ${P} (shared)..."
mkdir -p "${S}"/build-shared
cd "${S}"/build-shared
strip=/bin/true \
ECONF_SOURCE="${S}"/dist econf \
${conf} ${conf_shared} \
--libdir=/usr/$(get_libdir) \
--disable-static \
--enable-shared || die
# Parallel make does not work
MAKEOPTS="${MAKEOPTS} -j1"
einfo "Building ${P} (static)..."
cd "${S}"/build-static
emake strip=/bin/true || die "Static build failed"
einfo "Building ${P} (shared)..."
cd "${S}"/build-shared
emake strip=/bin/true || die "Shared build failed"
}
src_install () {
cd "${S}"/build-shared
make libdb=libdb-3.2.a \
libcxx=libcxx_3.2.a \
prefix="${D}"/usr \
libdir="${D}"/usr/$(get_libdir) \
strip=/bin/true \
install || die
cd "${S}"/build-static
newlib.a libdb.a libdb-3.2.a || die "failed to package static libraries!"
newlib.a libdb_cxx.a libdb_cxx-3.2.a || die "failed to package static libraries!"
db_src_install_headerslot || die "db_src_install_headerslot failed!"
# this is now done in the db eclass, function db_fix_so and db_src_install_usrlibcleanup
#cd "${D}"/usr/lib
#ln -s libdb-3.2.so libdb.so.3
# For some reason, db.so's are *not* readable by group or others,
# resulting in no one but root being able to use them!!!
# This fixes it -- DR 15 Jun 2001
cd "${D}"/usr/$(get_libdir)
chmod go+rx *.so
# The .la's aren't readable either
chmod go+r *.la
cd "${S}"
dodoc README
db_src_install_doc || die "db_src_install_doc failed!"
db_src_install_usrbinslot || die "db_src_install_usrbinslot failed!"
db_src_install_usrlibcleanup || die "db_src_install_usrlibcleanup failed!"
}
pkg_postinst () {
db_fix_so
}
pkg_postrm () {
db_fix_so
}
src_test() {
if use test; then
eerror "We'd love to be able to test, but the testsuite is broken in the 3.2.9 series"
fi
}