public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/db/, sys-libs/db/files/
@ 2016-04-16 12:48 Lars Wendler
  0 siblings, 0 replies; 10+ messages in thread
From: Lars Wendler @ 2016-04-16 12:48 UTC (permalink / raw
  To: gentoo-commits

commit:     a2db337ce69b3cfcd76d1e6cd0cce875cd8960cc
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 16 12:45:12 2016 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Sat Apr 16 12:48:48 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a2db337c

sys-libs/db: Bump to version 6.2.23

Package-Manager: portage-2.2.28
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 sys-libs/db/Manifest                               |   1 +
 sys-libs/db/db-6.2.23.ebuild                       | 236 +++++++++++++++++++++
 .../db/files/db-6.2-jni-check-prefix-first.patch   |  38 ++++
 3 files changed, 275 insertions(+)

diff --git a/sys-libs/db/Manifest b/sys-libs/db/Manifest
index 838115e..326035d 100644
--- a/sys-libs/db/Manifest
+++ b/sys-libs/db/Manifest
@@ -13,6 +13,7 @@ DIST db-5.3.28.tar.gz 35090431 SHA256 e0a992d740709892e81f9d93f06daf305cf73fb81b
 DIST db-6.0.30.tar.gz 36584356 SHA256 608e4b1cf390e9bf54c0ef00c5bd9ca76d36e2261b9f4d33d54516f3f6a20fd2 SHA512 ea249c59dba18cad391f523840028ba8ef962c32f2c7470942d52f9c07f18ba9fdf964dcd545cb7f2d6c66b91924a0ba1478af1d8f81f0dcbbf94c97ac515cf9 WHIRLPOOL 6784730d250dd480bacf78e966c6acb2fb3ca2c3989668e9440a0a60376b009850b2b48fc35f47e3964b175e78501d18b1c3e3b265831165083fe2dd04a46eb3
 DIST db-6.0.35.tar.gz 36532251 SHA256 24421affa8ae436fe427ae4f5f2d1634da83d3d55a5ad6354a98eeedb825de55 SHA512 002db1553def44efa715095b04b2bac2de7450cdc7142586d1d8b5d8ce79ee5e98f824b3bd276cd586ca932dc51ed35a9ffbed95b2b9847264f262cfa092479d WHIRLPOOL ebbbe7dd0969a36d06c8cc5618a0f61334396b38671b9b1c2523e3d1d3ba687903242acd23999be3efec45e1ea6b9c7f0f9f5acbb54d8d1dc48bba51d196c487
 DIST db-6.1.26.tar.gz 37495772 SHA256 dd1417af5443f326ee3998e40986c3c60e2a7cfb5bfa25177ef7cadb2afb13a6 SHA512 2590ee3d9e30e6eaeb350edbc2fa7400582c0b520177fe0a3a57a966573268e18ad10b1dc6dee3fb1be9c93ac6f96f848c120793eaf873562464edd125cff4d4 WHIRLPOOL 9aad6c2ec058d332185c630904dca766ca9f9c017c8f6216a4363f007fced3b7cf1b91d76134fa676780f6f8e37966bdea75845deb5cb2dff8f4b432e8068f5f
+DIST db-6.2.23.tar.gz 44305964 SHA256 47612c8991aa9ac2f6be721267c8d3cdccf5ac83105df8e50809daea24e95dc7 SHA512 0aac380673ff4f97a2a6230f135f8151b8d2896a12710f708cd983b5fb95075b55fc2c67af577365e8ec7a32e43357a4f3118e37713d00b227f05eb11b1d12f5 WHIRLPOOL 8a0537da75a5d0d4e0f335a9b27c3767ccab75d0a0f8b2b8b6ccb7483c2f6da02c55b1c14fcda9bdc5bc57fedad6a3c2b81e5d04775cba6d3b42ddcf8266a86e
 DIST db.1.85.tar.gz 270953 SHA256 4220d4ddeb77fb57ba2f37c1aa105d561d3ef85a6fb89c79c3edd735d0e193c6 SHA512 03bf3a2b0947efdca4e38719542e96378b5eeb57da64d5030dd23ab710773c1826f1c867032d0bea658b7fdd8272db253e97bbc490d198b9437025ffdf9e880e WHIRLPOOL 802346b9fc133f6c9316e987352e8bd8e12792b30b0eae9b4e2b3629c9bc8385ab12244dead428bb824945aab383cd4801de3fc705667797bdf6159066ed1352
 DIST patch.3.2.9.1 2139 SHA256 6d89a42ee0be9e47b3e8a42981c65266a556de84bc6281edcf0f977f52547798 SHA512 f410c43ea4af28a39d8ea47f774d38b53bf1183a34abfcf1f27e253eb61b42f4b5e9f0a3a500e174eb796ea342e6dd50a8bb95ff3eb8ee188461489cc994b8f9 WHIRLPOOL 3a879d5306403739465550ade1fbf53ac62b832fbdf507a204fef13949bc7be9c35ddd972834d3ca74bf17c421791011200556dffd95265eb64849f1d7b647ec
 DIST patch.3.2.9.2 495 SHA256 61db874796fe8789b0045f456285b27c5b8b7b8902a5e342a115456015716d0e SHA512 cc75fef11a641d480beaa2b62201177c72d10c4eb20376b5f15769db6e9e1a0da41c0365d79772af19b4cacdaa9f91dad049c735de9f95b98dcfc4f0b611b557 WHIRLPOOL 1362c32dc16875a97b451ff52415fe4b9e9d37b256a92c7e86c14a52431937352ae55ecee4361459e9036b9bea238c205a8f0d4406ac7e47387a8cda22906879

diff --git a/sys-libs/db/db-6.2.23.ebuild b/sys-libs/db/db-6.2.23.ebuild
new file mode 100644
index 0000000..bd55d06
--- /dev/null
+++ b/sys-libs/db/db-6.2.23.ebuild
@@ -0,0 +1,236 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils db flag-o-matic java-pkg-opt-2 autotools multilib multilib-minimal versionator toolchain-funcs
+
+#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
+
+S_BASE="${WORKDIR}/${MY_P}"
+S="${S_BASE}/build_unix"
+DESCRIPTION="Oracle Berkeley DB"
+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="AGPL-3"
+SLOT="$(get_version_component_range 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
+IUSE="doc java cxx tcl test"
+
+REQUIRED_USE="test? ( tcl )"
+
+# the entire testsuite needs the TCL functionality
+DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	test? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	java? ( >=virtual/jdk-1.5 )
+	>=sys-devel/binutils-2.16.1"
+RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	java? ( >=virtual/jre-1.5 )"
+
+MULTILIB_WRAPPED_HEADERS=(
+	/usr/include/db$(get_version_component_range 1-2)/db.h
+)
+
+PATCHES=(
+	# bug #510506
+	"${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
+
+	# use the includes from the prefix
+	"${FILESDIR}"/${PN}-6.2-jni-check-prefix-first.patch
+	"${FILESDIR}"/${PN}-4.3-listen-to-java-options.patch
+
+	# sqlite configure call has an extra leading ..
+	# upstreamed:5.2.36, missing in 5.3.x/6.x
+	# still needs to be patched in 6.0.20
+	"${FILESDIR}"/${PN}-6.1.19-sqlite-configure-path.patch
+
+	# The upstream testsuite copies .lib and the binaries for each parallel test
+	# core, ~300MB each. This patch uses links instead, saves a lot of space.
+	"${FILESDIR}"/${PN}-6.0.20-test-link.patch
+)
+
+src_prepare() {
+	cd "${WORKDIR}"/"${MY_P}"
+	for (( i=1 ; i<=${PATCHNO} ; i++ ))
+	do
+		epatch "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	epatch "${PATCHES[@]}"
+	epatch_user
+
+	# Upstream release script grabs the dates when the script was run, so lets
+	# end-run them to keep the date the same.
+	export REAL_DB_RELEASE_DATE="$(awk \
+		'/^DB_VERSION_STRING=/{ gsub(".*\\(|\\).*","",$0); print $0; }' \
+		"${S_BASE}"/dist/configure)"
+	sed -r -i \
+		-e "/^DB_RELEASE_DATE=/s~=.*~='${REAL_DB_RELEASE_DATE}'~g" \
+		"${S_BASE}"/dist/RELEASE || die
+
+	# Include the SLOT for Java JAR files
+	# This supersedes the unused jarlocation patches.
+	sed -r -i \
+		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
+		"${S_BASE}"/dist/Makefile.in || die
+
+	cd "${S_BASE}"/dist || die
+	rm -f aclocal/libtool.m4
+	sed -i \
+		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
+		configure.ac || die
+	sed -i \
+		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
+		aclocal/programs.m4 || die
+	AT_M4DIR="aclocal aclocal_java" eautoreconf
+	# Upstream sucks - they do autoconf and THEN replace the version variables.
+	. ./RELEASE
+	for v in \
+		DB_VERSION_{FAMILY,LETTER,RELEASE,MAJOR,MINOR} \
+		DB_VERSION_{PATCH,FULL,UNIQUE_NAME,STRING,FULL_STRING} \
+		DB_VERSION \
+		DB_RELEASE_DATE ; do
+		local ev="__EDIT_${v}__"
+		sed -i -e "s/${ev}/${!v}/g" configure || die
+	done
+}
+
+multilib_src_configure() {
+	local myconf=()
+
+	tc-ld-disable-gold #470634
+
+	# compilation with -O0 fails on amd64, see bug #171231
+	if [[ ${ABI} == amd64 ]]; then
+		local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+		replace-flags -O0 -O2
+		is-flagq -O[s123] || append-flags -O2
+	fi
+
+	# Add linker versions to the symbols. Easier to do, and safer than header file
+	# mumbo jumbo.
+	if use userland_GNU ; then
+		append-ldflags -Wl,--default-symver
+	fi
+
+	# use `set` here since the java opts will contain whitespace
+	if multilib_is_native_abi && use java ; then
+		myconf+=(
+			--with-java-prefix="${JAVA_HOME}"
+			--with-javac-flags="$(java-pkg_javac-args)"
+		)
+	fi
+
+	# Bug #270851: test needs TCL support
+	if use tcl || use test ; then
+		myconf+=(
+			--enable-tcl
+			--with-tcl=/usr/$(get_libdir)
+		)
+	else
+		myconf+=(--disable-tcl )
+	fi
+
+	# sql_compat will cause a collision with sqlite3
+	# --enable-sql_compat
+	ECONF_SOURCE="${S_BASE}"/dist \
+	STRIP="true" \
+	econf \
+		--enable-compat185 \
+		--enable-dbm \
+		--enable-o_direct \
+		--without-uniquename \
+		--enable-sql \
+		--enable-sql_codegen \
+		--disable-sql_compat \
+		$([[ ${ABI} == arm ]] && echo --with-mutex=ARM/gcc-assembly) \
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly) \
+		$(use_enable cxx) \
+		$(use_enable cxx stl) \
+		$(multilib_native_use_enable java) \
+		"${myconf[@]}" \
+		$(use_enable test)
+}
+
+multilib_src_install() {
+	emake install DESTDIR="${D}"
+
+	db_src_install_headerslot
+
+	db_src_install_usrlibcleanup
+
+	if multilib_is_native_abi && use java; then
+		java-pkg_regso "${D}"/usr/"$(get_libdir)"/libdb_java*.so
+		java-pkg_dojar "${D}"/usr/"$(get_libdir)"/*.jar
+		rm -f "${D}"/usr/"$(get_libdir)"/*.jar
+	fi
+}
+
+multilib_src_install_all() {
+	db_src_install_usrbinslot
+
+	db_src_install_doc
+
+	dodir /usr/sbin
+	# This file is not always built, and no longer exists as of db-4.8
+	if [[ -f "${D}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${D}"/usr/bin/berkeley_db_svc \
+			"${D}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
+}
+
+pkg_postinst() {
+	multilib_foreach_abi db_fix_so
+}
+
+pkg_postrm() {
+	multilib_foreach_abi db_fix_so
+}
+
+src_test() {
+	# db_repsite is impossible to build, as upstream strips those sources.
+	# db_repsite is used directly in the setup_site_prog,
+	# setup_site_prog is called from open_site_prog
+	# which is called only from tests in the multi_repmgr group.
+	#sed -ri \
+	#	-e '/set subs/s,multi_repmgr,,g' \
+	#	"${S_BASE}/test/testparams.tcl"
+	sed -ri \
+		-e '/multi_repmgr/d' \
+		"${S_BASE}/test/tcl/test.tcl" || die
+
+	# This is the only failure in 5.2.28 so far, and looks like a false positive.
+	# Repmgr018 (btree): Test of repmgr stats.
+	#     Repmgr018.a: Start a master.
+	#     Repmgr018.b: Start a client.
+	#     Repmgr018.c: Run some transactions at master.
+	#         Rep_test: btree 20 key/data pairs starting at 0
+	#         Rep_test.a: put/get loop
+	# FAIL:07:05:59 (00:00:00) perm_no_failed_stat: expected 0, got 1
+	sed -ri \
+		-e '/set parms.*repmgr018/d' \
+		-e 's/repmgr018//g' \
+		"${S_BASE}/test/tcl/test.tcl" || die
+
+	multilib-minimal_src_test
+}
+
+multilib_src_test() {
+	multilib_is_native_abi || return
+
+	S=${BUILD_DIR} db_src_test
+}

diff --git a/sys-libs/db/files/db-6.2-jni-check-prefix-first.patch b/sys-libs/db/files/db-6.2-jni-check-prefix-first.patch
new file mode 100644
index 0000000..963b013
--- /dev/null
+++ b/sys-libs/db/files/db-6.2-jni-check-prefix-first.patch
@@ -0,0 +1,38 @@
+--- db-6.2.23/dist/aclocal_java/ac_jni_include_dirs.m4
++++ db-6.2.23/dist/aclocal_java/ac_jni_include_dirs.m4
+@@ -43,18 +43,23 @@
+ *)	AC_MSG_ERROR([$_ACJNI_JAVAC is not an absolute path name]);;
+ esac
+ 
+-_ACJNI_FOLLOW_SYMLINKS("$_ACJNI_JAVAC")
+-_JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[[^/]]*$::'`
+-case "$host_os" in
+-	darwin*)	_JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
+-			if test -d "$_JTOPDIR/include"; then
+-				_JINC="$_JTOPDIR/include"
+-			else
+-				_JINC="$_JTOPDIR/Headers"
+-			fi;;
+-	*)		_JINC="$_JTOPDIR/include";;
+-esac
+-
++# If JAVAPREFIX is defined, look there first
++if test -r "$JAVAPREFIX/include/jni.h"; then
++	_JTOPDIR="$JAVAPREFIX"
++	_JINC="$JAVAPREFIX/include"
++else
++	_ACJNI_FOLLOW_SYMLINKS("$_ACJNI_JAVAC")
++	_JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[[^/]]*$::'`
++	case "$host_os" in
++		darwin*)	_JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
++				if test -d "$_JTOPDIR/include"; then
++					_JINC="$_JTOPDIR/include"
++				else
++					_JINC="$_JTOPDIR/Headers"
++				fi;;
++		*)		_JINC="$_JTOPDIR/include";;
++	esac
++fi
+ # If we find jni.h in /usr/include, then it's not a java-only tree, so
+ # don't add /usr/include or subdirectories to the list of includes.
+ # An extra -I/usr/include can foul things up with newer gcc's.


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/db/, sys-libs/db/files/
@ 2016-06-04 19:04 Robin H. Johnson
  0 siblings, 0 replies; 10+ messages in thread
From: Robin H. Johnson @ 2016-06-04 19:04 UTC (permalink / raw
  To: gentoo-commits

commit:     acd2e08ad90551840324fe20d3f3981bc3b8836b
Author:     Austin English <wizardedit <AT> gentoo <DOT> org>
AuthorDate: Fri Jun  3 08:21:55 2016 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Fri Jun  3 08:23:17 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=acd2e08a

sys-libs/db: fix compiling with clang

Gentoo-Bug: https://bugs.gentoo.org/417547

 sys-libs/db/db-5.1.29-r1.ebuild                    |  3 +++
 sys-libs/db/db-5.3.28-r2.ebuild                    |  3 +++
 .../db-5.1.29-rename-atomic-compare-exchange.patch | 22 ++++++++++++++++++++++
 3 files changed, 28 insertions(+)

diff --git a/sys-libs/db/db-5.1.29-r1.ebuild b/sys-libs/db/db-5.1.29-r1.ebuild
index cac2645..0715268 100644
--- a/sys-libs/db/db-5.1.29-r1.ebuild
+++ b/sys-libs/db/db-5.1.29-r1.ebuild
@@ -58,6 +58,9 @@ src_prepare() {
 	# merged upstream in 5.0.26
 	#epatch "${FILESDIR}"/${PN}-5.0.21-enable-dbm-autoconf.patch
 
+	# Needed when compiling with clang
+	epatch "${FILESDIR}"/${P}-rename-atomic-compare-exchange.patch
+
 	# Upstream release script grabs the dates when the script was run, so lets
 	# end-run them to keep the date the same.
 	export REAL_DB_RELEASE_DATE="$(awk \

diff --git a/sys-libs/db/db-5.3.28-r2.ebuild b/sys-libs/db/db-5.3.28-r2.ebuild
index 937d045..1354991 100644
--- a/sys-libs/db/db-5.3.28-r2.ebuild
+++ b/sys-libs/db/db-5.3.28-r2.ebuild
@@ -67,6 +67,9 @@ src_prepare() {
 	# core, ~300MB each. This patch uses links instead, saves a lot of space.
 	epatch "${FILESDIR}"/${PN}-6.0.20-test-link.patch
 
+	# Needed when compiling with clang
+	epatch "${FILESDIR}"/${PN}-5.1.29-rename-atomic-compare-exchange.patch
+
 	# Upstream release script grabs the dates when the script was run, so lets
 	# end-run them to keep the date the same.
 	export REAL_DB_RELEASE_DATE="$(awk \

diff --git a/sys-libs/db/files/db-5.1.29-rename-atomic-compare-exchange.patch b/sys-libs/db/files/db-5.1.29-rename-atomic-compare-exchange.patch
new file mode 100644
index 0000000..ad3da27
--- /dev/null
+++ b/sys-libs/db/files/db-5.1.29-rename-atomic-compare-exchange.patch
@@ -0,0 +1,22 @@
+diff --git a/src/dbinc/atomic.h b/src/dbinc/atomic.h
+index 0034dcc..fa7ba93 100644
+--- a/src/dbinc/atomic.h
++++ b/src/dbinc/atomic.h
+@@ -144,7 +144,7 @@ typedef LONG volatile *interlocked_val;
+ #define	atomic_inc(env, p)	__atomic_inc(p)
+ #define	atomic_dec(env, p)	__atomic_dec(p)
+ #define	atomic_compare_exchange(env, p, o, n)	\
+-	__atomic_compare_exchange((p), (o), (n))
++	__db_atomic_compare_exchange((p), (o), (n))
+ static inline int __atomic_inc(db_atomic_t *p)
+ {
+ 	int	temp;
+@@ -176,7 +176,7 @@ static inline int __atomic_dec(db_atomic_t *p)
+  * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
+  * which configure could be changed to use.
+  */
+-static inline int __atomic_compare_exchange(
++static inline int __db_atomic_compare_exchange(
+ 	db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
+ {
+ 	atomic_value_t was;


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/db/, sys-libs/db/files/
@ 2017-04-19  8:18 Lars Wendler
  0 siblings, 0 replies; 10+ messages in thread
From: Lars Wendler @ 2017-04-19  8:18 UTC (permalink / raw
  To: gentoo-commits

commit:     bebf2f281885242eee9f31df5814d34d8b312dcf
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 19 08:18:34 2017 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Wed Apr 19 08:18:55 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bebf2f28

sys-libs/db: Bump to version 6.2.32

Package-Manager: Portage-2.3.5, Repoman-2.3.2

 sys-libs/db/Manifest                               |   1 +
 sys-libs/db/db-6.2.32.ebuild                       | 235 +++++++++++++++++++++
 .../files/db-6.2.32-jni-check-prefix-first.patch   |  44 ++++
 3 files changed, 280 insertions(+)

diff --git a/sys-libs/db/Manifest b/sys-libs/db/Manifest
index 6bf257a06eb..ce675af7884 100644
--- a/sys-libs/db/Manifest
+++ b/sys-libs/db/Manifest
@@ -13,6 +13,7 @@ DIST db-5.3.28.tar.gz 35090431 SHA256 e0a992d740709892e81f9d93f06daf305cf73fb81b
 DIST db-6.0.35.tar.gz 36532251 SHA256 24421affa8ae436fe427ae4f5f2d1634da83d3d55a5ad6354a98eeedb825de55 SHA512 002db1553def44efa715095b04b2bac2de7450cdc7142586d1d8b5d8ce79ee5e98f824b3bd276cd586ca932dc51ed35a9ffbed95b2b9847264f262cfa092479d WHIRLPOOL ebbbe7dd0969a36d06c8cc5618a0f61334396b38671b9b1c2523e3d1d3ba687903242acd23999be3efec45e1ea6b9c7f0f9f5acbb54d8d1dc48bba51d196c487
 DIST db-6.1.29.tar.gz 37521943 SHA256 b3c18180e4160d97dd197ba1d37c19f6ea2ec91d31bbfaf8972d99ba097af17d SHA512 ced40e357acd1214f8b5800ddcf084c65c0ab77ca045a4504ac1a4c864035bd50aa8993cd1232174ff81071a36806314807330aa53dcb18de548c886c2a99e73 WHIRLPOOL cf18bd00ff203c5b2ccb39fe87ad307fc9e1cdf45a1db96753c50eaf555b571b3ab77dc52b32c09122956505f366dbdbdcdff094486d7ded21512a3cb873aa42
 DIST db-6.2.23.tar.gz 44305964 SHA256 47612c8991aa9ac2f6be721267c8d3cdccf5ac83105df8e50809daea24e95dc7 SHA512 0aac380673ff4f97a2a6230f135f8151b8d2896a12710f708cd983b5fb95075b55fc2c67af577365e8ec7a32e43357a4f3118e37713d00b227f05eb11b1d12f5 WHIRLPOOL 8a0537da75a5d0d4e0f335a9b27c3767ccab75d0a0f8b2b8b6ccb7483c2f6da02c55b1c14fcda9bdc5bc57fedad6a3c2b81e5d04775cba6d3b42ddcf8266a86e
+DIST db-6.2.32.tar.gz 45342417 SHA256 a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb SHA512 83bdbf18a7b9782409cf4563f8d5f11322d5e564a39946c890604a60440a6ea6361e0236bbc30bd4e8e1de1fa9196b8e815fd126baa035f55c5826c2c6aa3401 WHIRLPOOL 66b2f2ba2e86800b837b9093f3ebf0caeec71ae29b3614aa6b0f908af933539cb6113980049f6c68f63dbfad808fdd530b4f2435bd8ca32611662e384b38885e
 DIST db.1.85.tar.gz 270953 SHA256 4220d4ddeb77fb57ba2f37c1aa105d561d3ef85a6fb89c79c3edd735d0e193c6 SHA512 03bf3a2b0947efdca4e38719542e96378b5eeb57da64d5030dd23ab710773c1826f1c867032d0bea658b7fdd8272db253e97bbc490d198b9437025ffdf9e880e WHIRLPOOL 802346b9fc133f6c9316e987352e8bd8e12792b30b0eae9b4e2b3629c9bc8385ab12244dead428bb824945aab383cd4801de3fc705667797bdf6159066ed1352
 DIST patch.3.2.9.1 2139 SHA256 6d89a42ee0be9e47b3e8a42981c65266a556de84bc6281edcf0f977f52547798 SHA512 f410c43ea4af28a39d8ea47f774d38b53bf1183a34abfcf1f27e253eb61b42f4b5e9f0a3a500e174eb796ea342e6dd50a8bb95ff3eb8ee188461489cc994b8f9 WHIRLPOOL 3a879d5306403739465550ade1fbf53ac62b832fbdf507a204fef13949bc7be9c35ddd972834d3ca74bf17c421791011200556dffd95265eb64849f1d7b647ec
 DIST patch.3.2.9.2 495 SHA256 61db874796fe8789b0045f456285b27c5b8b7b8902a5e342a115456015716d0e SHA512 cc75fef11a641d480beaa2b62201177c72d10c4eb20376b5f15769db6e9e1a0da41c0365d79772af19b4cacdaa9f91dad049c735de9f95b98dcfc4f0b611b557 WHIRLPOOL 1362c32dc16875a97b451ff52415fe4b9e9d37b256a92c7e86c14a52431937352ae55ecee4361459e9036b9bea238c205a8f0d4406ac7e47387a8cda22906879

diff --git a/sys-libs/db/db-6.2.32.ebuild b/sys-libs/db/db-6.2.32.ebuild
new file mode 100644
index 00000000000..61a18bfa944
--- /dev/null
+++ b/sys-libs/db/db-6.2.32.ebuild
@@ -0,0 +1,235 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils db flag-o-matic java-pkg-opt-2 autotools multilib multilib-minimal versionator toolchain-funcs
+
+#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
+
+S_BASE="${WORKDIR}/${MY_P}"
+S="${S_BASE}/build_unix"
+DESCRIPTION="Oracle Berkeley DB"
+HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/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="AGPL-3"
+SLOT="$(get_version_component_range 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
+IUSE="doc java cxx tcl test"
+
+REQUIRED_USE="test? ( tcl )"
+
+# the entire testsuite needs the TCL functionality
+DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	test? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	java? ( >=virtual/jdk-1.5 )
+	>=sys-devel/binutils-2.16.1"
+RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	java? ( >=virtual/jre-1.5 )"
+
+MULTILIB_WRAPPED_HEADERS=(
+	/usr/include/db$(get_version_component_range 1-2)/db.h
+)
+
+PATCHES=(
+	# bug #510506
+	"${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
+
+	# use the includes from the prefix
+	"${FILESDIR}"/${PN}-6.2.32-jni-check-prefix-first.patch
+	"${FILESDIR}"/${PN}-4.3-listen-to-java-options.patch
+
+	# sqlite configure call has an extra leading ..
+	# upstreamed:5.2.36, missing in 5.3.x/6.x
+	# still needs to be patched in 6.0.20
+	"${FILESDIR}"/${PN}-6.1.19-sqlite-configure-path.patch
+
+	# The upstream testsuite copies .lib and the binaries for each parallel test
+	# core, ~300MB each. This patch uses links instead, saves a lot of space.
+	"${FILESDIR}"/${PN}-6.0.20-test-link.patch
+)
+
+src_prepare() {
+	cd "${WORKDIR}"/"${MY_P}"
+	for (( i=1 ; i<=${PATCHNO} ; i++ ))
+	do
+		epatch "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	epatch "${PATCHES[@]}"
+	epatch_user
+
+	# Upstream release script grabs the dates when the script was run, so lets
+	# end-run them to keep the date the same.
+	export REAL_DB_RELEASE_DATE="$(awk \
+		'/^DB_VERSION_STRING=/{ gsub(".*\\(|\\).*","",$0); print $0; }' \
+		"${S_BASE}"/dist/configure)"
+	sed -r -i \
+		-e "/^DB_RELEASE_DATE=/s~=.*~='${REAL_DB_RELEASE_DATE}'~g" \
+		"${S_BASE}"/dist/RELEASE || die
+
+	# Include the SLOT for Java JAR files
+	# This supersedes the unused jarlocation patches.
+	sed -r -i \
+		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
+		"${S_BASE}"/dist/Makefile.in || die
+
+	cd "${S_BASE}"/dist || die
+	rm -f aclocal/libtool.m4
+	sed -i \
+		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
+		configure.ac || die
+	sed -i \
+		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
+		aclocal/programs.m4 || die
+	AT_M4DIR="aclocal aclocal_java" eautoreconf
+	# Upstream sucks - they do autoconf and THEN replace the version variables.
+	. ./RELEASE
+	for v in \
+		DB_VERSION_{FAMILY,LETTER,RELEASE,MAJOR,MINOR} \
+		DB_VERSION_{PATCH,FULL,UNIQUE_NAME,STRING,FULL_STRING} \
+		DB_VERSION \
+		DB_RELEASE_DATE ; do
+		local ev="__EDIT_${v}__"
+		sed -i -e "s/${ev}/${!v}/g" configure || die
+	done
+}
+
+multilib_src_configure() {
+	local myconf=()
+
+	tc-ld-disable-gold #470634
+
+	# compilation with -O0 fails on amd64, see bug #171231
+	if [[ ${ABI} == amd64 ]]; then
+		local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+		replace-flags -O0 -O2
+		is-flagq -O[s123] || append-flags -O2
+	fi
+
+	# Add linker versions to the symbols. Easier to do, and safer than header file
+	# mumbo jumbo.
+	if use userland_GNU ; then
+		append-ldflags -Wl,--default-symver
+	fi
+
+	# use `set` here since the java opts will contain whitespace
+	if multilib_is_native_abi && use java ; then
+		myconf+=(
+			--with-java-prefix="${JAVA_HOME}"
+			--with-javac-flags="$(java-pkg_javac-args)"
+		)
+	fi
+
+	# Bug #270851: test needs TCL support
+	if use tcl || use test ; then
+		myconf+=(
+			--enable-tcl
+			--with-tcl="${EPREFIX}/usr/$(get_libdir)"
+		)
+	else
+		myconf+=(--disable-tcl )
+	fi
+
+	# sql_compat will cause a collision with sqlite3
+	# --enable-sql_compat
+	ECONF_SOURCE="${S_BASE}"/dist \
+	STRIP="true" \
+	econf \
+		--enable-compat185 \
+		--enable-dbm \
+		--enable-o_direct \
+		--without-uniquename \
+		--enable-sql \
+		--enable-sql_codegen \
+		--disable-sql_compat \
+		$([[ ${ABI} == arm ]] && echo --with-mutex=ARM/gcc-assembly) \
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly) \
+		$(use_enable cxx) \
+		$(use_enable cxx stl) \
+		$(multilib_native_use_enable java) \
+		"${myconf[@]}" \
+		$(use_enable test)
+}
+
+multilib_src_install() {
+	emake install DESTDIR="${D}"
+
+	db_src_install_headerslot
+
+	db_src_install_usrlibcleanup
+
+	if multilib_is_native_abi && use java; then
+		java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so
+		java-pkg_dojar "${ED}"/usr/"$(get_libdir)"/*.jar
+		rm -f "${ED}"/usr/"$(get_libdir)"/*.jar
+	fi
+}
+
+multilib_src_install_all() {
+	db_src_install_usrbinslot
+
+	db_src_install_doc
+
+	dodir /usr/sbin
+	# This file is not always built, and no longer exists as of db-4.8
+	if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED}"/usr/bin/berkeley_db_svc \
+			"${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
+}
+
+pkg_postinst() {
+	multilib_foreach_abi db_fix_so
+}
+
+pkg_postrm() {
+	multilib_foreach_abi db_fix_so
+}
+
+src_test() {
+	# db_repsite is impossible to build, as upstream strips those sources.
+	# db_repsite is used directly in the setup_site_prog,
+	# setup_site_prog is called from open_site_prog
+	# which is called only from tests in the multi_repmgr group.
+	#sed -ri \
+	#	-e '/set subs/s,multi_repmgr,,g' \
+	#	"${S_BASE}/test/testparams.tcl"
+	sed -ri \
+		-e '/multi_repmgr/d' \
+		"${S_BASE}/test/tcl/test.tcl" || die
+
+	# This is the only failure in 5.2.28 so far, and looks like a false positive.
+	# Repmgr018 (btree): Test of repmgr stats.
+	#     Repmgr018.a: Start a master.
+	#     Repmgr018.b: Start a client.
+	#     Repmgr018.c: Run some transactions at master.
+	#         Rep_test: btree 20 key/data pairs starting at 0
+	#         Rep_test.a: put/get loop
+	# FAIL:07:05:59 (00:00:00) perm_no_failed_stat: expected 0, got 1
+	sed -ri \
+		-e '/set parms.*repmgr018/d' \
+		-e 's/repmgr018//g' \
+		"${S_BASE}/test/tcl/test.tcl" || die
+
+	multilib-minimal_src_test
+}
+
+multilib_src_test() {
+	multilib_is_native_abi || return
+
+	S=${BUILD_DIR} db_src_test
+}

diff --git a/sys-libs/db/files/db-6.2.32-jni-check-prefix-first.patch b/sys-libs/db/files/db-6.2.32-jni-check-prefix-first.patch
new file mode 100644
index 00000000000..0a320d7f933
--- /dev/null
+++ b/sys-libs/db/files/db-6.2.32-jni-check-prefix-first.patch
@@ -0,0 +1,44 @@
+--- db-6.2.32/dist/aclocal_java/ac_jni_include_dirs.m4
++++ db-6.2.32/dist/aclocal_java/ac_jni_include_dirs.m4
+@@ -43,21 +43,26 @@
+ *)	AC_MSG_ERROR([$_ACJNI_JAVAC is not an absolute path name]);;
+ esac
+ 
+-_ACJNI_FOLLOW_SYMLINKS("$_ACJNI_JAVAC")
+-_JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[[^/]]*$::'`
+-case "$host_os" in
+-	darwin*)	_JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
+-			if test -d "$_JTOPDIR/include"; then
+-				_JINC="$_JTOPDIR/include"
+-			else
+-				_JINC="`$_JTOPDIR/Commands/java_home`/include"
+-			fi;;
+-	*)		if test ! -r "$_JTOPDIR/include/jni.h"; then
+-				_JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
+-			fi
+-			_JINC="$_JTOPDIR/include";;
+-esac
+-
++# If JAVAPREFIX is defined, look there first
++if test -r "$JAVAPREFIX/include/jni.h"; then
++	_JTOPDIR="$JAVAPREFIX"
++	_JINC="$JAVAPREFIX/include"
++else
++	_ACJNI_FOLLOW_SYMLINKS("$_ACJNI_JAVAC")
++	_JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[[^/]]*$::'`
++	case "$host_os" in
++		darwin*)	_JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
++				if test -d "$_JTOPDIR/include"; then
++					_JINC="$_JTOPDIR/include"
++				else
++					_JINC="`$_JTOPDIR/Commands/java_home`/include"
++				fi;;
++		*)		if test ! -r "$_JTOPDIR/include/jni.h"; then
++					_JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
++				fi
++				_JINC="$_JTOPDIR/include";;
++	esac
++fi
+ # If we find jni.h in /usr/include, then it's not a java-only tree, so
+ # don't add /usr/include or subdirectories to the list of includes.
+ # An extra -I/usr/include can foul things up with newer gcc's.


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/db/, sys-libs/db/files/
@ 2019-01-25 14:47 Lars Wendler
  0 siblings, 0 replies; 10+ messages in thread
From: Lars Wendler @ 2019-01-25 14:47 UTC (permalink / raw
  To: gentoo-commits

commit:     79b63b3ecbf9298268529709d1129d11a230ebe8
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 25 14:34:17 2019 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Fri Jan 25 14:47:34 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=79b63b3e

sys-libs/db: Bump to version 18.1.25

Closes: https://bugs.gentoo.org/675202
Package-Manager: Portage-2.3.58, Repoman-2.3.12
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 sys-libs/db/Manifest                               |   1 +
 sys-libs/db/db-18.1.25.ebuild                      | 244 +++++++++++++++++++++
 .../files/db-18.1.25-sqlite-configure-path.patch   |  11 +
 sys-libs/db/files/db-18.1.25-test-link.patch       |  38 ++++
 4 files changed, 294 insertions(+)

diff --git a/sys-libs/db/Manifest b/sys-libs/db/Manifest
index 0fa279baf2d..c06e3e1b641 100644
--- a/sys-libs/db/Manifest
+++ b/sys-libs/db/Manifest
@@ -1,4 +1,5 @@
 DIST db-1.85-r3.1.patch.bz2 14641 BLAKE2B 5ca59487a433a5e5b5fed7a8737c20df041be56733fe9209047f9e53845fa034576c29ad74407509ab96473e4eef0138a3a47de6c348d27209f0e39df85b9f5f SHA512 32b1810515476758ece7415f241378460a4051bf5ee23fb464748f84a90a56ff2c5119ed93028114d64f1b1691b1c694c2301ff825edd89cdee90a870a68b6f4
+DIST db-18.1.25.tar.gz 43980391 BLAKE2B 364f023809d9d68d58879dda80e5a6a1826db261ac371d63151278731a777c6ca629b051df3c1430f1c049fcc7e4ddfe041522e891290a43aba051b519b28523 SHA512 30a0508dc7eb92adb56bdc881cedf179e901f888c776bc515b342ae585168521fa9f3c763f438d0e8a008e7cc779b3f40a7385285d724f8494d25d3652e6f1c9
 DIST db-3.2.9.tar.gz 2085238 BLAKE2B 10cb1c102bf5db52ec16181ccbb02a8c4560f42afd2382689ee4903fcd63bf3ab4802482a065a85b1d34c8fb9f620fceb985155b1390de7ca404c121b6b4b6bc SHA512 5f07b27ae0cbd2832e5db9473cd4f2d4aebeee25ed8245ebd2c297a576571635ca5cf75e63e0967b1e90978128a5b6f5d8112559c56927d5bc5eb0d9fd3a2e95
 DIST db-4.2.52.tar.gz 4073147 BLAKE2B 0bb9649a08df9b425f28471eb65c0efac0b7833b4c5c841b9ef53a142669b549e1f1b78cf42eeceea05ebb271aacd513d115070ea028f77fb1830bb9fcc7c8a9 SHA512 47a4e1353fe4f5c2160952a8f7a09b73fdf2dfcd222a8214e12630cec3139a624907bba83a06f10f8492b4dce328a979e9155ee049b9a88798edaca62cfe60d1
 DIST db-4.3.29.tar.gz 6103264 BLAKE2B eda13cd5c8b9421044f6c8b6b41ec318ff33e19da15f8d5e3075612186e60cfce30069078f712841058224ed58caf69d43960156ac645651670665390eae28e1 SHA512 93d36c040b25739b92c52504e117a9c7f4b671463d61d00029e70d0bc8171311f5d04211f7d966b8a9ef8c2a85a5ebe8cc55e4469c3c7c0e468caa4221f691fc

diff --git a/sys-libs/db/db-18.1.25.ebuild b/sys-libs/db/db-18.1.25.ebuild
new file mode 100644
index 00000000000..ff6f5d1ca7d
--- /dev/null
+++ b/sys-libs/db/db-18.1.25.ebuild
@@ -0,0 +1,244 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit db flag-o-matic java-pkg-opt-2 autotools multilib multilib-minimal eapi7-ver toolchain-funcs
+
+#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
+
+S_BASE="${WORKDIR}/${MY_P}"
+S="${S_BASE}/dist"
+DESCRIPTION="Oracle Berkeley DB"
+HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/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="AGPL-3"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="doc java cxx tcl test"
+
+REQUIRED_USE="test? ( tcl )"
+
+# the entire testsuite needs the TCL functionality
+DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	test? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	java? ( >=virtual/jdk-1.5 )
+	>=sys-devel/binutils-2.16.1"
+RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	java? ( >=virtual/jre-1.5 )"
+
+MULTILIB_WRAPPED_HEADERS=(
+	/usr/include/db$(ver_cut 1-2)/db.h
+)
+
+PATCHES=(
+	# bug #510506
+	"${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
+
+	# use the includes from the prefix
+	"${FILESDIR}"/${PN}-6.2.32-jni-check-prefix-first.patch
+	"${FILESDIR}"/${PN}-4.3-listen-to-java-options.patch
+
+	# sqlite configure call has an extra leading ..
+	# upstreamed:5.2.36, missing in 5.3.x/6.x
+	# still needs to be patched in 6.0.20
+	"${FILESDIR}"/${PN}-18.1.25-sqlite-configure-path.patch
+
+	# The upstream testsuite copies .lib and the binaries for each parallel test
+	# core, ~300MB each. This patch uses links instead, saves a lot of space.
+	"${FILESDIR}"/${PN}-18.1.25-test-link.patch
+)
+
+src_prepare() {
+	cd "${WORKDIR}"/"${MY_P}"
+	for (( i=1 ; i<=${PATCHNO} ; i++ ))
+	do
+		eapply "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	default
+
+	# Upstream release script grabs the dates when the script was run, so lets
+	# end-run them to keep the date the same.
+	export REAL_DB_RELEASE_DATE="$(awk \
+		'/^DB_VERSION_STRING=/{ gsub(".*\\(|\\).*","",$0); print $0; }' \
+		"${S_BASE}"/dist/configure)"
+	sed -r -i \
+		-e "/^DB_RELEASE_DATE=/s~=.*~='${REAL_DB_RELEASE_DATE}'~g" \
+		"${S_BASE}"/dist/RELEASE || die
+
+	# Include the SLOT for Java JAR files
+	# This supersedes the unused jarlocation patches.
+	sed -r -i \
+		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
+		"${S_BASE}"/dist/Makefile.in || die
+
+	cd "${S_BASE}"/dist || die
+	rm -f aclocal/libtool.m4
+	sed -i \
+		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
+		configure.ac || die
+	sed -i \
+		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
+		aclocal/programs.m4 || die
+	AT_M4DIR="aclocal aclocal_java" eautoreconf
+	# Upstream sucks - they do autoconf and THEN replace the version variables.
+	. ./RELEASE
+	for v in \
+		DB_VERSION_{FAMILY,LETTER,RELEASE,MAJOR,MINOR} \
+		DB_VERSION_{PATCH,FULL,UNIQUE_NAME,STRING,FULL_STRING} \
+		DB_VERSION \
+		DB_RELEASE_DATE ; do
+		local ev="__EDIT_${v}__"
+		sed -i -e "s/${ev}/${!v}/g" configure || die
+	done
+
+	# This is a false positive skip in the tests as the test-reviewer code
+	# looks for 'Skipping\s'
+	sed -i \
+		-e '/db_repsite/s,Skipping:,Skipping,g' \
+		"${S_BASE}"/test/tcl/reputils.tcl || die
+}
+
+multilib_src_configure() {
+	# sql_compat will cause a collision with sqlite3
+	# --enable-sql_compat
+	# Don't --enable-sql* because we don't want to use bundled sqlite.
+	# See Gentoo bug #605688
+	local myeconfargs=(
+		--enable-compat185
+		--enable-dbm
+		--enable-o_direct
+		# Requires openssl-1.0
+		--with-repmgr-ssl=no
+		--without-uniquename
+		--disable-sql
+		--disable-sql_codegen
+		--disable-sql_compat
+		$([[ ${ABI} == arm ]] && echo --with-mutex=ARM/gcc-assembly)
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly)
+		$(use_enable cxx)
+		$(use_enable cxx stl)
+		$(multilib_native_use_enable java)
+		$(use_enable test)
+	)
+
+	tc-ld-disable-gold #470634
+
+	# compilation with -O0 fails on amd64, see bug #171231
+	if [[ ${ABI} == amd64 ]]; then
+		local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+		replace-flags -O0 -O2
+		is-flagq -O[s123] || append-flags -O2
+	fi
+
+	# Add linker versions to the symbols. Easier to do, and safer than header file
+	# mumbo jumbo.
+	if use userland_GNU ; then
+		append-ldflags -Wl,--default-symver
+	fi
+
+	# use `set` here since the java opts will contain whitespace
+	if multilib_is_native_abi && use java ; then
+		myconf+=(
+			--with-java-prefix="${JAVA_HOME}"
+			--with-javac-flags="$(java-pkg_javac-args)"
+		)
+	fi
+
+	# Bug #270851: test needs TCL support
+	if use tcl || use test ; then
+		myeconfargs+=(
+			--enable-tcl
+			--with-tcl="${EPREFIX}/usr/$(get_libdir)"
+		)
+	else
+		myeconfargs+=(--disable-tcl )
+	fi
+
+	ECONF_SOURCE="${S_BASE}"/dist \
+	STRIP="true" \
+	econf "${myeconfargs[@]}"
+}
+
+multilib_src_install() {
+	emake install DESTDIR="${D}"
+
+	db_src_install_headerslot
+
+	db_src_install_usrlibcleanup
+
+	if multilib_is_native_abi && use java; then
+		java-pkg_regso "${ED%/}"/usr/"$(get_libdir)"/libdb_java*.so
+		java-pkg_dojar "${ED%/}"/usr/"$(get_libdir)"/*.jar
+		rm -f "${ED%/}"/usr/"$(get_libdir)"/*.jar
+	fi
+}
+
+multilib_src_install_all() {
+	db_src_install_usrbinslot
+
+	db_src_install_doc
+
+	dodir /usr/sbin
+	# This file is not always built, and no longer exists as of db-4.8
+	if [[ -f "${ED%/}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED%/}"/usr/bin/berkeley_db_svc \
+			"${ED%/}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
+}
+
+pkg_postinst() {
+	multilib_foreach_abi db_fix_so
+}
+
+pkg_postrm() {
+	multilib_foreach_abi db_fix_so
+}
+
+src_test() {
+	# db_repsite is impossible to build, as upstream strips those sources.
+	# db_repsite is used directly in the setup_site_prog,
+	# setup_site_prog is called from open_site_prog
+	# which is called only from tests in the multi_repmgr group.
+	#sed -ri \
+	#	-e '/set subs/s,multi_repmgr,,g' \
+	#	"${S_BASE}/test/testparams.tcl"
+	sed -ri \
+		-e '/multi_repmgr/d' \
+		"${S_BASE}/test/tcl/test.tcl" || die
+
+	# This is the only failure in 5.2.28 so far, and looks like a false positive.
+	# Repmgr018 (btree): Test of repmgr stats.
+	#     Repmgr018.a: Start a master.
+	#     Repmgr018.b: Start a client.
+	#     Repmgr018.c: Run some transactions at master.
+	#         Rep_test: btree 20 key/data pairs starting at 0
+	#         Rep_test.a: put/get loop
+	# FAIL:07:05:59 (00:00:00) perm_no_failed_stat: expected 0, got 1
+	sed -ri \
+		-e '/set parms.*repmgr018/d' \
+		-e 's/repmgr018//g' \
+		"${S_BASE}/test/tcl/test.tcl" || die
+
+	multilib-minimal_src_test
+}
+
+multilib_src_test() {
+	multilib_is_native_abi || return
+
+	S=${BUILD_DIR} db_src_test
+}

diff --git a/sys-libs/db/files/db-18.1.25-sqlite-configure-path.patch b/sys-libs/db/files/db-18.1.25-sqlite-configure-path.patch
new file mode 100644
index 00000000000..40570cafe21
--- /dev/null
+++ b/sys-libs/db/files/db-18.1.25-sqlite-configure-path.patch
@@ -0,0 +1,11 @@
+--- db-18.1.25/dist/aclocal/sql.m4
++++ db-18.1.25/dist/aclocal/sql.m4
+@@ -99,7 +99,7 @@
+ if test "$db_cv_debug" = "yes"; then
+   CPPFLAGS="$CPPFLAGS -g"
+ fi
+-(cd sql && eval "\$SHELL ../$sqlite_dir/configure --disable-option-checking $ac_sub_configure_args CPPFLAGS=\"-I.. $CPPFLAGS\" --enable-amalgamation=$db_cv_sql_amalgamation --enable-readline=$with_readline --enable-editline=$with_editline" && cat build_config.h >> config.h) || exit 1
++(cd sql && eval "\$SHELL $sqlite_dir/configure --disable-option-checking $ac_sub_configure_args CPPFLAGS=\"-I.. $CPPFLAGS\" --enable-amalgamation=$db_cv_sql_amalgamation --enable-readline=$with_readline --enable-editline=$with_editline" && cat build_config.h >> config.h) || exit 1
+ 
+ # Configure JDBC if --enable-jdbc
+ if test "$db_cv_jdbc" != "no"; then

diff --git a/sys-libs/db/files/db-18.1.25-test-link.patch b/sys-libs/db/files/db-18.1.25-test-link.patch
new file mode 100644
index 00000000000..dc3d8ae93c5
--- /dev/null
+++ b/sys-libs/db/files/db-18.1.25-test-link.patch
@@ -0,0 +1,38 @@
+--- db-18.1.25/test/tcl/parallel.tcl
++++ db-18.1.25/test/tcl/parallel.tcl
+@@ -296,17 +296,26 @@
+ 			    [eval glob -nocomplain {$dir/$buildpath/db_{reptest,repsite,replicate}$EXE}] \
+ 			    $destdir/$buildpath}
+ 		}
++		catch {
++			set l [eval glob {$dir/.libs} {$dir/db_{checkpoint,deadlock}$EXE} \
++					{$dir/db_{dump,load,printlog,recover,stat,upgrade}$EXE} \
++					{$dir/db_{archive,verify,hotbackup,log_verify}$EXE}]
++			foreach fn $l {
++				set fbasename [file tail $fn]
++				eval file link {$destdir/$fbasename} $fn
++			}
++		}
++		# we will be modifying this file, so we must copy, not link
+ 		catch {eval file copy \
+-		    [eval glob {$dir/{.libs,include.tcl}}] $destdir}
++		    [eval glob {$dir/include.tcl}] $destdir}
+ 		# catch {eval file copy $dir/$queuedir $destdir}
+-		catch {eval file copy \
+-		    [eval glob {$dir/db_{checkpoint,deadlock}$EXE} \
+-		    {$dir/db_{dump,load,printlog,recover}$EXE} \
+-		    {$dir/db_{stat,upgrade,archive,verify}$EXE} \
+-		    {$dir/db_{hotbackup,log_verify,tuner}$EXE}] \
+-		    $destdir}
+-		catch {eval file copy \
+-		    [eval glob -nocomplain {$dir/db_{reptest,repsite,replicate}$EXE}] $destdir}
++		catch {
++			set l [eval glob -nocomplain {$dir/db_{reptest,repsite,replicate}$EXE}]
++			foreach fn $l {
++				set fbasename [file tail $fn]
++				eval file link {$destdir/$fbasename} $fn
++			}
++		}
+ 
+ 		# Create modified copies of include.tcl in parallel
+ 		# directories so paths still work.


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/db/, sys-libs/db/files/
@ 2019-11-07 17:35 Lars Wendler
  0 siblings, 0 replies; 10+ messages in thread
From: Lars Wendler @ 2019-11-07 17:35 UTC (permalink / raw
  To: gentoo-commits

commit:     35649ba689623e24501e7091b13eb8ba8d60fc84
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Thu Nov  7 17:35:02 2019 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Thu Nov  7 17:35:18 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=35649ba6

sys-libs/db: First batch of EAPI-7 revbumps

Bug: https://bugs.gentoo.org/697542
Closes: https://bugs.gentoo.org/612686
Closes: https://bugs.gentoo.org/639754
Closes: https://bugs.gentoo.org/603680
Package-Manager: Portage-2.3.78, Repoman-2.3.17
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 .../db/{db-1.85-r3.ebuild => db-1.85-r4.ebuild}    |  30 ++--
 .../{db-3.2.9_p2.ebuild => db-3.2.9_p2-r1.ebuild}  | 177 +++++++++++----------
 ...-4.2.52_p5-r1.ebuild => db-4.2.52_p5-r2.ebuild} | 164 +++++++++++--------
 ...-4.3.29_p1-r1.ebuild => db-4.3.29_p1-r2.ebuild} | 158 ++++++++++--------
 ...-4.4.20_p4-r1.ebuild => db-4.4.20_p4-r2.ebuild} | 146 +++++++++--------
 sys-libs/db/files/db-1.85-gentoo-paths.patch       |   4 +-
 sys-libs/db/files/db-3.2.9-gcc43.patch             |   2 +-
 .../db/files/db-4.2-jni-check-prefix-first.patch   |   4 +-
 .../db/files/db-4.2-listen-to-java-options.patch   |   4 +-
 sys-libs/db/files/db-4.2.52_p2-TXN.patch           |   8 +-
 .../db/files/db-4.3-jni-check-prefix-first.patch   |   4 +-
 sys-libs/db/files/db-4.3-libtool.patch             |   4 +-
 sys-libs/db/files/db-4.4-libtool.patch             |   4 +-
 13 files changed, 398 insertions(+), 311 deletions(-)

diff --git a/sys-libs/db/db-1.85-r3.ebuild b/sys-libs/db/db-1.85-r4.ebuild
similarity index 67%
rename from sys-libs/db/db-1.85-r3.ebuild
rename to sys-libs/db/db-1.85-r4.ebuild
index 065baf18bbd..055296208c6 100644
--- a/sys-libs/db/db-1.85-r3.ebuild
+++ b/sys-libs/db/db-1.85-r4.ebuild
@@ -1,14 +1,14 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=0
+EAPI=7
 
-inherit eutils toolchain-funcs multilib multilib
+inherit toolchain-funcs multilib
 
 DESCRIPTION="old berk db kept around for really old packages"
 HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html"
 SRC_URI="http://download.oracle.com/berkeley-db/db.${PV}.tar.gz
-		 mirror://gentoo/${PF}.1.patch.bz2"
+		 mirror://gentoo/${P}-r3.1.patch.bz2"
 # The patch used by Gentoo is from Fedora, and includes all 5 patches found on
 # the Oracle page, plus others.
 
@@ -19,13 +19,16 @@ IUSE=""
 
 DEPEND=""
 
-S=${WORKDIR}/db.${PV}
+S="${WORKDIR}/db.${PV}"
+
+PATCHES=(
+	"${WORKDIR}"/${P}-r3.1.patch
+	"${FILESDIR}"/${P}-gentoo-paths.patch
+)
+
+src_prepare() {
+	default
 
-src_unpack() {
-	unpack ${A}
-	cd "${S}"
-	epatch "${WORKDIR}"/${PF}.1.patch
-	epatch "${FILESDIR}"/${P}-gentoo-paths.patch
 	sed -i \
 		-e "s:@GENTOO_LIBDIR@:$(get_libdir):" \
 		PORT/linux/Makefile || die
@@ -33,16 +36,17 @@ src_unpack() {
 
 src_compile() {
 	tc-export CC AR RANLIB
-	emake -C PORT/linux OORG="${CFLAGS}" || die
+	emake -C PORT/linux OORG="${CFLAGS}"
 }
 
 src_install() {
 	make -C PORT/linux install DESTDIR="${ED}" || die
 
 	# binary compat symlink
-	dosym libdb1.so.2 /usr/$(get_libdir)/libdb.so.2 || die
+	dosym libdb1.so.2 /usr/$(get_libdir)/libdb.so.2
 
-	dosed "s:<db.h>:<db1/db.h>:" /usr/include/db1/ndbm.h
+	sed -e "s:<db.h>:<db1/db.h>:" \
+		-i "${ED}"/usr/include/db1/ndbm.h || die
 	dosym db1/ndbm.h /usr/include/ndbm.h
 
 	dodoc changelog README

diff --git a/sys-libs/db/db-3.2.9_p2.ebuild b/sys-libs/db/db-3.2.9_p2-r1.ebuild
similarity index 56%
rename from sys-libs/db/db-3.2.9_p2.ebuild
rename to sys-libs/db/db-3.2.9_p2-r1.ebuild
index eac5cd83442..39694fde8a7 100644
--- a/sys-libs/db/db-3.2.9_p2.ebuild
+++ b/sys-libs/db/db-3.2.9_p2-r1.ebuild
@@ -1,20 +1,20 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=0
+EAPI=7
 
-inherit eutils db multilib
+inherit db flag-o-matic multilib
 
 #Number of official patches
 #PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"`
-PATCHNO=${PV/*.*.*_p}
+PATCHNO="${PV/*.*.*_p}"
 if [[ ${PATCHNO} == "${PV}" ]] ; then
-	MY_PV=${PV}
-	MY_P=${P}
+	MY_PV="${PV}"
+	MY_P="${P}"
 	PATCHNO=0
 else
-	MY_PV=${PV/_p${PATCHNO}}
-	MY_P=${PN}-${MY_PV}
+	MY_PV="${PV/_p${PATCHNO}}"
+	MY_P="${PN}-${MY_PV}"
 fi
 
 DESCRIPTION="Berkeley DB for transaction support in MySQL"
@@ -36,62 +36,68 @@ DEPEND="${RDEPEND}
 
 S="${WORKDIR}/${MY_P}"
 
-src_unpack() {
-	# This doesn't build without exceptions
-	export CXXFLAGS="${CXXFLAGS/-fno-exceptions/-fexceptions}"
+PATCHES=(
+	# 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)
+	"${FILESDIR}"/${MY_P}-fix-dep-link.patch
 
-	unpack "${MY_P}".tar.gz
+	"${FILESDIR}"/${MY_P}-gcc43.patch
+)
 
-	chmod -R ug+w *
+pkg_setup() {
+	# This doesn't build without exceptions
+	replace-flags -fno-exceptions -fexceptions
+}
 
-	cd "${WORKDIR}"/"${MY_P}"
+src_prepare() {
 	for (( i=1 ; i<=${PATCHNO} ; i++ ))
 	do
-		epatch "${DISTDIR}"/patch."${MY_PV}"."${i}"
+		eapply -p0 "${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
+	default
 
 	# 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:' \
+	mv dist/Makefile.in{,.orig} || die
+	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
+		dist/Makefile.in.orig \
+		> dist/Makefile.in || die
 
-	# Fix invalid .la files
-	cd "${WORKDIR}"/${MY_P}/dist
-	rm -f ltversion.sh
+	cd dist || die
 	# remove config.guess else we have problems with gcc-3.2
-	rm -f config.guess
-	sed -i "s,\(-D_GNU_SOURCE\),\1 ${CFLAGS}," configure
-
+	rm config.guess || die
+	sed -i "s,\(-D_GNU_SOURCE\),\1 ${CFLAGS}," configure || die
 }
 
-src_compile() {
-	local conf=
-	local conf_shared=
-	local conf_static=
-
-	conf="${conf}
-		--host=${CHOST} \
-		--build=${CHOST} \
-		--enable-cxx \
-		--enable-compat185 \
-		--enable-dump185 \
-		--prefix=${EPREFIX}/usr"
-
-	# --enable-rpc DOES NOT BUILD
-	# Robin H. Johnson <robbat2@gentoo.org> (18 Oct 2003)
-
-	conf_shared="${conf_shared}
-		--enable-dynamic"
+src_configure() {
+	local conf=(
+		--host=${CHOST}
+		--build=${CHOST}
+		--enable-cxx
+		--enable-compat185
+		--enable-dump185
+		--libdir="${EPREFIX}"/usr/$(get_libdir)
+		--prefix="${EPREFIX}"/usr
+	)
+
+	local conf_shared=(
+		--disable-static
+		--enable-shared
+
+		# --enable-rpc DOES NOT BUILD
+		# Robin H. Johnson <robbat2@gentoo.org> (18 Oct 2003)
+		--enable-dynamic
+	)
+
+	local conf_static=(
+		--disable-shared
+		--enable-static
+	)
 
 	# TCL support is also broken
 	# Robin H. Johnson <robbat2@gentoo.org> (18 Oct 2003)
@@ -103,47 +109,54 @@ src_compile() {
 	#       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="${EPREFIX}"/usr/$(get_libdir) \
-		--disable-shared \
-		--enable-static || die
+	mkdir build-static || die
+	pushd build-static &>/dev/null || die
+	strip="${EPREFIX}"/bin/true \
+	ECONF_SOURCE="${S}"/dist \
+	econf ${conf[@]} ${conf_static[@]}
+	popd &>/dev/null || die
 
 	einfo "Configuring ${P} (shared)..."
-	mkdir -p "${S}"/build-shared
-	cd "${S}"/build-shared
-	strip="${ED}"/bin/true \
-	ECONF_SOURCE="${S}"/dist econf \
-		${conf} ${conf_shared} \
-		--libdir="${EPREFIX}"/usr/$(get_libdir) \
-		--disable-static \
-		--enable-shared || die
+	mkdir build-shared || die
+	pushd build-shared &>/dev/null || die
+	strip="${EPREFIX}"/bin/true \
+	ECONF_SOURCE="${S}"/dist \
+	econf ${conf[@]} ${conf_shared[@]}
+	popd &>/dev/null || die
+}
 
+src_compile() {
 	# Parallel make does not work
 	MAKEOPTS="${MAKEOPTS} -j1"
+
 	einfo "Building ${P} (static)..."
-	cd "${S}"/build-static
-	emake strip="${EPREFIX}"/bin/true || die "Static build failed"
+	pushd "${S}"/build-static &>/dev/null || die
+	emake strip="${EPREFIX}"/bin/true
+	popd &>/dev/null || die
+	
 	einfo "Building ${P} (shared)..."
-	cd "${S}"/build-shared
-	emake strip="${EPREFIX}"/bin/true || die "Shared build failed"
+	pushd build-shared &>/dev/null || die
+	emake strip="${EPREFIX}"/bin/true
+	popd &>/dev/null || die
 }
 
-src_install () {
-	cd "${S}"/build-shared
-	make libdb=libdb-3.2.a \
+src_install() {
+	pushd build-shared &>/dev/null || die
+	# build system does not support DESTDIR 
+	emake \
+		libdb=libdb-3.2.a \
 		libcxx=libcxx_3.2.a \
-		prefix="${EPREFIX}"/usr \
-		libdir="${EPREFIX}"/usr/$(get_libdir) \
+		DESTDIR="${D}" \
+		prefix="${ED}"/usr \
+		libdir="${ED}"/usr/$(get_libdir) \
 		strip="${EPREFIX}"/bin/true \
-		install || die
+		install
+	popd &>/dev/null || 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!"
+	pushd build-static &>/dev/null || die
+	newlib.a libdb.a libdb-3.2.a
+	newlib.a libdb_cxx.a libdb_cxx-3.2.a
+	popd &>/dev/null || die
 
 	db_src_install_headerslot || die "db_src_install_headerslot failed!"
 
@@ -154,12 +167,12 @@ src_install () {
 	# 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 "${ED}"/usr/$(get_libdir)
+	pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
 	chmod go+rx *.so
 	# The .la's aren't readable either
 	chmod go+r *.la
+	popd &>/dev/null || die
 
-	cd "${S}"
 	dodoc README
 
 	db_src_install_doc || die "db_src_install_doc failed!"
@@ -169,11 +182,11 @@ src_install () {
 	db_src_install_usrlibcleanup || die "db_src_install_usrlibcleanup failed!"
 }
 
-pkg_postinst () {
+pkg_postinst() {
 	db_fix_so
 }
 
-pkg_postrm () {
+pkg_postrm() {
 	db_fix_so
 }
 

diff --git a/sys-libs/db/db-4.2.52_p5-r1.ebuild b/sys-libs/db/db-4.2.52_p5-r2.ebuild
similarity index 51%
rename from sys-libs/db/db-4.2.52_p5-r1.ebuild
rename to sys-libs/db/db-4.2.52_p5-r2.ebuild
index f6cf119c6ae..ee47ba9b383 100644
--- a/sys-libs/db/db-4.2.52_p5-r1.ebuild
+++ b/sys-libs/db/db-4.2.52_p5-r2.ebuild
@@ -1,20 +1,20 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=0
+EAPI=7
 
-inherit eutils db flag-o-matic java-pkg-opt-2 autotools multilib
+inherit autotools db flag-o-matic java-pkg-opt-2 multilib
 
 #Number of official patches
 #PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"`
-PATCHNO=${PV/*.*.*_p}
+PATCHNO="${PV/*.*.*_p}"
 if [[ ${PATCHNO} == "${PV}" ]] ; then
-	MY_PV=${PV}
-	MY_P=${P}
+	MY_PV="${PV}"
+	MY_P="${P}"
 	PATCHNO=0
 else
-	MY_PV=${PV/_p${PATCHNO}}
-	MY_P=${PN}-${MY_PV}
+	MY_PV="${PV/_p${PATCHNO}}"
+	MY_P="${PN}-${MY_PV}"
 fi
 
 S="${WORKDIR}/${MY_P}/build_unix"
@@ -35,108 +35,132 @@ DEPEND="tcl? ( >=dev-lang/tcl-8.4 )
 RDEPEND="tcl? ( dev-lang/tcl )
 	java? ( >=virtual/jre-1.4 )"
 
+PATCHES=(
+	"${FILESDIR}"/"${PN}"-4.2.52_p2-TXN.patch
+	"${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch
+
+	# use the includes from the prefix
+	"${FILESDIR}"/"${PN}"-"${SLOT}"-jni-check-prefix-first.patch
+	"${FILESDIR}"/"${PN}"-"${SLOT}"-listen-to-java-options.patch
+	"${FILESDIR}"/"${PN}"-4.0.14-fix-dep-link.patch
+)
+
+# Required to avoid unpack attempt of patches
 src_unpack() {
-	unpack "${MY_P}".tar.gz
-	cd "${WORKDIR}"/"${MY_P}"
+	unpack ${MY_P}.tar.gz
+}
+
+src_prepare() {
+	pushd "${WORKDIR}/${MY_P}" &>/dev/null || die
 	for (( i=1 ; i<=${PATCHNO} ; i++ ))
 	do
-		epatch "${DISTDIR}"/patch."${MY_PV}"."${i}"
+		eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}"
 	done
-	epatch "${FILESDIR}"/"${PN}"-4.2.52_p2-TXN.patch
-	epatch "${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch
 
-	# use the includes from the prefix
-	epatch "${FILESDIR}"/"${PN}"-"${SLOT}"-jni-check-prefix-first.patch
-	epatch "${FILESDIR}"/"${PN}"-"${SLOT}"-listen-to-java-options.patch
-	epatch "${FILESDIR}"/"${PN}"-4.0.14-fix-dep-link.patch
+	default
 
-	sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" -i dist/RELEASE
+	sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \
+		-i dist/RELEASE || die
 
 	# Include the SLOT for Java JAR files
 	# This supersedes the unused jarlocation patches.
-	sed -r -i \
+	sed -r \
 		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
-		"${S}"/../dist/Makefile.in
+		-i dist/Makefile.in || die
 
 	# START of 4.5+earlier specific
 	# Upstream sucks, they normally concat these
-	cd "${S}"/../dist/aclocal
-	for i in *; do ln -s $i ${i%.ac}.m4 ; done ;
-	cd "${S}"/../dist/aclocal_java
-	for i in *; do ln -s $i ${i%.ac}.m4 ; done ;
+	local i j
+	for j in dist/aclocal{,_java} ; do
+		pushd ${j} &>/dev/null || die
+		for i in * ; do
+			ln -s ${i} ${i%.ac}.m4 || die
+		done
+		popd &>/dev/null || die
+	done
 	# END of 4.5+earlier specific
-	cd "${S}"/../dist
-	rm -f aclocal/libtool.{m4,ac} aclocal.m4
-	sed -i \
+	pushd dist &>/dev/null || die
+	rm aclocal/libtool.{m4,ac} || die
+	sed \
 		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
-		configure.ac
-	sed -i \
+		-i configure.ac || die
+	sed \
 		-e '/^AC_PATH_TOOL/s/ sh, missing_sh/ bash, missing_sh/' \
-		aclocal/programs.m4
+		-i aclocal/programs.m4 || die
+
 	AT_M4DIR="aclocal aclocal_java" eautoreconf
+
 	# Upstream sucks - they do autoconf and THEN replace the version variables.
 	. ./RELEASE
-	sed -i \
+	sed \
 		-e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \
 		-e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \
 		-e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \
 		-e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \
 		-e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \
-		-e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" configure
-}
-
-src_compile() {
-	local myconf=""
-
-	use amd64 && myconf="${myconf} --with-mutex=x86/gcc-assembly"
+		-e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \
+		-i configure || die
 
-	myconf="${myconf} $(use_enable cxx)"
+	popd &>/dev/null || die
+	popd &>/dev/null || die
+}
 
-	use tcl \
-		&& myconf="${myconf} --enable-tcl --with-tcl=${EPREFIX}/usr/$(get_libdir)" \
-		|| myconf="${myconf} --disable-tcl"
+src_configure() {
+	local myconf=(
+		--prefix="${EPREFIX}"/usr
+		--mandir="${EPREFIX}"/usr/share/man
+		--infodir="${EPREFIX}"/usr/share/info
+		--datadir="${EPREFIX}"/usr/share
+		--sysconfdir="${EPREFIX}"/etc
+		--localstatedir="${EPREFIX}"/var/lib
+		--libdir="${EPREFIX}"/usr/"$(get_libdir)"
+		--enable-compat185
+		--with-uniquename
+		$(use_enable rpc)
+		--host="${CHOST}"
+
+		$(usex amd64 '--with-mutex=x86/gcc-assembly' '')
+		$(use_enable cxx)
+		$(use_enable tcl)
+		$(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #"
+		$(use_enable java)
+	)
 
-	myconf="${myconf} $(use_enable java)"
 	if use java; then
-		myconf="${myconf} --with-java-prefix=${JAVA_HOME}"
-		# Can't get this working any other way, since it returns spaces, and
-		# bash doesn't seem to want to pass correctly in any way i try
-		local javaconf="-with-javac-flags=$(java-pkg_javac-args)"
+		myconf+=(
+			--with-java-prefix="${JAVA_HOME}"
+			--with-javac-flags="$(java-pkg_javac-args)"
+		)
 	fi
 
-	[[ -n ${CBUILD} ]] && myconf="${myconf} --build=${CBUILD}"
+	[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
 
 	# the entire testsuite needs the TCL functionality
 	if use tcl && use test; then
-		myconf="${myconf} --enable-test"
+		myconf+=( --enable-test )
 	else
-		myconf="${myconf} --disable-test"
+		myconf+=( --disable-test )
 	fi
 
-	cd "${S}" && ECONF_SOURCE="${S}"/../dist econf \
-		--prefix="${EPREFIX}"/usr \
-		--mandir="${EPREFIX}"/usr/share/man \
-		--infodir="${EPREFIX}"/usr/share/info \
-		--datadir="${EPREFIX}"/usr/share \
-		--sysconfdir="${EPREFIX}"/etc \
-		--localstatedir="${EPREFIX}"/var/lib \
-		--libdir="${EPREFIX}"/usr/"$(get_libdir)" \
-		--enable-compat185 \
-		--with-uniquename \
-		$(use_enable rpc) \
-		--host="${CHOST}" \
-		${myconf} "${javaconf}" || die "configure failed"
+	ECONF_SOURCE="${S}"/../dist \
+	econf "${myconf[@]}"
+}
 
+src_compile() {
 	# This isn't safe for prefix (Darwin should be .jnilib), but I can't get the
 	# build system to behave itself, it generates libtool too late.
-	sed -i \
+	sed \
 		-e 's/-shrext  $(SOFLAGS)/-shrext .so $(SOFLAGS)/g' \
-		Makefile
-	emake || die "make failed"
+		-i Makefile || die
+	emake
 }
 
 src_install() {
-	einstall libdir="${ED}/usr/$(get_libdir)" strip="${ED}/bin/strip" || die
+	emake \
+		DESTDIR="${D}" \
+		libdir="${EPREFIX}/usr/$(get_libdir)" \
+		strip="${EPREFIX}/bin/strip" \
+		install
 
 	db_src_install_usrbinslot
 
@@ -148,8 +172,10 @@ src_install() {
 
 	dodir /usr/sbin
 	# This file is not always built, and no longer exists as of db-4.8
-	[[ -f "${ED}"/usr/bin/berkeley_db_svc ]] && \
-	mv "${ED}"/usr/bin/berkeley_db_svc "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc
+	if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED}"/usr/bin/berkeley_db_svc \
+			"${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
 
 	if use java; then
 		java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so

diff --git a/sys-libs/db/db-4.3.29_p1-r1.ebuild b/sys-libs/db/db-4.3.29_p1-r2.ebuild
similarity index 52%
rename from sys-libs/db/db-4.3.29_p1-r1.ebuild
rename to sys-libs/db/db-4.3.29_p1-r2.ebuild
index 82815967b4a..1a90b1c6f2f 100644
--- a/sys-libs/db/db-4.3.29_p1-r1.ebuild
+++ b/sys-libs/db/db-4.3.29_p1-r2.ebuild
@@ -1,20 +1,20 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=0
+EAPI=7
 
-inherit eutils db flag-o-matic java-pkg-opt-2 autotools multilib
+inherit autotools db flag-o-matic java-pkg-opt-2 multilib
 
 #Number of official patches
 #PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"`
-PATCHNO=${PV/*.*.*_p}
+PATCHNO="${PV/*.*.*_p}"
 if [[ ${PATCHNO} == "${PV}" ]] ; then
-	MY_PV=${PV}
-	MY_P=${P}
+	MY_PV="${PV}"
+	MY_P="${P}"
 	PATCHNO=0
 else
-	MY_PV=${PV/_p${PATCHNO}}
-	MY_P=${PN}-${MY_PV}
+	MY_PV="${PV/_p${PATCHNO}}"
+	MY_P="${PN}-${MY_PV}"
 fi
 
 S="${WORKDIR}/${MY_P}/build_unix"
@@ -36,82 +36,112 @@ DEPEND="tcl? ( >=dev-lang/tcl-8.4 )
 RDEPEND="tcl? ( dev-lang/tcl )
 	java? ( >=virtual/jre-1.4 )"
 
+PATCHES=(
+	"${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch
+
+	# use the includes from the prefix
+	"${FILESDIR}"/"${PN}"-"${SLOT}"-jni-check-prefix-first.patch
+	"${FILESDIR}"/"${PN}"-"${SLOT}"-listen-to-java-options.patch
+
+	"${FILESDIR}"/"${PN}"-4.3.27-fix-dep-link.patch
+)
+
+# Required to avoid unpack attempt of patches
 src_unpack() {
 	unpack "${MY_P}".tar.gz
-	cd "${WORKDIR}"/"${MY_P}"
+}
+
+src_prepare() {
+	pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die
 	for (( i=1 ; i<=${PATCHNO} ; i++ ))
 	do
-		epatch "${DISTDIR}"/patch."${MY_PV}"."${i}"
+		eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}"
 	done
-	epatch "${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch
-
-	# use the includes from the prefix
-	epatch "${FILESDIR}"/"${PN}"-"${SLOT}"-jni-check-prefix-first.patch
-	epatch "${FILESDIR}"/"${PN}"-"${SLOT}"-listen-to-java-options.patch
 
-	epatch "${FILESDIR}"/"${PN}"-4.3.27-fix-dep-link.patch
+	default
 
-	sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" -i dist/RELEASE
+	sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \
+		-i dist/RELEASE || die
 
 	# Include the SLOT for Java JAR files
 	# This supersedes the unused jarlocation patches.
-	sed -r -i \
+	sed -r \
 		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
-		"${S}"/../dist/Makefile.in
+		dist/Makefile.in || die
 
 	# START of 4.5+earlier specific
 	# Upstream sucks, they normally concat these
-	cd "${S}"/../dist/aclocal
-	for i in *; do ln -s $i ${i%.ac}.m4 ; done ;
-	cd "${S}"/../dist/aclocal_java
-	for i in *; do ln -s $i ${i%.ac}.m4 ; done ;
+	local i j
+	for j in dist/aclocal{,_java} ; do
+		pushd ${j} &>/dev/null || die
+		for i in * ; do
+			ln -s ${i} ${i%.ac}.m4 || die
+		done
+		popd &>/dev/null || die
+	done
 	# END of 4.5+earlier specific
-	cd "${S}"/../dist
-	rm -f aclocal/libtool.{m4,ac} aclocal.m4
-	sed -i \
+
+	pushd dist &>/dev/null || die
+	rm aclocal/libtool.{m4,ac} || die
+	sed \
 		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
-		configure.ac
-	sed -i \
+		-i configure.ac || die
+	sed \
 		-e '/^AC_PATH_TOOL/s/ sh, missing_sh/ bash, missing_sh/' \
-		aclocal/programs.m4
+		-i aclocal/programs.m4 || die
+
 	AT_M4DIR="aclocal aclocal_java" eautoreconf
+
 	# Upstream sucks - they do autoconf and THEN replace the version variables.
 	. ./RELEASE
-	sed -i \
+	sed \
 		-e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \
 		-e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \
 		-e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \
 		-e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \
 		-e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \
-		-e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" configure
+		-e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \
+		-i configure || die
+	popd &>/dev/null || die
+	popd &>/dev/null || die
 }
 
-src_compile() {
-	local myconf=""
+src_configure() {
+	local myconf=(
+		--prefix="${EPREFIX}"/usr
+		--mandir="${EPREFIX}"/usr/share/man
+		--infodir="${EPREFIX}"/usr/share/info
+		--datadir="${EPREFIX}"/usr/share
+		--sysconfdir="${EPREFIX}"/etc
+		--localstatedir="${EPREFIX}"/var/lib
+		--libdir="${EPREFIX}"/usr/"$(get_libdir)"
+		--enable-compat185
+		--enable-o_direct
+		--without-uniquename
+		$(use_enable rpc)
+		--host="${CHOST}"
+
+		$(usex amd64 '--with-mutex=x86/gcc-assembly' '')
+		$(use_enable cxx)
+		$(use_enable tcl)
+		$(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #"
+		$(use_enable java)
+	)
 
-	use amd64 && myconf="${myconf} --with-mutex=x86/gcc-assembly"
-
-	myconf="${myconf} $(use_enable cxx)"
-
-	use tcl \
-		&& myconf="${myconf} --enable-tcl --with-tcl=${EPREFIX}/usr/$(get_libdir)" \
-		|| myconf="${myconf} --disable-tcl"
-
-	myconf="${myconf} $(use_enable java)"
 	if use java; then
-		myconf="${myconf} --with-java-prefix=${JAVA_HOME}"
-		# Can't get this working any other way, since it returns spaces, and
-		# bash doesn't seem to want to pass correctly in any way i try
-		local javaconf="-with-javac-flags=$(java-pkg_javac-args)"
+		myconf+=(
+			--with-java-prefix="${JAVA_HOME}"
+			--with-javac-flags="$(java-pkg_javac-args)"
+		)
 	fi
 
-	[[ -n ${CBUILD} ]] && myconf="${myconf} --build=${CBUILD}"
+	[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
 
 	# the entire testsuite needs the TCL functionality
 	if use tcl && use test ; then
-		myconf="${myconf} --enable-test"
+		myconf+=( --enable-test )
 	else
-		myconf="${myconf} --disable-test"
+		myconf+=( --disable-test )
 	fi
 
 	# Add linker versions to the symbols. Easier to do, and safer than header
@@ -120,26 +150,16 @@ src_compile() {
 		append-ldflags -Wl,--default-symver
 	fi
 
-	cd "${S}" && ECONF_SOURCE="${S}"/../dist econf \
-		--prefix="${EPREFIX}"/usr \
-		--mandir="${EPREFIX}"/usr/share/man \
-		--infodir="${EPREFIX}"/usr/share/info \
-		--datadir="${EPREFIX}"/usr/share \
-		--sysconfdir="${EPREFIX}"/etc \
-		--localstatedir="${EPREFIX}"/var/lib \
-		--libdir="${EPREFIX}"/usr/"$(get_libdir)" \
-		--enable-compat185 \
-		--enable-o_direct \
-		--without-uniquename \
-		$(use_enable rpc) \
-		--host="${CHOST}" \
-		${myconf}  "${javaconf}" || die "configure failed"
-
-	emake || die "make failed"
+	ECONF_SOURCE="${S}"/../dist \
+	econf "${myconf[@]}"
 }
 
 src_install() {
-	einstall libdir="${ED}/usr/$(get_libdir)" strip="${ED}/bin/strip" || die
+	emake \
+		DESTDIR="${D}" \
+		libdir="${EPREFIX}/usr/$(get_libdir)" \
+		strip="${EPREFIX}/bin/strip" \
+		install
 
 	db_src_install_usrbinslot
 
@@ -151,8 +171,10 @@ src_install() {
 
 	dodir /usr/sbin
 	# This file is not always built, and no longer exists as of db-4.8
-	[[ -f "${ED}"/usr/bin/berkeley_db_svc ]] && \
-	mv "${ED}"/usr/bin/berkeley_db_svc "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc
+	if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED}"/usr/bin/berkeley_db_svc \
+			"${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
 
 	if use java; then
 		java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so

diff --git a/sys-libs/db/db-4.4.20_p4-r1.ebuild b/sys-libs/db/db-4.4.20_p4-r2.ebuild
similarity index 53%
rename from sys-libs/db/db-4.4.20_p4-r1.ebuild
rename to sys-libs/db/db-4.4.20_p4-r2.ebuild
index 05a30a45245..441402e080c 100644
--- a/sys-libs/db/db-4.4.20_p4-r1.ebuild
+++ b/sys-libs/db/db-4.4.20_p4-r2.ebuild
@@ -1,20 +1,20 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=0
+EAPI=7
 
-inherit eutils db flag-o-matic java-pkg-opt-2 autotools multilib
+inherit autotools db flag-o-matic java-pkg-opt-2 multilib
 
 #Number of official patches
 #PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"`
-PATCHNO=${PV/*.*.*_p}
+PATCHNO="${PV/*.*.*_p}"
 if [[ ${PATCHNO} == "${PV}" ]] ; then
-	MY_PV=${PV}
-	MY_P=${P}
+	MY_PV="${PV}"
+	MY_P="${P}"
 	PATCHNO=0
 else
-	MY_PV=${PV/_p${PATCHNO}}
-	MY_P=${PN}-${MY_PV}
+	MY_PV="${PV/_p${PATCHNO}}"
+	MY_P="${PN}-${MY_PV}"
 fi
 
 S="${WORKDIR}/${MY_P}/build_unix"
@@ -37,75 +37,105 @@ DEPEND="tcl? ( >=dev-lang/tcl-8.4 )
 RDEPEND="tcl? ( dev-lang/tcl )
 	java? ( >=virtual/jre-1.4 )"
 
+PATCHES=(
+	"${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch
+
+	# use the includes from the prefix
+	"${FILESDIR}"/"${PN}"-4.3-jni-check-prefix-first.patch
+	"${FILESDIR}"/"${PN}"-4.3-listen-to-java-options.patch
+)
+
+# Required to avoid unpack attempt of patches
 src_unpack() {
 	unpack "${MY_P}".tar.gz
 	unpack "${MY_P}-20060110-rpc_server-java".tar.gz
-	cd "${WORKDIR}"/"${MY_P}"
+}
+
+src_prepare() {
+	pushd "${WORKDIR}"/"${MY_P}" &>/dev/null || die
 	for (( i=1 ; i<=${PATCHNO} ; i++ ))
 	do
-		epatch "${DISTDIR}"/patch."${MY_PV}"."${i}"
+		eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}"
 	done
-	epatch "${FILESDIR}"/"${PN}"-"${SLOT}"-libtool.patch
 
-	# use the includes from the prefix
-	epatch "${FILESDIR}"/"${PN}"-4.3-jni-check-prefix-first.patch
-	epatch "${FILESDIR}"/"${PN}"-4.3-listen-to-java-options.patch
+	default
 
-	sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" -i dist/RELEASE
+	sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" \
+		-i dist/RELEASE || die
 
 	# Include the SLOT for Java JAR files
 	# This supersedes the unused jarlocation patches.
-	sed -r -i \
+	sed -r \
 		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
-		"${S}"/../dist/Makefile.in
+		-i dist/Makefile.in || die
 
 	# START of 4.5+earlier specific
 	# Upstream sucks, they normally concat these
-	cd "${S}"/../dist/aclocal
-	for i in *; do ln -s $i ${i%.ac}.m4 ; done ;
-	cd "${S}"/../dist/aclocal_java
-	for i in *; do ln -s $i ${i%.ac}.m4 ; done ;
+	local i j
+	for j in dist/aclocal{,_java} ; do
+		pushd ${j} &>/dev/null || die
+		for i in * ; do
+			ln -s ${i} ${i%.ac}.m4 || die
+		done
+		popd &>/dev/null || die
+	done
 	# END of 4.5+earlier specific
-	cd "${S}"/../dist
-	rm -f aclocal/libtool.{m4,ac} aclocal.m4
+	pushd dist &>/dev/null || die
+	rm -f aclocal/libtool.{m4,ac} || die
+
 	AT_M4DIR="aclocal aclocal_java" eautoreconf
+
 	# Upstream sucks - they do autoconf and THEN replace the version variables.
 	. ./RELEASE
-	sed -i \
+	sed \
 		-e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \
 		-e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \
 		-e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \
 		-e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \
 		-e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \
-		-e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" configure
-}
-
-src_compile() {
-	local myconf=""
+		-e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \
+		-i configure || die
 
-	use amd64 && myconf="${myconf} --with-mutex=x86/gcc-assembly"
-
-	myconf="${myconf} $(use_enable cxx)"
+	popd &>/dev/null || die
+	popd &>/dev/null || die
+}
 
-	use tcl \
-		&& myconf="${myconf} --enable-tcl --with-tcl=${EPREFIX}/usr/$(get_libdir)" \
-		|| myconf="${myconf} --disable-tcl"
+src_configure() {
+	local myconf=(
+		--prefix="${EPREFIX}"/usr
+		--mandir="${EPREFIX}"/usr/share/man
+		--infodir="${EPREFIX}"/usr/share/info
+		--datadir="${EPREFIX}"/usr/share
+		--sysconfdir="${EPREFIX}"/etc
+		--localstatedir="${EPREFIX}"/var/lib
+		--libdir="${EPREFIX}"/usr/"$(get_libdir)"
+		--enable-compat185
+		--enable-o_direct
+		--without-uniquename
+		$(use_enable rpc)
+		--host="${CHOST}"
+
+		$(usex amd64 '--with-mutex=x86/gcc-assembly' '')
+		$(use_enable cxx)
+		$(use_enable tcl)
+		$(usex tcl "--with-tcl=${EPREFIX}/usr/$(get_libdir)" '') #"
+		$(use_enable java)
+	)
 
-	myconf="${myconf} $(use_enable java)"
 	if use java; then
-		myconf="${myconf} --with-java-prefix=${JAVA_HOME}"
-		# Can't get this working any other way, since it returns spaces, and
-		# bash doesn't seem to want to pass correctly in any way i try
-		local javaconf="-with-javac-flags=$(java-pkg_javac-args)"
+		myconf+=(
+			--with-java-prefix="${JAVA_HOME}"
+			--with-javac-flags="$(java-pkg_javac-args)"
+		)
 	fi
 
-	[[ -n ${CBUILD} ]] && myconf="${myconf} --build=${CBUILD}"
+	[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
 
 	# the entire testsuite needs the TCL functionality
 	if use tcl && use test ; then
-		myconf="${myconf} --enable-test"
+		myconf+=( --enable-test )
 	else
-		myconf="${myconf} --disable-test"
+		myconf+=( --disable-test )
 	fi
 
 	# Add linker versions to the symbols. Easier to do, and safer than header file
@@ -114,26 +144,16 @@ src_compile() {
 		append-ldflags -Wl,--default-symver
 	fi
 
-	cd "${S}" && ECONF_SOURCE="${S}"/../dist econf \
-		--prefix="${EPREFIX}"/usr \
-		--mandir="${EPREFIX}"/usr/share/man \
-		--infodir="${EPREFIX}"/usr/share/info \
-		--datadir="${EPREFIX}"/usr/share \
-		--sysconfdir="${EPREFIX}"/etc \
-		--localstatedir="${EPREFIX}"/var/lib \
-		--libdir="${EPREFIX}"/usr/"$(get_libdir)" \
-		--enable-compat185 \
-		--enable-o_direct \
-		--without-uniquename \
-		$(use_enable rpc) \
-		--host="${CHOST}" \
-		${myconf}  "${javaconf}" || die "configure failed"
-
-	emake -j1 || die "make failed"
+	ECONF_SOURCE="${S}"/../dist \
+	econf "${myconf[@]}"
 }
 
 src_install() {
-	einstall libdir="${ED}/usr/$(get_libdir)" strip="${ED}/bin/strip" || die
+	emake \
+		DESTDIR="${D}" \
+		libdir="${EPREFIX}/usr/$(get_libdir)" \
+		strip="${EPREFIX}/bin/strip" \
+		install
 
 	db_src_install_usrbinslot
 
@@ -145,8 +165,10 @@ src_install() {
 
 	dodir /usr/sbin
 	# This file is not always built, and no longer exists as of db-4.8
-	[[ -f "${ED}"/usr/bin/berkeley_db_svc ]] && \
-	mv "${ED}"/usr/bin/berkeley_db_svc "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc
+	if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED}"/usr/bin/berkeley_db_svc \
+			"${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
 
 	if use java; then
 		java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so

diff --git a/sys-libs/db/files/db-1.85-gentoo-paths.patch b/sys-libs/db/files/db-1.85-gentoo-paths.patch
index 4a65106bdc7..8154300f67b 100644
--- a/sys-libs/db/files/db-1.85-gentoo-paths.patch
+++ b/sys-libs/db/files/db-1.85-gentoo-paths.patch
@@ -1,5 +1,5 @@
---- PORT/linux/Makefile
-+++ PORT/linux/Makefile
+--- a/PORT/linux/Makefile
++++ b/PORT/linux/Makefile
 @@ -1,12 +1,12 @@
  #	@(#)Makefile	8.9 (Berkeley) 7/14/94
  

diff --git a/sys-libs/db/files/db-3.2.9-gcc43.patch b/sys-libs/db/files/db-3.2.9-gcc43.patch
index f032da85296..17bdddf3d8d 100644
--- a/sys-libs/db/files/db-3.2.9-gcc43.patch
+++ b/sys-libs/db/files/db-3.2.9-gcc43.patch
@@ -5,7 +5,7 @@ diff -Nuar db-3.2.9.orig/include/db_cxx.h db-3.2.9/include/db_cxx.h
  // Forward declarations
  //
  
-+#if defined(__GNUC__) && (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)
++#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
 +using namespace std;
 +#include <iostream>
 +#else

diff --git a/sys-libs/db/files/db-4.2-jni-check-prefix-first.patch b/sys-libs/db/files/db-4.2-jni-check-prefix-first.patch
index 17f80e1bcfe..0777c706d0b 100644
--- a/sys-libs/db/files/db-4.2-jni-check-prefix-first.patch
+++ b/sys-libs/db/files/db-4.2-jni-check-prefix-first.patch
@@ -1,5 +1,5 @@
---- dist/aclocal_java/ac_jni_include_dirs.ac	2003-10-06 20:41:38.000000000 +0200
-+++ dist/aclocal_java/ac_jni_include_dirs.ac	2005-09-23 21:31:26.000000000 +0200
+--- a/dist/aclocal_java/ac_jni_include_dirs.ac
++++ b/dist/aclocal_java/ac_jni_include_dirs.ac
 @@ -43,14 +43,19 @@
  *)	AC_MSG_ERROR([$_ACJNI_JAVAC is not an absolute path name]);;
  esac

diff --git a/sys-libs/db/files/db-4.2-listen-to-java-options.patch b/sys-libs/db/files/db-4.2-listen-to-java-options.patch
index 8ddb46b7026..f1f701de126 100644
--- a/sys-libs/db/files/db-4.2-listen-to-java-options.patch
+++ b/sys-libs/db/files/db-4.2-listen-to-java-options.patch
@@ -1,5 +1,5 @@
---- dist/configure.ac	2005-09-23 21:01:26.000000000 +0200
-+++ dist/configure.ac	2005-09-23 20:59:20.000000000 +0200
+--- a/dist/configure.ac
++++ b/dist/configure.ac
 @@ -385,6 +385,7 @@
          # A classpath that includes . is needed to check for Java
  	CLASSPATH=".:$CLASSPATH"

diff --git a/sys-libs/db/files/db-4.2.52_p2-TXN.patch b/sys-libs/db/files/db-4.2.52_p2-TXN.patch
index 7ff8874c0ca..a9ca9ef132f 100644
--- a/sys-libs/db/files/db-4.2.52_p2-TXN.patch
+++ b/sys-libs/db/files/db-4.2.52_p2-TXN.patch
@@ -21,8 +21,8 @@ RCS file: /var/CVSROOT/bdb42/dbinc/db.in,v
 retrieving revision 1.1.1.1
 retrieving revision 1.2
 diff -u -r1.1.1.1 -r1.2
---- dbinc/db.in	25 Nov 2003 21:58:02 -0000	1.1.1.1
-+++ dbinc/db.in	17 Jul 2004 16:07:23 -0000	1.2
+--- a/dbinc/db.in	25 Nov 2003 21:58:02 -0000	1.1.1.1
++++ b/dbinc/db.in	17 Jul 2004 16:07:23 -0000	1.2
 @@ -839,6 +839,7 @@
  #define	TXN_NOWAIT	0x040		/* Do not wait on locks. */
  #define	TXN_RESTORED	0x080		/* Transaction has been restored. */
@@ -37,8 +37,8 @@ RCS file: /var/CVSROOT/bdb42/txn/txn.c,v
 retrieving revision 1.1.1.2
 retrieving revision 1.2
 diff -u -r1.1.1.2 -r1.2
---- txn/txn.c	17 Dec 2003 21:43:53 -0000	1.1.1.2
-+++ txn/txn.c	17 Jul 2004 16:07:27 -0000	1.2
+--- a/txn/txn.c	17 Dec 2003 21:43:53 -0000	1.1.1.2
++++ b/txn/txn.c	17 Jul 2004 16:07:27 -0000	1.2
 @@ -127,7 +127,7 @@
  	if ((ret = __db_fchk(dbenv,
  	    "txn_begin", flags,

diff --git a/sys-libs/db/files/db-4.3-jni-check-prefix-first.patch b/sys-libs/db/files/db-4.3-jni-check-prefix-first.patch
index 17f80e1bcfe..0777c706d0b 100644
--- a/sys-libs/db/files/db-4.3-jni-check-prefix-first.patch
+++ b/sys-libs/db/files/db-4.3-jni-check-prefix-first.patch
@@ -1,5 +1,5 @@
---- dist/aclocal_java/ac_jni_include_dirs.ac	2003-10-06 20:41:38.000000000 +0200
-+++ dist/aclocal_java/ac_jni_include_dirs.ac	2005-09-23 21:31:26.000000000 +0200
+--- a/dist/aclocal_java/ac_jni_include_dirs.ac
++++ b/dist/aclocal_java/ac_jni_include_dirs.ac
 @@ -43,14 +43,19 @@
  *)	AC_MSG_ERROR([$_ACJNI_JAVAC is not an absolute path name]);;
  esac

diff --git a/sys-libs/db/files/db-4.3-libtool.patch b/sys-libs/db/files/db-4.3-libtool.patch
index 426fd519f71..c594f73c748 100644
--- a/sys-libs/db/files/db-4.3-libtool.patch
+++ b/sys-libs/db/files/db-4.3-libtool.patch
@@ -1,5 +1,5 @@
---- dist/configure.orig	2005-02-02 11:22:49.596096072 +0100
-+++ dist/configure	2005-02-02 11:23:46.749407448 +0100
+--- a/dist/configure
++++ b/dist/configure
 @@ -5684,7 +5684,7 @@
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else

diff --git a/sys-libs/db/files/db-4.4-libtool.patch b/sys-libs/db/files/db-4.4-libtool.patch
index 3d86b88f86b..b4d2fc8d73c 100644
--- a/sys-libs/db/files/db-4.4-libtool.patch
+++ b/sys-libs/db/files/db-4.4-libtool.patch
@@ -1,5 +1,5 @@
---- dist/configure.orig	2006-01-31 10:23:58.000000000 +0100
-+++ dist/configure	2006-01-31 10:26:43.000000000 +0100
+--- a/dist/configure
++++ b/dist/configure
 @@ -5765,7 +5765,7 @@
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/db/, sys-libs/db/files/
@ 2019-11-07 23:23 Lars Wendler
  0 siblings, 0 replies; 10+ messages in thread
From: Lars Wendler @ 2019-11-07 23:23 UTC (permalink / raw
  To: gentoo-commits

commit:     3fda85d3fef1fad04e37c214446cc1b759659ee2
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Thu Nov  7 23:21:09 2019 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Thu Nov  7 23:23:29 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3fda85d3

sys-libs/db: Another batch of EAPI-7 revbumps

Fixed whitespace issue from previous EAPI-7 revbump

Closes: https://bugs.gentoo.org/655302
Package-Manager: Portage-2.3.78, Repoman-2.3.17
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 sys-libs/db/db-3.2.9_p2-r1.ebuild                  |   2 +-
 .../{db-4.8.30-r2.ebuild => db-4.8.30-r3.ebuild}   |  83 ++++++------
 .../{db-5.1.29-r1.ebuild => db-5.1.29-r2.ebuild}   | 142 +++++++++++----------
 .../{db-5.3.28-r3.ebuild => db-5.3.28-r4.ebuild}   | 133 ++++++++++---------
 .../{db-6.0.35-r1.ebuild => db-6.0.35-r2.ebuild}   | 124 +++++++++---------
 sys-libs/db/files/db-4.8-libtool.patch             |   4 +-
 6 files changed, 260 insertions(+), 228 deletions(-)

diff --git a/sys-libs/db/db-3.2.9_p2-r1.ebuild b/sys-libs/db/db-3.2.9_p2-r1.ebuild
index a575baafe1c..5385f48b606 100644
--- a/sys-libs/db/db-3.2.9_p2-r1.ebuild
+++ b/sys-libs/db/db-3.2.9_p2-r1.ebuild
@@ -131,7 +131,7 @@ src_compile() {
 	pushd "${S}"/build-static &>/dev/null || die
 	emake strip="${EPREFIX}"/bin/true
 	popd &>/dev/null || die
-	
+
 	einfo "Building ${P} (shared)..."
 	pushd build-shared &>/dev/null || die
 	emake strip="${EPREFIX}"/bin/true

diff --git a/sys-libs/db/db-4.8.30-r2.ebuild b/sys-libs/db/db-4.8.30-r3.ebuild
similarity index 80%
rename from sys-libs/db/db-4.8.30-r2.ebuild
rename to sys-libs/db/db-4.8.30-r3.ebuild
index 23c18500065..8479c2a10fb 100644
--- a/sys-libs/db/db-4.8.30-r2.ebuild
+++ b/sys-libs/db/db-4.8.30-r3.ebuild
@@ -1,20 +1,20 @@
 # Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=5
+EAPI=7
 
-inherit eutils db flag-o-matic java-pkg-opt-2 autotools multilib multilib-minimal toolchain-funcs
+inherit autotools db flag-o-matic java-pkg-opt-2 multilib multilib-minimal toolchain-funcs
 
 #Number of official patches
 #PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"`
-PATCHNO=${PV/*.*.*_p}
+PATCHNO="${PV/*.*.*_p}"
 if [[ ${PATCHNO} == "${PV}" ]] ; then
-	MY_PV=${PV}
-	MY_P=${P}
+	MY_PV="${PV}"
+	MY_P="${P}"
 	PATCHNO=0
 else
-	MY_PV=${PV/_p${PATCHNO}}
-	MY_P=${PN}-${MY_PV}
+	MY_PV="${PV/_p${PATCHNO}}"
+	MY_P="${PN}-${MY_PV}"
 fi
 
 S="${WORKDIR}/${MY_P}/build_unix"
@@ -26,7 +26,7 @@ for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do
 done
 
 LICENSE="Sleepycat"
-SLOT="4.8"
+SLOT="$(ver_cut 1-2)"
 KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
 IUSE="doc java cxx tcl test"
 
@@ -40,51 +40,68 @@ DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
 RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
 	java? ( >=virtual/jre-1.5 )"
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-4.8-libtool.patch
+	"${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
+	"${FILESDIR}"/${PN}-4.8.30-rename-atomic-compare-exchange.patch
+
+	# use the includes from the prefix
+	"${FILESDIR}"/${PN}-4.6-jni-check-prefix-first.patch
+	"${FILESDIR}"/${PN}-4.3-listen-to-java-options.patch
+)
+
 src_prepare() {
 	cd "${WORKDIR}"/"${MY_P}" || die
 	for (( i=1 ; i<=${PATCHNO} ; i++ ))
 	do
-		epatch "${DISTDIR}"/patch."${MY_PV}"."${i}"
+		eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}"
 	done
-	epatch "${FILESDIR}"/${PN}-4.8-libtool.patch
-	epatch "${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
-	epatch "${FILESDIR}"/${PN}-4.8.30-rename-atomic-compare-exchange.patch
 
-	# use the includes from the prefix
-	epatch "${FILESDIR}"/${PN}-4.6-jni-check-prefix-first.patch
-	epatch "${FILESDIR}"/${PN}-4.3-listen-to-java-options.patch
+	default
 
 	sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" -i dist/RELEASE \
 		|| die
 
 	# Include the SLOT for Java JAR files
 	# This supersedes the unused jarlocation patches.
-	sed -r -i \
+	sed -r \
 		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
-		"${S}"/../dist/Makefile.in || die
+		-i dist/Makefile.in || die
 
-	cd "${S}"/../dist || die
-	rm -f aclocal/libtool.m4
-	sed -i \
+	cd dist || die
+	rm aclocal/libtool.m4 || die
+	sed \
 		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
-		configure.ac || die
-	sed -i \
+		-i configure.ac || die
+	sed \
 		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
-		aclocal/programs.m4 || die
+		-i aclocal/programs.m4 || die
+
 	AT_M4DIR="aclocal aclocal_java" eautoreconf
+
 	# Upstream sucks - they do autoconf and THEN replace the version variables.
 	. ./RELEASE
-	sed -i \
+	sed \
 		-e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \
 		-e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \
 		-e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \
 		-e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \
 		-e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \
-		-e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" configure || die
+		-e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \
+		-i configure || die
 }
 
 multilib_src_configure() {
-	local myconf=()
+	local myconf=(
+		--enable-compat185
+		--enable-o_direct
+		--without-uniquename
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly)
+		$(use_enable cxx)
+		$(use_enable cxx stl)
+		$(multilib_native_use_enable java)
+		$(use_enable test)
+	)
 
 	tc-ld-disable-gold #470634
 
@@ -121,16 +138,8 @@ multilib_src_configure() {
 
 	ECONF_SOURCE="${S}"/../dist \
 	STRIP="true" \
-	econf \
-		--enable-compat185 \
-		--enable-o_direct \
-		--without-uniquename \
-		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly) \
-		$(use_enable cxx) \
-		$(use_enable cxx stl) \
-		$(multilib_native_use_enable java) \
-		"${myconf[@]}" \
-		$(use_enable test)
+	econf "${myconf[@]}"
+
 	# The embedded assembly on ARM does not work on newer hardware
 	# so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
 	# Specifically, it uses the SWPB op, which was deprecated:
@@ -143,7 +152,7 @@ multilib_src_configure() {
 multilib_src_test() {
 	multilib_is_native_abi || return
 
-	S=${BUILD_DIR} db_src_test
+	S="${BUILD_DIR}" db_src_test
 }
 
 multilib_src_install() {

diff --git a/sys-libs/db/db-5.1.29-r1.ebuild b/sys-libs/db/db-5.1.29-r2.ebuild
similarity index 69%
rename from sys-libs/db/db-5.1.29-r1.ebuild
rename to sys-libs/db/db-5.1.29-r2.ebuild
index 82fda831643..54548984ba6 100644
--- a/sys-libs/db/db-5.1.29-r1.ebuild
+++ b/sys-libs/db/db-5.1.29-r2.ebuild
@@ -1,19 +1,19 @@
 # Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=5
-inherit eutils db flag-o-matic java-pkg-opt-2 autotools multilib toolchain-funcs
+EAPI=7
+inherit autotools db flag-o-matic java-pkg-opt-2 multilib toolchain-funcs
 
 #Number of official patches
 #PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"`
-PATCHNO=${PV/*.*.*_p}
+PATCHNO="${PV/*.*.*_p}"
 if [[ ${PATCHNO} == "${PV}" ]] ; then
-	MY_PV=${PV}
-	MY_P=${P}
+	MY_PV="${PV}"
+	MY_P="${P}"
 	PATCHNO=0
 else
-	MY_PV=${PV/_p${PATCHNO}}
-	MY_P=${PN}-${MY_PV}
+	MY_PV="${PV/_p${PATCHNO}}"
+	MY_P="${PN}-${MY_PV}"
 fi
 
 S_BASE="${WORKDIR}/${MY_P}"
@@ -26,7 +26,7 @@ for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do
 done
 
 LICENSE="Sleepycat"
-SLOT="5.1"
+SLOT="$(ver_cut 1-2)"
 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
 IUSE="doc java cxx tcl test"
 
@@ -40,70 +40,91 @@ DEPEND="tcl? ( >=dev-lang/tcl-8.4:0 )
 RDEPEND="tcl? ( dev-lang/tcl:0 )
 	java? ( >=virtual/jre-1.5 )"
 
-src_prepare() {
-	cd "${WORKDIR}"/"${MY_P}"
-	for (( i=1 ; i<=${PATCHNO} ; i++ ))
-	do
-		epatch "${DISTDIR}"/patch."${MY_PV}"."${i}"
-	done
-	epatch "${FILESDIR}"/${PN}-4.8-libtool.patch
-	epatch "${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
+PATCHES=(
+	"${FILESDIR}"/${PN}-4.8-libtool.patch
+	"${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
 
 	# use the includes from the prefix
-	epatch "${FILESDIR}"/${PN}-4.6-jni-check-prefix-first.patch
-	epatch "${FILESDIR}"/${PN}-4.3-listen-to-java-options.patch
+	"${FILESDIR}"/${PN}-4.6-jni-check-prefix-first.patch
+	"${FILESDIR}"/${PN}-4.3-listen-to-java-options.patch
 
 	# upstream autoconf fails to build DBM when it's supposed to
 	# merged upstream in 5.0.26
-	#epatch "${FILESDIR}"/${PN}-5.0.21-enable-dbm-autoconf.patch
+	#"${FILESDIR}"/${PN}-5.0.21-enable-dbm-autoconf.patch
 
 	# Needed when compiling with clang
-	epatch "${FILESDIR}"/${P}-rename-atomic-compare-exchange.patch
+	"${FILESDIR}"/${P}-rename-atomic-compare-exchange.patch
+)
+
+src_prepare() {
+	cd "${S_BASE}" || die
+	for (( i=1 ; i<=${PATCHNO} ; i++ ))
+	do
+		eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	default
 
 	# Upstream release script grabs the dates when the script was run, so lets
 	# end-run them to keep the date the same.
 	export REAL_DB_RELEASE_DATE="$(awk \
 		'/^DB_VERSION_STRING=/{ gsub(".*\\(|\\).*","",$0); print $0; }' \
 		"${S_BASE}"/dist/configure)"
-	sed -r -i \
+	sed -r \
 		-e "/^DB_RELEASE_DATE=/s~=.*~='${REAL_DB_RELEASE_DATE}'~g" \
-		"${S_BASE}"/dist/RELEASE
+		-i dist/RELEASE || die
 
 	# Include the SLOT for Java JAR files
 	# This supersedes the unused jarlocation patches.
-	sed -r -i \
+	sed -r \
 		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
-		"${S_BASE}"/dist/Makefile.in
+		-i dist/Makefile.in || die
 
-	cd "${S_BASE}"/dist
-	rm -f aclocal/libtool.m4
-	sed -i \
+	cd dist || die
+	rm aclocal/libtool.m4 || die
+	sed \
 		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
-		configure.ac
-	sed -i \
+		-i configure.ac || die
+	sed \
 		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
-		aclocal/programs.m4
+		-i aclocal/programs.m4 || die
+
 	AT_M4DIR="aclocal aclocal_java" eautoreconf
+
 	# Upstream sucks - they do autoconf and THEN replace the version variables.
 	. ./RELEASE
+	local v ev
 	for v in \
 		DB_VERSION_{FAMILY,LETTER,RELEASE,MAJOR,MINOR} \
 		DB_VERSION_{PATCH,FULL,UNIQUE_NAME,STRING,FULL_STRING} \
 		DB_VERSION \
 		DB_RELEASE_DATE ; do
-		local ev="__EDIT_${v}__"
-		sed -i -e "s/${ev}/${!v}/g" configure
+		ev="__EDIT_${v}__"
+		sed -e "s/${ev}/${!v}/g" -i configure || die
 	done
 
 	# This is a false positive skip in the tests as the test-reviewer code
 	# looks for 'Skipping\s'
-	sed -i \
+	sed \
 		-e '/db_repsite/s,Skipping:,Skipping,g' \
-		"${S_BASE}"/test/tcl/reputils.tcl || die
+		-i "${S_BASE}"/test/tcl/reputils.tcl || die
 }
 
 src_configure() {
-	local myconf=''
+	local myconf=(
+		--enable-compat185
+		--enable-dbm
+		--enable-o_direct
+		--without-uniquename
+		--enable-sql
+		--enable-sql_codegen
+		--disable-sql_compat
+		$(use amd64 && echo --with-mutex=x86/gcc-assembly)
+		$(use_enable cxx)
+		$(use_enable cxx stl)
+		$(use_enable java)
+		$(use_enable test)
+	)
 
 	tc-ld-disable-gold #470634
 
@@ -113,12 +134,11 @@ src_configure() {
 		is-flagq -O[s123] || append-flags -O2
 	fi
 
-	# use `set` here since the java opts will contain whitespace
-	set --
 	if use java ; then
-		set -- "$@" \
-			--with-java-prefix="${JAVA_HOME}" \
+		myconf+=(
+			--with-java-prefix="${JAVA_HOME}"
 			--with-javac-flags="$(java-pkg_javac-args)"
+		)
 	fi
 
 	# Add linker versions to the symbols. Easier to do, and safer than header file
@@ -129,32 +149,22 @@ src_configure() {
 
 	# Bug #270851: test needs TCL support
 	if use tcl || use test ; then
-		myconf="${myconf} --enable-tcl"
-		myconf="${myconf} --with-tcl=${EPREFIX}/usr/$(get_libdir)"
+		myconf+=(
+			--enable-tcl
+			--with-tcl="${EPREFIX}/usr/$(get_libdir)"
+		)
 	else
-		myconf="${myconf} --disable-tcl"
+		myconf+=( --disable-tcl )
 	fi
 
 	# sql_compat will cause a collision with sqlite3
 	# --enable-sql_compat
-	cd "${S}"
+	cd "${S}" || die
+
 	ECONF_SOURCE="${S_BASE}"/dist \
 	STRIP="true" \
-	econf \
-		--enable-compat185 \
-		--enable-dbm \
-		--enable-o_direct \
-		--without-uniquename \
-		--enable-sql \
-		--enable-sql_codegen \
-		--disable-sql_compat \
-		$(use amd64 && echo --with-mutex=x86/gcc-assembly) \
-		$(use_enable cxx) \
-		$(use_enable cxx stl) \
-		$(use_enable java) \
-		${myconf} \
-		$(use_enable test) \
-		"$@"
+	econf "${myconf[@]}"
+
 	# The embedded assembly on ARM does not work on newer hardware
 	# so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
 	# Specifically, it uses the SWPB op, which was deprecated:
@@ -164,12 +174,8 @@ src_configure() {
 	# >=db-6.1 uses LDREX instead.
 }
 
-src_compile() {
-	emake || die "make failed"
-}
-
 src_install() {
-	emake install DESTDIR="${D}" || die
+	emake DESTDIR="${D}" install
 
 	db_src_install_usrbinslot
 
@@ -181,8 +187,10 @@ src_install() {
 
 	dodir /usr/sbin
 	# This file is not always built, and no longer exists as of db-4.8
-	[[ -f "${ED}"/usr/bin/berkeley_db_svc ]] && \
-	mv "${ED}"/usr/bin/berkeley_db_svc "${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc
+	if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED}"/usr/bin/berkeley_db_svc \
+			"${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
 
 	if use java; then
 		java-pkg_regso "${ED}"/usr/"$(get_libdir)"/libdb_java*.so
@@ -207,9 +215,9 @@ src_test() {
 	#sed -ri \
 	#	-e '/set subs/s,multi_repmgr,,g' \
 	#	"${S_BASE}/test/testparams.tcl"
-	sed -ri \
+	sed -r \
 		-e '/multi_repmgr/d' \
-		"${S_BASE}/test/tcl/test.tcl"
+		-i "${S_BASE}/test/tcl/test.tcl" || die
 
 	db_src_test
 }

diff --git a/sys-libs/db/db-5.3.28-r3.ebuild b/sys-libs/db/db-5.3.28-r4.ebuild
similarity index 75%
rename from sys-libs/db/db-5.3.28-r3.ebuild
rename to sys-libs/db/db-5.3.28-r4.ebuild
index 3c5e2102717..db5f8b8a8c0 100644
--- a/sys-libs/db/db-5.3.28-r3.ebuild
+++ b/sys-libs/db/db-5.3.28-r4.ebuild
@@ -1,19 +1,19 @@
 # Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=5
-inherit eutils db flag-o-matic java-pkg-opt-2 autotools multilib multilib-minimal toolchain-funcs
+EAPI=7
+inherit autotools db flag-o-matic java-pkg-opt-2 multilib multilib-minimal toolchain-funcs
 
 #Number of official patches
 #PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"`
-PATCHNO=${PV/*.*.*_p}
+PATCHNO="${PV/*.*.*_p}"
 if [[ ${PATCHNO} == "${PV}" ]] ; then
-	MY_PV=${PV}
-	MY_P=${P}
+	MY_PV="${PV}"
+	MY_P="${P}"
 	PATCHNO=0
 else
-	MY_PV=${PV/_p${PATCHNO}}
-	MY_P=${PN}-${MY_PV}
+	MY_PV="${PV/_p${PATCHNO}}"
+	MY_P="${PN}-${MY_PV}"
 fi
 
 S_BASE="${WORKDIR}/${MY_P}"
@@ -26,7 +26,7 @@ for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do
 done
 
 LICENSE="Sleepycat"
-SLOT="5.3"
+SLOT="$(ver_cut 1-2)"
 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86"
 IUSE="doc java cxx tcl test"
 
@@ -41,84 +41,108 @@ RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
 	java? ( >=virtual/jre-1.5 )"
 
 MULTILIB_WRAPPED_HEADERS=(
-	/usr/include/db5.3/db.h
+	/usr/include/db${SLOT}/db.h
 )
 
-src_prepare() {
-	cd "${WORKDIR}"/"${MY_P}"
-	for (( i=1 ; i<=${PATCHNO} ; i++ ))
-	do
-		epatch "${DISTDIR}"/patch."${MY_PV}"."${i}"
-	done
-
+PATCHES=(
 	# bug #510506
-	epatch "${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
+	"${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
 
 	# use the includes from the prefix
-	epatch "${FILESDIR}"/${PN}-4.6-jni-check-prefix-first.patch
-	epatch "${FILESDIR}"/${PN}-4.3-listen-to-java-options.patch
+	"${FILESDIR}"/${PN}-4.6-jni-check-prefix-first.patch
+	"${FILESDIR}"/${PN}-4.3-listen-to-java-options.patch
 
 	# sqlite configure call has an extra leading ..
 	# upstreamed:5.2.36, missing in 5.3.x
-	epatch "${FILESDIR}"/${PN}-5.2.28-sqlite-configure-path.patch
+	"${FILESDIR}"/${PN}-5.2.28-sqlite-configure-path.patch
 
 	# The upstream testsuite copies .lib and the binaries for each parallel test
 	# core, ~300MB each. This patch uses links instead, saves a lot of space.
-	epatch "${FILESDIR}"/${PN}-6.0.20-test-link.patch
+	"${FILESDIR}"/${PN}-6.0.20-test-link.patch
 
 	# Needed when compiling with clang
-	epatch "${FILESDIR}"/${PN}-5.1.29-rename-atomic-compare-exchange.patch
+	"${FILESDIR}"/${PN}-5.1.29-rename-atomic-compare-exchange.patch
+)
+
+src_prepare() {
+	cd "${S_BASE}" || die
+	for (( i=1 ; i<=${PATCHNO} ; i++ ))
+	do
+		eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	default
 
 	# Upstream release script grabs the dates when the script was run, so lets
 	# end-run them to keep the date the same.
 	export REAL_DB_RELEASE_DATE="$(awk \
 		'/^DB_VERSION_STRING=/{ gsub(".*\\(|\\).*","",$0); print $0; }' \
 		"${S_BASE}"/dist/configure)"
-	sed -r -i \
+	sed -r \
 		-e "/^DB_RELEASE_DATE=/s~=.*~='${REAL_DB_RELEASE_DATE}'~g" \
-		"${S_BASE}"/dist/RELEASE || die
+		-i dist/RELEASE || die
 
 	# Include the SLOT for Java JAR files
 	# This supersedes the unused jarlocation patches.
-	sed -r -i \
+	sed -r \
 		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
-		"${S_BASE}"/dist/Makefile.in || die
+		dist/Makefile.in || die
 
-	cd "${S_BASE}"/dist || die
-	rm -f aclocal/libtool.m4
-	sed -i \
+	cd dist || die
+	rm aclocal/libtool.m4 || die
+	sed \
 		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
-		configure.ac || die
-	sed -i \
+		-i configure.ac || die
+	sed \
 		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
-		aclocal/programs.m4 || die
+		-i aclocal/programs.m4 || die
+
 	AT_M4DIR="aclocal aclocal_java" eautoreconf
+
 	# Upstream sucks - they do autoconf and THEN replace the version variables.
 	. ./RELEASE
+	local v ev
 	for v in \
 		DB_VERSION_{FAMILY,LETTER,RELEASE,MAJOR,MINOR} \
 		DB_VERSION_{PATCH,FULL,UNIQUE_NAME,STRING,FULL_STRING} \
 		DB_VERSION \
 		DB_RELEASE_DATE ; do
-		local ev="__EDIT_${v}__"
-		sed -i -e "s/${ev}/${!v}/g" configure || die
+		ev="__EDIT_${v}__"
+		sed -e "s/${ev}/${!v}/g" -i configure || die
 	done
 
 	# This is a false positive skip in the tests as the test-reviewer code
 	# looks for 'Skipping\s'
-	sed -i \
+	sed \
 		-e '/db_repsite/s,Skipping:,Skipping,g' \
-		"${S_BASE}"/test/tcl/reputils.tcl || die
+		-i "${S_BASE}"/test/tcl/reputils.tcl || die
 }
 
 multilib_src_configure() {
-	local myconf=()
+	local myconf=(
+		# sql_compat will cause a collision with sqlite3
+		#--enable-sql_compat
+		# Don't --enable-sql* because we don't want to use bundled sqlite.
+		# See Gentoo bug #605688
+		--enable-compat185
+		--enable-dbm
+		--enable-o_direct
+		--without-uniquename
+		--disable-sql
+		--disable-sql_codegen
+		--disable-sql_compat
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly)
+		$(use_enable cxx)
+		$(use_enable cxx stl)
+		$(multilib_native_use_enable java)
+		$(use_enable test)
+	)
 
 	tc-ld-disable-gold #470634
 
 	# compilation with -O0 fails on amd64, see bug #171231
 	if [[ ${ABI} == amd64 ]]; then
-		local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+		local CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}"
 		replace-flags -O0 -O2
 		is-flagq -O[s123] || append-flags -O2
 	fi
@@ -129,7 +153,6 @@ multilib_src_configure() {
 		append-ldflags -Wl,--default-symver
 	fi
 
-	# use `set` here since the java opts will contain whitespace
 	if multilib_is_native_abi && use java ; then
 		myconf+=(
 			--with-java-prefix="${JAVA_HOME}"
@@ -147,26 +170,10 @@ multilib_src_configure() {
 		myconf+=(--disable-tcl )
 	fi
 
-	# sql_compat will cause a collision with sqlite3
-	# --enable-sql_compat
-	# Don't --enable-sql* because we don't want to use bundled sqlite.
-	# See Gentoo bug #605688
 	ECONF_SOURCE="${S_BASE}"/dist \
 	STRIP="true" \
-	econf \
-		--enable-compat185 \
-		--enable-dbm \
-		--enable-o_direct \
-		--without-uniquename \
-		--disable-sql \
-		--disable-sql_codegen \
-		--disable-sql_compat \
-		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly) \
-		$(use_enable cxx) \
-		$(use_enable cxx stl) \
-		$(multilib_native_use_enable java) \
-		"${myconf[@]}" \
-		$(use_enable test)
+	econf "${myconf[@]}"
+
 	# The embedded assembly on ARM does not work on newer hardware
 	# so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
 	# Specifically, it uses the SWPB op, which was deprecated:
@@ -177,7 +184,7 @@ multilib_src_configure() {
 }
 
 multilib_src_install() {
-	emake install DESTDIR="${D}"
+	emake DESTDIR="${D}" install
 
 	db_src_install_headerslot
 
@@ -219,9 +226,9 @@ src_test() {
 	#sed -ri \
 	#	-e '/set subs/s,multi_repmgr,,g' \
 	#	"${S_BASE}/test/testparams.tcl"
-	sed -ri \
+	sed -r \
 		-e '/multi_repmgr/d' \
-		"${S_BASE}/test/tcl/test.tcl" || die
+		-i "${S_BASE}/test/tcl/test.tcl" || die
 
 	# This is the only failure in 5.2.28 so far, and looks like a false positive.
 	# Repmgr018 (btree): Test of repmgr stats.
@@ -231,10 +238,10 @@ src_test() {
 	#         Rep_test: btree 20 key/data pairs starting at 0
 	#         Rep_test.a: put/get loop
 	# FAIL:07:05:59 (00:00:00) perm_no_failed_stat: expected 0, got 1
-	sed -ri \
+	sed -r \
 		-e '/set parms.*repmgr018/d' \
 		-e 's/repmgr018//g' \
-		"${S_BASE}/test/tcl/test.tcl" || die
+		-i "${S_BASE}/test/tcl/test.tcl" || die
 
 	multilib-minimal_src_test
 }
@@ -242,5 +249,5 @@ src_test() {
 multilib_src_test() {
 	multilib_is_native_abi || return
 
-	S=${BUILD_DIR} db_src_test
+	S="${BUILD_DIR}" db_src_test
 }

diff --git a/sys-libs/db/db-6.0.35-r1.ebuild b/sys-libs/db/db-6.0.35-r2.ebuild
similarity index 78%
rename from sys-libs/db/db-6.0.35-r1.ebuild
rename to sys-libs/db/db-6.0.35-r2.ebuild
index 70e9cbe1da3..3db37562bd9 100644
--- a/sys-libs/db/db-6.0.35-r1.ebuild
+++ b/sys-libs/db/db-6.0.35-r2.ebuild
@@ -1,19 +1,19 @@
 # Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=5
-inherit eutils db flag-o-matic java-pkg-opt-2 autotools multilib multilib-minimal versionator toolchain-funcs
+EAPI=7
+inherit autotools db flag-o-matic java-pkg-opt-2 multilib multilib-minimal toolchain-funcs
 
 #Number of official patches
 #PATCHNO=`echo ${PV}|sed -e "s,\(.*_p\)\([0-9]*\),\2,"`
-PATCHNO=${PV/*.*.*_p}
+PATCHNO="${PV/*.*.*_p}"
 if [[ ${PATCHNO} == "${PV}" ]] ; then
-	MY_PV=${PV}
-	MY_P=${P}
+	MY_PV="${PV}"
+	MY_P="${P}"
 	PATCHNO=0
 else
-	MY_PV=${PV/_p${PATCHNO}}
-	MY_P=${PN}-${MY_PV}
+	MY_PV="${PV/_p${PATCHNO}}"
+	MY_P="${PN}-${MY_PV}"
 fi
 
 S_BASE="${WORKDIR}/${MY_P}"
@@ -26,7 +26,7 @@ for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do
 done
 
 LICENSE="AGPL-3"
-SLOT="$(get_version_component_range 1-2)"
+SLOT="$(ver_cut 1-2)"
 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86"
 IUSE="doc java cxx tcl test"
 
@@ -41,76 +41,96 @@ RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
 	java? ( >=virtual/jre-1.5 )"
 
 MULTILIB_WRAPPED_HEADERS=(
-	/usr/include/db$(get_version_component_range 1-2)/db.h
+	/usr/include/db${SLOT}/db.h
 )
 
-src_prepare() {
-	cd "${WORKDIR}"/"${MY_P}"
-	for (( i=1 ; i<=${PATCHNO} ; i++ ))
-	do
-		epatch "${DISTDIR}"/patch."${MY_PV}"."${i}"
-	done
-
+PATCHES=(
 	# bug #510506
-	epatch "${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
+	"${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
 
 	# use the includes from the prefix
-	epatch "${FILESDIR}"/${PN}-4.6-jni-check-prefix-first.patch
-	epatch "${FILESDIR}"/${PN}-4.3-listen-to-java-options.patch
+	"${FILESDIR}"/${PN}-4.6-jni-check-prefix-first.patch
+	"${FILESDIR}"/${PN}-4.3-listen-to-java-options.patch
 
 	# sqlite configure call has an extra leading ..
 	# upstreamed:5.2.36, missing in 5.3.x/6.x
 	# still needs to be patched in 6.0.20
-	epatch "${FILESDIR}"/${PN}-6.0.35-sqlite-configure-path.patch
+	"${FILESDIR}"/${PN}-6.0.35-sqlite-configure-path.patch
 
 	# The upstream testsuite copies .lib and the binaries for each parallel test
 	# core, ~300MB each. This patch uses links instead, saves a lot of space.
-	epatch "${FILESDIR}"/${PN}-6.0.20-test-link.patch
+	"${FILESDIR}"/${PN}-6.0.20-test-link.patch
+)
+
+src_prepare() {
+	cd "${S_BASE}" || die
+	for (( i=1 ; i<=${PATCHNO} ; i++ ))
+	do
+		eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	default
 
 	# Upstream release script grabs the dates when the script was run, so lets
 	# end-run them to keep the date the same.
 	export REAL_DB_RELEASE_DATE="$(awk \
 		'/^DB_VERSION_STRING=/{ gsub(".*\\(|\\).*","",$0); print $0; }' \
 		"${S_BASE}"/dist/configure)"
-	sed -r -i \
+	sed -r \
 		-e "/^DB_RELEASE_DATE=/s~=.*~='${REAL_DB_RELEASE_DATE}'~g" \
-		"${S_BASE}"/dist/RELEASE || die
+		-i dist/RELEASE || die
 
 	# Include the SLOT for Java JAR files
 	# This supersedes the unused jarlocation patches.
-	sed -r -i \
+	sed -r \
 		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
-		"${S_BASE}"/dist/Makefile.in || die
+		-i dist/Makefile.in || die
 
-	cd "${S_BASE}"/dist || die
-	rm -f aclocal/libtool.m4
-	sed -i \
+	cd dist || die
+	rm aclocal/libtool.m4 || die
+	sed \
 		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
-		configure.ac || die
-	sed -i \
+		-i configure.ac || die
+	sed \
 		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
-		aclocal/programs.m4 || die
+		-i aclocal/programs.m4 || die
+
 	AT_M4DIR="aclocal aclocal_java" eautoreconf
+
 	# Upstream sucks - they do autoconf and THEN replace the version variables.
 	. ./RELEASE
+	local v ev
 	for v in \
 		DB_VERSION_{FAMILY,LETTER,RELEASE,MAJOR,MINOR} \
 		DB_VERSION_{PATCH,FULL,UNIQUE_NAME,STRING,FULL_STRING} \
 		DB_VERSION \
 		DB_RELEASE_DATE ; do
-		local ev="__EDIT_${v}__"
-		sed -i -e "s/${ev}/${!v}/g" configure || die
+		ev="__EDIT_${v}__"
+		sed -e "s/${ev}/${!v}/g" -i configure || die
 	done
 
 	# This is a false positive skip in the tests as the test-reviewer code
 	# looks for 'Skipping\s'
-	sed -i \
+	sed \
 		-e '/db_repsite/s,Skipping:,Skipping,g' \
-		"${S_BASE}"/test/tcl/reputils.tcl || die
+		-i "${S_BASE}"/test/tcl/reputils.tcl || die
 }
 
 multilib_src_configure() {
-	local myconf=()
+	local myconf=(
+		--enable-compat185
+		--enable-dbm
+		--enable-o_direct
+		--without-uniquename
+		--disable-sql
+		--disable-sql_codegen
+		--disable-sql_compat
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly)
+		$(use_enable cxx)
+		$(use_enable cxx stl)
+		$(multilib_native_use_enable java)
+		$(use_enable test)
+	)
 
 	tc-ld-disable-gold #470634
 
@@ -151,20 +171,8 @@ multilib_src_configure() {
 	# See Gentoo bug #605688
 	ECONF_SOURCE="${S_BASE}"/dist \
 	STRIP="true" \
-	econf \
-		--enable-compat185 \
-		--enable-dbm \
-		--enable-o_direct \
-		--without-uniquename \
-		--disable-sql \
-		--disable-sql_codegen \
-		--disable-sql_compat \
-		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly) \
-		$(use_enable cxx) \
-		$(use_enable cxx stl) \
-		$(multilib_native_use_enable java) \
-		"${myconf[@]}" \
-		$(use_enable test)
+	econf "${myconf[@]}"
+
 	# The embedded assembly on ARM does not work on newer hardware
 	# so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
 	# Specifically, it uses the SWPB op, which was deprecated:
@@ -175,7 +183,7 @@ multilib_src_configure() {
 }
 
 multilib_src_install() {
-	emake install DESTDIR="${D}"
+	emake DESTDIR="${D}" install
 
 	db_src_install_headerslot
 
@@ -214,12 +222,12 @@ src_test() {
 	# db_repsite is used directly in the setup_site_prog,
 	# setup_site_prog is called from open_site_prog
 	# which is called only from tests in the multi_repmgr group.
-	#sed -ri \
+	#sed -r \
 	#	-e '/set subs/s,multi_repmgr,,g' \
-	#	"${S_BASE}/test/testparams.tcl"
-	sed -ri \
+	#	-i "${S_BASE}/test/testparams.tcl"
+	sed -r \
 		-e '/multi_repmgr/d' \
-		"${S_BASE}/test/tcl/test.tcl" || die
+		-i "${S_BASE}/test/tcl/test.tcl" || die
 
 	# This is the only failure in 5.2.28 so far, and looks like a false positive.
 	# Repmgr018 (btree): Test of repmgr stats.
@@ -229,10 +237,10 @@ src_test() {
 	#         Rep_test: btree 20 key/data pairs starting at 0
 	#         Rep_test.a: put/get loop
 	# FAIL:07:05:59 (00:00:00) perm_no_failed_stat: expected 0, got 1
-	sed -ri \
+	sed -r \
 		-e '/set parms.*repmgr018/d' \
 		-e 's/repmgr018//g' \
-		"${S_BASE}/test/tcl/test.tcl" || die
+		-i "${S_BASE}/test/tcl/test.tcl" || die
 
 	multilib-minimal_src_test
 }
@@ -240,5 +248,5 @@ src_test() {
 multilib_src_test() {
 	multilib_is_native_abi || return
 
-	S=${BUILD_DIR} db_src_test
+	S="${BUILD_DIR}" db_src_test
 }

diff --git a/sys-libs/db/files/db-4.8-libtool.patch b/sys-libs/db/files/db-4.8-libtool.patch
index f5d985b2f20..0c3dbffb03c 100644
--- a/sys-libs/db/files/db-4.8-libtool.patch
+++ b/sys-libs/db/files/db-4.8-libtool.patch
@@ -1,5 +1,5 @@
---- dist/configure
-+++ dist/configure
+--- a/dist/configure
++++ b/dist/configure
 @@ -6691,7 +6691,7 @@
    $as_echo_n "(cached) " >&6
  else


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/db/, sys-libs/db/files/
@ 2020-08-26 15:21 Thomas Deutschmann
  0 siblings, 0 replies; 10+ messages in thread
From: Thomas Deutschmann @ 2020-08-26 15:21 UTC (permalink / raw
  To: gentoo-commits

commit:     d42efea31004b7ea4ad298f5ac00fd34e98f901f
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 26 15:18:44 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Wed Aug 26 15:21:36 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d42efea3

sys-libs/db: bump to v18.1.40

Package-Manager: Portage-3.0.4, Repoman-3.0.1
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 sys-libs/db/Manifest                        |   1 +
 sys-libs/db/db-18.1.40.ebuild               | 244 ++++++++++++++++++++++++++++
 sys-libs/db/files/db-18.1.40-fix-docs.patch |  19 +++
 3 files changed, 264 insertions(+)

diff --git a/sys-libs/db/Manifest b/sys-libs/db/Manifest
index 93f9b50e235..317ca5d8dac 100644
--- a/sys-libs/db/Manifest
+++ b/sys-libs/db/Manifest
@@ -1,5 +1,6 @@
 DIST db-1.85-r3.1.patch.bz2 14641 BLAKE2B 5ca59487a433a5e5b5fed7a8737c20df041be56733fe9209047f9e53845fa034576c29ad74407509ab96473e4eef0138a3a47de6c348d27209f0e39df85b9f5f SHA512 32b1810515476758ece7415f241378460a4051bf5ee23fb464748f84a90a56ff2c5119ed93028114d64f1b1691b1c694c2301ff825edd89cdee90a870a68b6f4
 DIST db-18.1.32.tar.gz 44244747 BLAKE2B b539d8966a269f6a9440ef442248849f12c6b1eda79b9a41074e1eb0eb4930fd4674dd0e20a114e4020fe2ce19832572c4c86d458835da39a99f639dc3c4e23e SHA512 890b3047c28114ac30794c0234126b0b2a3e699f3ed259831091f02d51885e3583dd10c0ef0cecc215b9b8d80b48a2d3a82a5793cd3816afb45f6cc19ae23f25
+DIST db-18.1.40.tar.gz 30763705 BLAKE2B c7235cbdf82d8e38450c98baa1ff67132f6132d59a43dd2d6ed8bc2672b7924b4cbd93320278a0a3a78e454caff622b4480abe8dcc20c94ae56a78b3569a76fd SHA512 53787164fb8a198a0178c7f58d891c2b0943d1c52b11fe9de525938469327e85664f0bc63e33d740c171bc370954710a6b3e8b9be2a08237fb9757a795c5b19e
 DIST db-3.2.9.tar.gz 2085238 BLAKE2B 10cb1c102bf5db52ec16181ccbb02a8c4560f42afd2382689ee4903fcd63bf3ab4802482a065a85b1d34c8fb9f620fceb985155b1390de7ca404c121b6b4b6bc SHA512 5f07b27ae0cbd2832e5db9473cd4f2d4aebeee25ed8245ebd2c297a576571635ca5cf75e63e0967b1e90978128a5b6f5d8112559c56927d5bc5eb0d9fd3a2e95
 DIST db-4.2.52.tar.gz 4073147 BLAKE2B 0bb9649a08df9b425f28471eb65c0efac0b7833b4c5c841b9ef53a142669b549e1f1b78cf42eeceea05ebb271aacd513d115070ea028f77fb1830bb9fcc7c8a9 SHA512 47a4e1353fe4f5c2160952a8f7a09b73fdf2dfcd222a8214e12630cec3139a624907bba83a06f10f8492b4dce328a979e9155ee049b9a88798edaca62cfe60d1
 DIST db-4.3.29.tar.gz 6103264 BLAKE2B eda13cd5c8b9421044f6c8b6b41ec318ff33e19da15f8d5e3075612186e60cfce30069078f712841058224ed58caf69d43960156ac645651670665390eae28e1 SHA512 93d36c040b25739b92c52504e117a9c7f4b671463d61d00029e70d0bc8171311f5d04211f7d966b8a9ef8c2a85a5ebe8cc55e4469c3c7c0e468caa4221f691fc

diff --git a/sys-libs/db/db-18.1.40.ebuild b/sys-libs/db/db-18.1.40.ebuild
new file mode 100644
index 00000000000..c4022d840e7
--- /dev/null
+++ b/sys-libs/db/db-18.1.40.ebuild
@@ -0,0 +1,244 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit db flag-o-matic java-pkg-opt-2 autotools multilib multilib-minimal eapi7-ver toolchain-funcs
+
+#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
+
+RESTRICT="fetch
+	!test? ( test )"
+
+S_BASE="${WORKDIR}/${MY_P}"
+S="${S_BASE}/dist"
+DESCRIPTION="Oracle Berkeley DB"
+HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html"
+SRC_URI="https://download.oracle.com/otn/berkeley-db/${MY_P}.tar.gz"
+for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do
+	SRC_URI+=" http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}"
+done
+
+LICENSE="AGPL-3"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="doc java cxx tcl test"
+
+REQUIRED_USE="test? ( tcl )"
+
+# the entire testsuite needs the TCL functionality
+DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	test? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	java? ( >=virtual/jdk-1.5 )
+	>=sys-devel/binutils-2.16.1"
+RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	java? ( >=virtual/jre-1.5 )"
+
+MULTILIB_WRAPPED_HEADERS=(
+	/usr/include/db$(ver_cut 1-2)/db.h
+)
+
+PATCHES=(
+	# bug #510506
+	"${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
+
+	# use the includes from the prefix
+	"${FILESDIR}"/${PN}-6.2.32-jni-check-prefix-first.patch
+	"${FILESDIR}"/${PN}-4.2-listen-to-java-options.patch
+
+	# The upstream testsuite copies .lib and the binaries for each parallel test
+	# core, ~300MB each. This patch uses links instead, saves a lot of space.
+	"${FILESDIR}"/${PN}-18.1.25-test-link.patch
+
+	"${FILESDIR}"/${PN}-18.1.40-fix-docs.patch
+)
+
+src_prepare() {
+	cd "${WORKDIR}"/"${MY_P}"
+	for (( i=1 ; i<=${PATCHNO} ; i++ ))
+	do
+		eapply "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	default
+
+	# Upstream release script grabs the dates when the script was run, so lets
+	# end-run them to keep the date the same.
+	export REAL_DB_RELEASE_DATE="$(awk \
+		'/^DB_VERSION_STRING=/{ gsub(".*\\(|\\).*","",$0); print $0; }' \
+		"${S_BASE}"/dist/configure)"
+	sed -r -i \
+		-e "/^DB_RELEASE_DATE=/s~=.*~='${REAL_DB_RELEASE_DATE}'~g" \
+		"${S_BASE}"/dist/RELEASE || die
+
+	# Include the SLOT for Java JAR files
+	# This supersedes the unused jarlocation patches.
+	sed -r -i \
+		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
+		"${S_BASE}"/dist/Makefile.in || die
+
+	cd "${S_BASE}"/dist || die
+	rm -f aclocal/libtool.m4
+	sed -i \
+		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
+		configure.ac || die
+	sed -i \
+		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
+		aclocal/programs.m4 || die
+	AT_M4DIR="aclocal aclocal_java" eautoreconf
+	# Upstream sucks - they do autoconf and THEN replace the version variables.
+	. ./RELEASE
+	for v in \
+		DB_VERSION_{FAMILY,LETTER,RELEASE,MAJOR,MINOR} \
+		DB_VERSION_{PATCH,FULL,UNIQUE_NAME,STRING,FULL_STRING} \
+		DB_VERSION \
+		DB_RELEASE_DATE ; do
+		local ev="__EDIT_${v}__"
+		sed -i -e "s/${ev}/${!v}/g" configure || die
+	done
+
+	# This is a false positive skip in the tests as the test-reviewer code
+	# looks for 'Skipping\s'
+	sed -i \
+		-e '/db_repsite/s,Skipping:,Skipping,g' \
+		"${S_BASE}"/test/tcl/reputils.tcl || die
+}
+
+multilib_src_configure() {
+	# sql_compat will cause a collision with sqlite3
+	# --enable-sql_compat
+	# Don't --enable-sql* because we don't want to use bundled sqlite.
+	# See Gentoo bug #605688
+	local myeconfargs=(
+		--enable-compat185
+		--enable-dbm
+		--enable-o_direct
+		# Requires openssl-1.0
+		--with-repmgr-ssl=no
+		--without-uniquename
+		--disable-sql
+		--disable-sql_codegen
+		--disable-sql_compat
+		$([[ ${ABI} == arm ]] && echo --with-mutex=ARM/gcc-assembly)
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly)
+		$(use_enable cxx)
+		$(use_enable cxx stl)
+		$(multilib_native_use_enable java)
+		$(use_enable test)
+	)
+
+	tc-ld-disable-gold #470634
+
+	# compilation with -O0 fails on amd64, see bug #171231
+	if [[ ${ABI} == amd64 ]]; then
+		local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+		replace-flags -O0 -O2
+		is-flagq -O[s123] || append-flags -O2
+	fi
+
+	# Add linker versions to the symbols. Easier to do, and safer than header file
+	# mumbo jumbo.
+	if use userland_GNU ; then
+		append-ldflags -Wl,--default-symver
+	fi
+
+	# use `set` here since the java opts will contain whitespace
+	if multilib_is_native_abi && use java ; then
+		myconf+=(
+			--with-java-prefix="${JAVA_HOME}"
+			--with-javac-flags="$(java-pkg_javac-args)"
+		)
+	fi
+
+	# Bug #270851: test needs TCL support
+	if use tcl || use test ; then
+		myeconfargs+=(
+			--enable-tcl
+			--with-tcl="${EPREFIX}/usr/$(get_libdir)"
+		)
+	else
+		myeconfargs+=(--disable-tcl )
+	fi
+
+	ECONF_SOURCE="${S_BASE}"/dist \
+	STRIP="true" \
+	econf "${myeconfargs[@]}"
+}
+
+multilib_src_install() {
+	emake install DESTDIR="${D}"
+
+	db_src_install_headerslot
+
+	db_src_install_usrlibcleanup
+
+	if multilib_is_native_abi && use java; then
+		java-pkg_regso "${ED%/}"/usr/"$(get_libdir)"/libdb_java*.so
+		java-pkg_dojar "${ED%/}"/usr/"$(get_libdir)"/*.jar
+		rm -f "${ED%/}"/usr/"$(get_libdir)"/*.jar
+	fi
+}
+
+multilib_src_install_all() {
+	db_src_install_usrbinslot
+
+	db_src_install_doc
+
+	dodir /usr/sbin
+	# This file is not always built, and no longer exists as of db-4.8
+	if [[ -f "${ED%/}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED%/}"/usr/bin/berkeley_db_svc \
+			"${ED%/}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
+}
+
+pkg_postinst() {
+	multilib_foreach_abi db_fix_so
+}
+
+pkg_postrm() {
+	multilib_foreach_abi db_fix_so
+}
+
+src_test() {
+	# db_repsite is impossible to build, as upstream strips those sources.
+	# db_repsite is used directly in the setup_site_prog,
+	# setup_site_prog is called from open_site_prog
+	# which is called only from tests in the multi_repmgr group.
+	#sed -ri \
+	#	-e '/set subs/s,multi_repmgr,,g' \
+	#	"${S_BASE}/test/testparams.tcl"
+	sed -ri \
+		-e '/multi_repmgr/d' \
+		"${S_BASE}/test/tcl/test.tcl" || die
+
+	# This is the only failure in 5.2.28 so far, and looks like a false positive.
+	# Repmgr018 (btree): Test of repmgr stats.
+	#     Repmgr018.a: Start a master.
+	#     Repmgr018.b: Start a client.
+	#     Repmgr018.c: Run some transactions at master.
+	#         Rep_test: btree 20 key/data pairs starting at 0
+	#         Rep_test.a: put/get loop
+	# FAIL:07:05:59 (00:00:00) perm_no_failed_stat: expected 0, got 1
+	sed -ri \
+		-e '/set parms.*repmgr018/d' \
+		-e 's/repmgr018//g' \
+		"${S_BASE}/test/tcl/test.tcl" || die
+
+	multilib-minimal_src_test
+}
+
+multilib_src_test() {
+	multilib_is_native_abi || return
+
+	S=${BUILD_DIR} db_src_test
+}

diff --git a/sys-libs/db/files/db-18.1.40-fix-docs.patch b/sys-libs/db/files/db-18.1.40-fix-docs.patch
new file mode 100644
index 00000000000..7bed9f1cbca
--- /dev/null
+++ b/sys-libs/db/files/db-18.1.40-fix-docs.patch
@@ -0,0 +1,19 @@
+Fixes
+
+  cp: cannot stat 'bdb-sql': No such file or directory
+  cp: cannot stat 'gsg_db_server': No such file or directory
+
+--- a/dist/Makefile.in
++++ b/dist/Makefile.in
+@@ -1299,8 +1299,8 @@ uninstall_utilities:
+ 
+ # We install csharp docs even on UNIX so we don't have a 
+ # broken link on the landing page.
+-DOCLIST=api_reference articles bdb-sql collections csharp gsg \
+-	gsg_db_rep gsg_db_server gsg_txn index.html installation \
++DOCLIST=api_reference articles collections csharp gsg \
++	gsg_db_rep gsg_txn index.html installation \
+ 	java license porting programmer_reference upgrading
+ 
+ install_docs:
+ 


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/db/, sys-libs/db/files/
@ 2021-01-24 18:28 Mike Gilbert
  0 siblings, 0 replies; 10+ messages in thread
From: Mike Gilbert @ 2021-01-24 18:28 UTC (permalink / raw
  To: gentoo-commits

commit:     d54fe5fc599733879a3f2cdc85cd088d4ab3febe
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 24 18:26:49 2021 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jan 24 18:27:55 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d54fe5fc

Revert "sys-libs/db: remove old"

db-18.1.40 dropped features, so people may want to stick with 18.1.32.

Reverts: c0bd697c0d3d78662d1fe84c685521140b7c5631
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 sys-libs/db/Manifest                               |   1 +
 sys-libs/db/db-18.1.32.ebuild                      | 247 +++++++++++++++++++++
 .../files/db-18.1.25-sqlite-configure-path.patch   |  11 +
 3 files changed, 259 insertions(+)

diff --git a/sys-libs/db/Manifest b/sys-libs/db/Manifest
index 5e107989be8..317ca5d8dac 100644
--- a/sys-libs/db/Manifest
+++ b/sys-libs/db/Manifest
@@ -1,4 +1,5 @@
 DIST db-1.85-r3.1.patch.bz2 14641 BLAKE2B 5ca59487a433a5e5b5fed7a8737c20df041be56733fe9209047f9e53845fa034576c29ad74407509ab96473e4eef0138a3a47de6c348d27209f0e39df85b9f5f SHA512 32b1810515476758ece7415f241378460a4051bf5ee23fb464748f84a90a56ff2c5119ed93028114d64f1b1691b1c694c2301ff825edd89cdee90a870a68b6f4
+DIST db-18.1.32.tar.gz 44244747 BLAKE2B b539d8966a269f6a9440ef442248849f12c6b1eda79b9a41074e1eb0eb4930fd4674dd0e20a114e4020fe2ce19832572c4c86d458835da39a99f639dc3c4e23e SHA512 890b3047c28114ac30794c0234126b0b2a3e699f3ed259831091f02d51885e3583dd10c0ef0cecc215b9b8d80b48a2d3a82a5793cd3816afb45f6cc19ae23f25
 DIST db-18.1.40.tar.gz 30763705 BLAKE2B c7235cbdf82d8e38450c98baa1ff67132f6132d59a43dd2d6ed8bc2672b7924b4cbd93320278a0a3a78e454caff622b4480abe8dcc20c94ae56a78b3569a76fd SHA512 53787164fb8a198a0178c7f58d891c2b0943d1c52b11fe9de525938469327e85664f0bc63e33d740c171bc370954710a6b3e8b9be2a08237fb9757a795c5b19e
 DIST db-3.2.9.tar.gz 2085238 BLAKE2B 10cb1c102bf5db52ec16181ccbb02a8c4560f42afd2382689ee4903fcd63bf3ab4802482a065a85b1d34c8fb9f620fceb985155b1390de7ca404c121b6b4b6bc SHA512 5f07b27ae0cbd2832e5db9473cd4f2d4aebeee25ed8245ebd2c297a576571635ca5cf75e63e0967b1e90978128a5b6f5d8112559c56927d5bc5eb0d9fd3a2e95
 DIST db-4.2.52.tar.gz 4073147 BLAKE2B 0bb9649a08df9b425f28471eb65c0efac0b7833b4c5c841b9ef53a142669b549e1f1b78cf42eeceea05ebb271aacd513d115070ea028f77fb1830bb9fcc7c8a9 SHA512 47a4e1353fe4f5c2160952a8f7a09b73fdf2dfcd222a8214e12630cec3139a624907bba83a06f10f8492b4dce328a979e9155ee049b9a88798edaca62cfe60d1

diff --git a/sys-libs/db/db-18.1.32.ebuild b/sys-libs/db/db-18.1.32.ebuild
new file mode 100644
index 00000000000..bc3dafe46b9
--- /dev/null
+++ b/sys-libs/db/db-18.1.32.ebuild
@@ -0,0 +1,247 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit db flag-o-matic java-pkg-opt-2 autotools multilib multilib-minimal eapi7-ver toolchain-funcs
+
+#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
+
+RESTRICT="!test? ( test )"
+
+S_BASE="${WORKDIR}/${MY_P}"
+S="${S_BASE}/dist"
+DESCRIPTION="Oracle Berkeley DB"
+HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html"
+SRC_URI="https://download.oracle.com/otn/berkeley-db/${MY_P}.tar.gz
+	mirror://gentoo/${MY_P}.tar.gz"
+for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do
+	SRC_URI+=" http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}"
+done
+
+LICENSE="AGPL-3"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="doc java cxx tcl test"
+
+REQUIRED_USE="test? ( tcl )"
+
+# the entire testsuite needs the TCL functionality
+DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	test? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	java? ( >=virtual/jdk-1.5 )
+	>=sys-devel/binutils-2.16.1"
+RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	java? ( >=virtual/jre-1.5 )"
+
+MULTILIB_WRAPPED_HEADERS=(
+	/usr/include/db$(ver_cut 1-2)/db.h
+)
+
+PATCHES=(
+	# bug #510506
+	"${FILESDIR}"/${PN}-4.8.24-java-manifest-location.patch
+
+	# use the includes from the prefix
+	"${FILESDIR}"/${PN}-6.2.32-jni-check-prefix-first.patch
+	"${FILESDIR}"/${PN}-4.2-listen-to-java-options.patch
+
+	# sqlite configure call has an extra leading ..
+	# upstreamed:5.2.36, missing in 5.3.x/6.x
+	# still needs to be patched in 6.0.20
+	"${FILESDIR}"/${PN}-18.1.25-sqlite-configure-path.patch
+
+	# The upstream testsuite copies .lib and the binaries for each parallel test
+	# core, ~300MB each. This patch uses links instead, saves a lot of space.
+	"${FILESDIR}"/${PN}-18.1.25-test-link.patch
+)
+
+src_prepare() {
+	cd "${WORKDIR}"/"${MY_P}"
+	for (( i=1 ; i<=${PATCHNO} ; i++ ))
+	do
+		eapply "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	default
+
+	# Upstream release script grabs the dates when the script was run, so lets
+	# end-run them to keep the date the same.
+	export REAL_DB_RELEASE_DATE="$(awk \
+		'/^DB_VERSION_STRING=/{ gsub(".*\\(|\\).*","",$0); print $0; }' \
+		"${S_BASE}"/dist/configure)"
+	sed -r -i \
+		-e "/^DB_RELEASE_DATE=/s~=.*~='${REAL_DB_RELEASE_DATE}'~g" \
+		"${S_BASE}"/dist/RELEASE || die
+
+	# Include the SLOT for Java JAR files
+	# This supersedes the unused jarlocation patches.
+	sed -r -i \
+		-e '/jarfile=.*\.jar$/s,(.jar$),-$(LIBVERSION)\1,g' \
+		"${S_BASE}"/dist/Makefile.in || die
+
+	cd "${S_BASE}"/dist || die
+	rm -f aclocal/libtool.m4
+	sed -i \
+		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
+		configure.ac || die
+	sed -i \
+		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
+		aclocal/programs.m4 || die
+	AT_M4DIR="aclocal aclocal_java" eautoreconf
+	# Upstream sucks - they do autoconf and THEN replace the version variables.
+	. ./RELEASE
+	for v in \
+		DB_VERSION_{FAMILY,LETTER,RELEASE,MAJOR,MINOR} \
+		DB_VERSION_{PATCH,FULL,UNIQUE_NAME,STRING,FULL_STRING} \
+		DB_VERSION \
+		DB_RELEASE_DATE ; do
+		local ev="__EDIT_${v}__"
+		sed -i -e "s/${ev}/${!v}/g" configure || die
+	done
+
+	# This is a false positive skip in the tests as the test-reviewer code
+	# looks for 'Skipping\s'
+	sed -i \
+		-e '/db_repsite/s,Skipping:,Skipping,g' \
+		"${S_BASE}"/test/tcl/reputils.tcl || die
+}
+
+multilib_src_configure() {
+	# sql_compat will cause a collision with sqlite3
+	# --enable-sql_compat
+	# Don't --enable-sql* because we don't want to use bundled sqlite.
+	# See Gentoo bug #605688
+	local myeconfargs=(
+		--enable-compat185
+		--enable-dbm
+		--enable-o_direct
+		# Requires openssl-1.0
+		--with-repmgr-ssl=no
+		--without-uniquename
+		--disable-sql
+		--disable-sql_codegen
+		--disable-sql_compat
+		$([[ ${ABI} == arm ]] && echo --with-mutex=ARM/gcc-assembly)
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly)
+		$(use_enable cxx)
+		$(use_enable cxx stl)
+		$(multilib_native_use_enable java)
+		$(use_enable test)
+	)
+
+	tc-ld-force-bfd #470634 #729510
+
+	# compilation with -O0 fails on amd64, see bug #171231
+	if [[ ${ABI} == amd64 ]]; then
+		local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+		replace-flags -O0 -O2
+		is-flagq -O[s123] || append-flags -O2
+	fi
+
+	# Add linker versions to the symbols. Easier to do, and safer than header file
+	# mumbo jumbo.
+	if use userland_GNU ; then
+		append-ldflags -Wl,--default-symver
+	fi
+
+	# use `set` here since the java opts will contain whitespace
+	if multilib_is_native_abi && use java ; then
+		myconf+=(
+			--with-java-prefix="${JAVA_HOME}"
+			--with-javac-flags="$(java-pkg_javac-args)"
+		)
+	fi
+
+	# Bug #270851: test needs TCL support
+	if use tcl || use test ; then
+		myeconfargs+=(
+			--enable-tcl
+			--with-tcl="${EPREFIX}/usr/$(get_libdir)"
+		)
+	else
+		myeconfargs+=(--disable-tcl )
+	fi
+
+	ECONF_SOURCE="${S_BASE}"/dist \
+	STRIP="true" \
+	econf "${myeconfargs[@]}"
+}
+
+multilib_src_install() {
+	emake install DESTDIR="${D}"
+
+	db_src_install_headerslot
+
+	db_src_install_usrlibcleanup
+
+	if multilib_is_native_abi && use java; then
+		java-pkg_regso "${ED%/}"/usr/"$(get_libdir)"/libdb_java*.so
+		java-pkg_dojar "${ED%/}"/usr/"$(get_libdir)"/*.jar
+		rm -f "${ED%/}"/usr/"$(get_libdir)"/*.jar
+	fi
+}
+
+multilib_src_install_all() {
+	db_src_install_usrbinslot
+
+	db_src_install_doc
+
+	dodir /usr/sbin
+	# This file is not always built, and no longer exists as of db-4.8
+	if [[ -f "${ED%/}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED%/}"/usr/bin/berkeley_db_svc \
+			"${ED%/}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
+}
+
+pkg_postinst() {
+	multilib_foreach_abi db_fix_so
+}
+
+pkg_postrm() {
+	multilib_foreach_abi db_fix_so
+}
+
+src_test() {
+	# db_repsite is impossible to build, as upstream strips those sources.
+	# db_repsite is used directly in the setup_site_prog,
+	# setup_site_prog is called from open_site_prog
+	# which is called only from tests in the multi_repmgr group.
+	#sed -ri \
+	#	-e '/set subs/s,multi_repmgr,,g' \
+	#	"${S_BASE}/test/testparams.tcl"
+	sed -ri \
+		-e '/multi_repmgr/d' \
+		"${S_BASE}/test/tcl/test.tcl" || die
+
+	# This is the only failure in 5.2.28 so far, and looks like a false positive.
+	# Repmgr018 (btree): Test of repmgr stats.
+	#     Repmgr018.a: Start a master.
+	#     Repmgr018.b: Start a client.
+	#     Repmgr018.c: Run some transactions at master.
+	#         Rep_test: btree 20 key/data pairs starting at 0
+	#         Rep_test.a: put/get loop
+	# FAIL:07:05:59 (00:00:00) perm_no_failed_stat: expected 0, got 1
+	sed -ri \
+		-e '/set parms.*repmgr018/d' \
+		-e 's/repmgr018//g' \
+		"${S_BASE}/test/tcl/test.tcl" || die
+
+	multilib-minimal_src_test
+}
+
+multilib_src_test() {
+	multilib_is_native_abi || return
+
+	S=${BUILD_DIR} db_src_test
+}

diff --git a/sys-libs/db/files/db-18.1.25-sqlite-configure-path.patch b/sys-libs/db/files/db-18.1.25-sqlite-configure-path.patch
new file mode 100644
index 00000000000..40570cafe21
--- /dev/null
+++ b/sys-libs/db/files/db-18.1.25-sqlite-configure-path.patch
@@ -0,0 +1,11 @@
+--- db-18.1.25/dist/aclocal/sql.m4
++++ db-18.1.25/dist/aclocal/sql.m4
+@@ -99,7 +99,7 @@
+ if test "$db_cv_debug" = "yes"; then
+   CPPFLAGS="$CPPFLAGS -g"
+ fi
+-(cd sql && eval "\$SHELL ../$sqlite_dir/configure --disable-option-checking $ac_sub_configure_args CPPFLAGS=\"-I.. $CPPFLAGS\" --enable-amalgamation=$db_cv_sql_amalgamation --enable-readline=$with_readline --enable-editline=$with_editline" && cat build_config.h >> config.h) || exit 1
++(cd sql && eval "\$SHELL $sqlite_dir/configure --disable-option-checking $ac_sub_configure_args CPPFLAGS=\"-I.. $CPPFLAGS\" --enable-amalgamation=$db_cv_sql_amalgamation --enable-readline=$with_readline --enable-editline=$with_editline" && cat build_config.h >> config.h) || exit 1
+ 
+ # Configure JDBC if --enable-jdbc
+ if test "$db_cv_jdbc" != "no"; then


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/db/, sys-libs/db/files/
@ 2022-06-20  5:04 Sam James
  0 siblings, 0 replies; 10+ messages in thread
From: Sam James @ 2022-06-20  5:04 UTC (permalink / raw
  To: gentoo-commits

commit:     503f602e1edc26f721b47c80981068f547b86b68
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 20 03:33:22 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jun 20 05:03:51 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=503f602e

sys-libs/db: fix -Wformat-security

Closes: https://bugs.gentoo.org/632628
Thanks-to: René Rhéaume <rene.rheaume <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/db/db-4.8.30-r7.ebuild                 | 164 ++++++++++++++++++++++++
 sys-libs/db/files/db-4.8-wformat-security.patch |  43 +++++++
 2 files changed, 207 insertions(+)

diff --git a/sys-libs/db/db-4.8.30-r7.ebuild b/sys-libs/db/db-4.8.30-r7.ebuild
new file mode 100644
index 000000000000..6b8e376acdb7
--- /dev/null
+++ b/sys-libs/db/db-4.8.30-r7.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools db flag-o-matic multilib-minimal toolchain-funcs
+
+# 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
+
+S="${WORKDIR}/${MY_P}/build_unix"
+DESCRIPTION="Oracle Berkeley DB"
+HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html"
+SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz"
+for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do
+	SRC_URI+=" http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}"
+done
+
+LICENSE="Sleepycat"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="doc cxx tcl test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test? ( tcl )"
+
+# The entire testsuite needs the TCL functionality
+DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	test? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )"
+RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-4.8-libtool.patch
+	"${FILESDIR}"/${PN}-4.8.30-rename-atomic-compare-exchange.patch
+	"${FILESDIR}"/${PN}-4.8-wformat-security.patch
+)
+
+src_prepare() {
+	cd "${WORKDIR}"/"${MY_P}" || die
+	for (( i=1 ; i<=${PATCHNO} ; i++ )); do
+		eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	default
+
+	sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" -i dist/RELEASE \
+		|| die
+
+	cd dist || die
+	rm aclocal/libtool.m4 || die
+	sed \
+		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
+		-i configure.ac || die
+	sed \
+		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
+		-i aclocal/programs.m4 || die
+
+	AT_M4DIR="aclocal" eautoreconf
+
+	# They do autoconf and THEN replace the version variables :(
+	. ./RELEASE
+	sed \
+		-e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \
+		-e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \
+		-e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \
+		-e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \
+		-e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \
+		-e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \
+		-i configure || die
+}
+
+multilib_src_configure() {
+	local myconf=(
+		--enable-compat185
+		--enable-o_direct
+		--without-uniquename
+		--disable-static
+		--disable-java
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly)
+		$(use_enable cxx)
+		$(use_enable cxx stl)
+		$(use_enable test)
+	)
+
+	# bug #470634 and bug #729510
+	tc-ld-force-bfd
+
+	# compilation with -O0 fails on amd64, see bug #171231
+	if [[ ${ABI} == amd64 ]]; then
+		local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+		replace-flags -O0 -O2
+		is-flagq -O[s123] || append-flags -O2
+	fi
+
+	# Add linker versions to the symbols. Easier to do, and safer than header file
+	# mumbo jumbo.
+	append-ldflags -Wl,--default-symver
+
+	# Bug #270851: test needs TCL support
+	if use tcl || use test ; then
+		myconf+=(
+			--enable-tcl
+			--with-tcl="${EPREFIX}/usr/$(get_libdir)"
+		)
+	else
+		myconf+=(--disable-tcl )
+	fi
+
+	ECONF_SOURCE="${S}"/../dist STRIP="true" econf "${myconf[@]}"
+
+	# The embedded assembly on ARM does not work on newer hardware
+	# so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
+	# Specifically, it uses the SWPB op, which was deprecated:
+	# http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
+	# The op ALSO cannot be used in ARM-Thumb mode.
+	# Trust the compiler instead.
+	# >=db-6.1 uses LDREX instead.
+}
+
+multilib_src_test() {
+	multilib_is_native_abi || return
+
+	S="${BUILD_DIR}" db_src_test
+}
+
+multilib_src_install() {
+	emake install DESTDIR="${D}"
+
+	db_src_install_headerslot
+
+	db_src_install_usrlibcleanup
+}
+
+multilib_src_install_all() {
+	db_src_install_usrbinslot
+
+	db_src_install_doc
+
+	dodir /usr/sbin
+	# This file is not always built, and no longer exists as of db-4.8
+	if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED}"/usr/bin/berkeley_db_svc \
+			"${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
+
+	# no static libraries
+	find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+	multilib_foreach_abi db_fix_so
+}
+
+pkg_postrm() {
+	multilib_foreach_abi db_fix_so
+}

diff --git a/sys-libs/db/files/db-4.8-wformat-security.patch b/sys-libs/db/files/db-4.8-wformat-security.patch
new file mode 100644
index 000000000000..4db5bada0d9f
--- /dev/null
+++ b/sys-libs/db/files/db-4.8-wformat-security.patch
@@ -0,0 +1,43 @@
+https://bugs.gentoo.org/632628
+--- a/repmgr/repmgr_net.c
++++ b/repmgr/repmgr_net.c
+@@ -1331,7 +1331,7 @@ __repmgr_listen(env)
+ 	}
+ 
+ 	ret = net_errno;
+-	__db_err(env, ret, why);
++	__db_err(env, ret, "%s", why);
+ clean:	if (s != INVALID_SOCKET)
+ 		(void)closesocket(s);
+ 	return (ret);
+--- a/crypto/aes_method.c
++++ b/crypto/aes_method.c
+@@ -267,6 +267,6 @@ __aes_err(env, err)
+ 		errstr = "AES error unrecognized";
+ 		break;
+ 	}
+-	__db_errx(env, errstr);
++	__db_errx(env, "%s", errstr);
+ 	return;
+ }
+--- a/txn/txn.c
++++ b/txn/txn.c
+@@ -168,7 +168,7 @@ __txn_begin(env, ip, parent, txnpp, flag
+ 
+ 	*txnpp = NULL;
+ 	if ((ret = __os_calloc(env, 1, sizeof(DB_TXN), &txn)) != 0) {
+-		__db_errx(env, TxnAlloc);
++		__db_errx(env, "%s", TxnAlloc);
+ 		return (ret);
+ 	}
+ 
+@@ -315,7 +315,7 @@ __txn_compensate_begin(env, txnpp)
+ 	int ret;
+ 
+ 	if ((ret = __os_calloc(env, 1, sizeof(DB_TXN), &txn)) != 0) {
+-		__db_errx(env, TxnAlloc);
++		__db_errx(env, "%s", TxnAlloc);
+ 		return (ret);
+ 	}
+ 
+


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/db/, sys-libs/db/files/
@ 2023-12-02  4:03 Sam James
  0 siblings, 0 replies; 10+ messages in thread
From: Sam James @ 2023-12-02  4:03 UTC (permalink / raw
  To: gentoo-commits

commit:     1ae36006c79ef705252f5f7009e79f6add7dc353
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Dec  2 03:51:50 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Dec  2 04:01:46 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1ae36006

sys-libs/db: fix another configure check for modern c

Closes: https://bugs.gentoo.org/898074
Closes: https://bugs.gentoo.org/918936
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/db/db-4.8.30-r9.ebuild                 | 171 +++++++++++++++++
 sys-libs/db/db-5.3.28-r10.ebuild                | 240 ++++++++++++++++++++++++
 sys-libs/db/db-6.0.35-r5.ebuild                 | 234 +++++++++++++++++++++++
 sys-libs/db/files/db-4.8.30-tls-configure.patch |  31 +++
 4 files changed, 676 insertions(+)

diff --git a/sys-libs/db/db-4.8.30-r9.ebuild b/sys-libs/db/db-4.8.30-r9.ebuild
new file mode 100644
index 000000000000..ac50491119bd
--- /dev/null
+++ b/sys-libs/db/db-4.8.30-r9.ebuild
@@ -0,0 +1,171 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools db flag-o-matic multilib-minimal toolchain-funcs
+
+# 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
+
+S="${WORKDIR}/${MY_P}/build_unix"
+DESCRIPTION="Oracle Berkeley DB"
+HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html"
+SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz"
+for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do
+	SRC_URI+=" http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}"
+done
+
+LICENSE="Sleepycat"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="doc cxx tcl test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test? ( tcl )"
+
+# The entire testsuite needs the TCL functionality
+DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	test? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )"
+RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )"
+# Need binutils for tc-ld-force-bfd
+BDEPEND="sys-devel/binutils:*"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-4.8-libtool.patch
+	"${FILESDIR}"/${PN}-4.8.30-rename-atomic-compare-exchange.patch
+	"${FILESDIR}"/${PN}-4.8-wformat-security.patch
+	"${FILESDIR}"/${PN}-4.8.30-clang16.patch
+	"${FILESDIR}"/${PN}-4.8.30-tls-configure.patch
+)
+
+src_prepare() {
+	cd "${WORKDIR}"/"${MY_P}" || die
+	for (( i=1 ; i<=${PATCHNO} ; i++ )); do
+		eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	default
+
+	sed -e "/^DB_RELEASE_DATE=/s/%B %e, %Y/%Y-%m-%d/" -i dist/RELEASE \
+		|| die
+
+	cd dist || die
+	rm aclocal/libtool.m4 || die
+	sed \
+		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
+		-i configure.ac || die
+	sed \
+		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
+		-i aclocal/programs.m4 || die
+
+	AT_M4DIR="aclocal" eautoreconf
+
+	# They do autoconf and THEN replace the version variables :(
+	. ./RELEASE
+	sed \
+		-e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \
+		-e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \
+		-e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \
+		-e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \
+		-e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \
+		-e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" \
+		-i configure || die
+}
+
+src_configure() {
+	# Force bfd before calling multilib_toolchain_setup
+	tc-ld-force-bfd #470634 #729510
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+	local myconf=(
+		--enable-compat185
+		--enable-o_direct
+		--without-uniquename
+		--disable-static
+		--disable-java
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly)
+		$(use_enable cxx)
+		$(use_enable cxx stl)
+		$(use_enable test)
+	)
+
+	# compilation with -O0 fails on amd64, see bug #171231
+	if [[ ${ABI} == amd64 ]]; then
+		local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+		replace-flags -O0 -O2
+		is-flagq -O[s123] || append-flags -O2
+	fi
+
+	# Add linker versions to the symbols. Easier to do, and safer than header file
+	# mumbo jumbo.
+	append-ldflags -Wl,--default-symver
+
+	# Bug #270851: test needs TCL support
+	if use tcl || use test ; then
+		myconf+=(
+			--enable-tcl
+			--with-tcl="${EPREFIX}/usr/$(get_libdir)"
+		)
+	else
+		myconf+=(--disable-tcl )
+	fi
+
+	ECONF_SOURCE="${S}"/../dist STRIP="true" econf "${myconf[@]}"
+
+	# The embedded assembly on ARM does not work on newer hardware
+	# so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
+	# Specifically, it uses the SWPB op, which was deprecated:
+	# http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
+	# The op ALSO cannot be used in ARM-Thumb mode.
+	# Trust the compiler instead.
+	# >=db-6.1 uses LDREX instead.
+}
+
+multilib_src_test() {
+	multilib_is_native_abi || return
+
+	S="${BUILD_DIR}" db_src_test
+}
+
+multilib_src_install() {
+	emake install DESTDIR="${D}"
+
+	db_src_install_headerslot
+
+	db_src_install_usrlibcleanup
+}
+
+multilib_src_install_all() {
+	db_src_install_usrbinslot
+
+	db_src_install_doc
+
+	dodir /usr/sbin
+	# This file is not always built, and no longer exists as of db-4.8
+	if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED}"/usr/bin/berkeley_db_svc \
+			"${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
+
+	# no static libraries
+	find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+	multilib_foreach_abi db_fix_so
+}
+
+pkg_postrm() {
+	multilib_foreach_abi db_fix_so
+}

diff --git a/sys-libs/db/db-5.3.28-r10.ebuild b/sys-libs/db/db-5.3.28-r10.ebuild
new file mode 100644
index 000000000000..82b40466e113
--- /dev/null
+++ b/sys-libs/db/db-5.3.28-r10.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools db flag-o-matic multilib-minimal toolchain-funcs
+
+#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
+
+RESTRICT="!test? ( test )"
+
+S_BASE="${WORKDIR}/${MY_P}"
+S="${S_BASE}/build_unix"
+DESCRIPTION="Oracle Berkeley DB"
+HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html"
+SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz"
+for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do
+	SRC_URI+=" http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}"
+done
+
+LICENSE="Sleepycat"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="doc cxx tcl test"
+
+REQUIRED_USE="test? ( tcl )"
+
+# the entire testsuite needs the TCL functionality
+DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	test? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )"
+RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )"
+# bug #841698
+# Need binutils for tc-ld-force-bfd
+BDEPEND="
+	sys-devel/autoconf-archive
+	sys-devel/binutils:*
+"
+
+MULTILIB_WRAPPED_HEADERS=(
+	/usr/include/db${SLOT}/db.h
+)
+
+PATCHES=(
+	# sqlite configure call has an extra leading ..
+	# upstreamed:5.2.36, missing in 5.3.x
+	"${FILESDIR}"/${PN}-5.2.28-sqlite-configure-path.patch
+
+	# The upstream testsuite copies .lib and the binaries for each parallel test
+	# core, ~300MB each. This patch uses links instead, saves a lot of space.
+	"${FILESDIR}"/${PN}-6.0.20-test-link.patch
+
+	# Needed when compiling with clang
+	"${FILESDIR}"/${PN}-5.1.29-rename-atomic-compare-exchange.patch
+	"${FILESDIR}"/${PN}-5.3.28-clang16.patch
+	"${FILESDIR}"/${PN}-4.8.30-tls-configure.patch
+)
+
+src_prepare() {
+	cd "${S_BASE}" || die
+	for (( i=1 ; i<=${PATCHNO} ; i++ ))
+	do
+		eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	default
+
+	# Upstream release script grabs the dates when the script was run, so lets
+	# end-run them to keep the date the same.
+	export REAL_DB_RELEASE_DATE="$(awk \
+		'/^DB_VERSION_STRING=/{ gsub(".*\\(|\\).*","",$0); print $0; }' \
+		"${S_BASE}"/dist/configure)"
+	sed -r \
+		-e "/^DB_RELEASE_DATE=/s~=.*~='${REAL_DB_RELEASE_DATE}'~g" \
+		-i dist/RELEASE || die
+
+	cd dist || die
+	rm aclocal/libtool.m4 || die
+	sed \
+		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
+		-i configure.ac || die
+	sed \
+		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
+		-i aclocal/programs.m4 || die
+
+	AT_M4DIR="aclocal" eautoreconf
+
+	# They do autoconf and THEN replace the version variables :(
+	. ./RELEASE
+	local v ev
+	for v in \
+		DB_VERSION_{FAMILY,LETTER,RELEASE,MAJOR,MINOR} \
+		DB_VERSION_{PATCH,FULL,UNIQUE_NAME,STRING,FULL_STRING} \
+		DB_VERSION \
+		DB_RELEASE_DATE ; do
+		ev="__EDIT_${v}__"
+		sed -e "s/${ev}/${!v}/g" -i configure || die
+	done
+
+	# This is a false positive skip in the tests as the test-reviewer code
+	# looks for 'Skipping\s'
+	sed \
+		-e '/db_repsite/s,Skipping:,Skipping,g' \
+		-i "${S_BASE}"/test/tcl/reputils.tcl || die
+}
+
+src_configure() {
+	# Force bfd before calling multilib_toolchain_setup
+	tc-ld-force-bfd #470634 #729510
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+	local myconf=(
+		# sql_compat will cause a collision with sqlite3
+		#--enable-sql_compat
+		# Don't --enable-sql* because we don't want to use bundled sqlite.
+		# See Gentoo bug #605688
+		--enable-compat185
+		--enable-dbm
+		--enable-o_direct
+		--without-uniquename
+		--disable-sql
+		--disable-sql_codegen
+		--disable-sql_compat
+		--disable-static
+		--disable-java
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly)
+		$(use_enable cxx)
+		$(use_enable cxx stl)
+		$(use_enable test)
+	)
+
+	# compilation with -O0 fails on amd64, see bug #171231
+	if [[ ${ABI} == amd64 ]]; then
+		local CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}"
+		replace-flags -O0 -O2
+		is-flagq -O[s123] || append-flags -O2
+	fi
+
+	# Add linker versions to the symbols. Easier to do, and safer than header file
+	# mumbo jumbo.
+	append-ldflags -Wl,--default-symver
+
+	# Bug #270851: test needs TCL support
+	if use tcl || use test ; then
+		myconf+=(
+			--enable-tcl
+			--with-tcl="${EPREFIX}/usr/$(get_libdir)"
+		)
+	else
+		myconf+=(--disable-tcl )
+	fi
+
+	ECONF_SOURCE="${S_BASE}"/dist \
+	STRIP="true" \
+	econf "${myconf[@]}"
+
+	# The embedded assembly on ARM does not work on newer hardware
+	# so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
+	# Specifically, it uses the SWPB op, which was deprecated:
+	# http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
+	# The op ALSO cannot be used in ARM-Thumb mode.
+	# Trust the compiler instead.
+	# >=db-6.1 uses LDREX instead.
+}
+
+multilib_src_install() {
+	emake DESTDIR="${D}" install
+
+	db_src_install_headerslot
+
+	db_src_install_usrlibcleanup
+}
+
+multilib_src_install_all() {
+	db_src_install_usrbinslot
+
+	db_src_install_doc
+
+	dodir /usr/sbin
+	# This file is not always built, and no longer exists as of db-4.8
+	if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED}"/usr/bin/berkeley_db_svc \
+			"${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
+
+	# no static libraries
+	find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+	multilib_foreach_abi db_fix_so
+}
+
+pkg_postrm() {
+	multilib_foreach_abi db_fix_so
+}
+
+src_test() {
+	# db_repsite is impossible to build, as upstream strips those sources.
+	# db_repsite is used directly in the setup_site_prog,
+	# setup_site_prog is called from open_site_prog
+	# which is called only from tests in the multi_repmgr group.
+	#sed -ri \
+	#	-e '/set subs/s,multi_repmgr,,g' \
+	#	"${S_BASE}/test/testparams.tcl"
+	sed -r \
+		-e '/multi_repmgr/d' \
+		-i "${S_BASE}/test/tcl/test.tcl" || die
+
+	# This is the only failure in 5.2.28 so far, and looks like a false positive.
+	# Repmgr018 (btree): Test of repmgr stats.
+	#     Repmgr018.a: Start a master.
+	#     Repmgr018.b: Start a client.
+	#     Repmgr018.c: Run some transactions at master.
+	#         Rep_test: btree 20 key/data pairs starting at 0
+	#         Rep_test.a: put/get loop
+	# FAIL:07:05:59 (00:00:00) perm_no_failed_stat: expected 0, got 1
+	sed -r \
+		-e '/set parms.*repmgr018/d' \
+		-e 's/repmgr018//g' \
+		-i "${S_BASE}/test/tcl/test.tcl" || die
+
+	multilib-minimal_src_test
+}
+
+multilib_src_test() {
+	multilib_is_native_abi || return
+
+	S="${BUILD_DIR}" db_src_test
+}

diff --git a/sys-libs/db/db-6.0.35-r5.ebuild b/sys-libs/db/db-6.0.35-r5.ebuild
new file mode 100644
index 000000000000..f59d3811f5a4
--- /dev/null
+++ b/sys-libs/db/db-6.0.35-r5.ebuild
@@ -0,0 +1,234 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools db flag-o-matic multilib-minimal toolchain-funcs
+
+#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
+
+RESTRICT="!test? ( test )"
+
+S_BASE="${WORKDIR}/${MY_P}"
+S="${S_BASE}/build_unix"
+DESCRIPTION="Oracle Berkeley DB"
+HOMEPAGE="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html"
+SRC_URI="http://download.oracle.com/berkeley-db/${MY_P}.tar.gz"
+for (( i=1 ; i<=${PATCHNO} ; i++ )) ; do
+	SRC_URI+=" http://www.oracle.com/technology/products/berkeley-db/db/update/${MY_PV}/patch.${MY_PV}.${i}"
+done
+
+LICENSE="AGPL-3"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="doc cxx tcl test"
+
+REQUIRED_USE="test? ( tcl )"
+
+# the entire testsuite needs the TCL functionality
+DEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )
+	test? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )"
+RDEPEND="tcl? ( >=dev-lang/tcl-8.5.15-r1:0=[${MULTILIB_USEDEP}] )"
+# Need binutils for tc-ld-force-bfd
+BDEPEND="sys-devel/binutils:*"
+
+MULTILIB_WRAPPED_HEADERS=(
+	/usr/include/db${SLOT}/db.h
+)
+
+PATCHES=(
+	# sqlite configure call has an extra leading ..
+	# upstreamed:5.2.36, missing in 5.3.x/6.x
+	# still needs to be patched in 6.0.20
+	"${FILESDIR}"/${PN}-6.0.35-sqlite-configure-path.patch
+
+	# The upstream testsuite copies .lib and the binaries for each parallel test
+	# core, ~300MB each. This patch uses links instead, saves a lot of space.
+	"${FILESDIR}"/${PN}-6.0.20-test-link.patch
+
+	"${FILESDIR}"/${PN}-4.8.30-tls-configure.patch
+)
+
+src_prepare() {
+	cd "${S_BASE}" || die
+	for (( i=1 ; i<=${PATCHNO} ; i++ ))
+	do
+		eapply -p0 "${DISTDIR}"/patch."${MY_PV}"."${i}"
+	done
+
+	default
+
+	# Upstream release script grabs the dates when the script was run, so lets
+	# end-run them to keep the date the same.
+	export REAL_DB_RELEASE_DATE="$(awk \
+		'/^DB_VERSION_STRING=/{ gsub(".*\\(|\\).*","",$0); print $0; }' \
+		"${S_BASE}"/dist/configure)"
+	sed -r \
+		-e "/^DB_RELEASE_DATE=/s~=.*~='${REAL_DB_RELEASE_DATE}'~g" \
+		-i dist/RELEASE || die
+
+	cd dist || die
+	rm aclocal/libtool.m4 || die
+	sed \
+		-e '/AC_PROG_LIBTOOL$/aLT_OUTPUT' \
+		-i configure.ac || die
+	sed \
+		-e '/^AC_PATH_TOOL/s/ sh, none/ bash, none/' \
+		-i aclocal/programs.m4 || die
+
+	AT_M4DIR="aclocal" eautoreconf
+
+	# They do autoconf and THEN replace the version variables :(
+	. ./RELEASE
+	local v ev
+	for v in \
+		DB_VERSION_{FAMILY,LETTER,RELEASE,MAJOR,MINOR} \
+		DB_VERSION_{PATCH,FULL,UNIQUE_NAME,STRING,FULL_STRING} \
+		DB_VERSION \
+		DB_RELEASE_DATE ; do
+		ev="__EDIT_${v}__"
+		sed -e "s/${ev}/${!v}/g" -i configure || die
+	done
+
+	# This is a false positive skip in the tests as the test-reviewer code
+	# looks for 'Skipping\s'
+	sed \
+		-e '/db_repsite/s,Skipping:,Skipping,g' \
+		-i "${S_BASE}"/test/tcl/reputils.tcl || die
+}
+
+src_configure() {
+	# Force bfd before calling multilib_toolchain_setup
+	tc-ld-force-bfd #470634 #729510
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+	local myconf=(
+		--enable-compat185
+		--enable-dbm
+		--enable-o_direct
+		--without-uniquename
+		--disable-sql
+		--disable-sql_codegen
+		--disable-sql_compat
+		--disable-static
+		--disable-java
+		$([[ ${ABI} == amd64 ]] && echo --with-mutex=x86/gcc-assembly)
+		$(use_enable cxx)
+		$(use_enable cxx stl)
+		$(use_enable test)
+	)
+
+	# compilation with -O0 fails on amd64, see bug #171231
+	if [[ ${ABI} == amd64 ]]; then
+		local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
+		replace-flags -O0 -O2
+		is-flagq -O[s123] || append-flags -O2
+	fi
+
+	# Add linker versions to the symbols. Easier to do, and safer than header file
+	# mumbo jumbo.
+	append-ldflags -Wl,--default-symver
+
+	# Bug #270851: test needs TCL support
+	if use tcl || use test ; then
+		myconf+=(
+			--enable-tcl
+			--with-tcl="${EPREFIX}/usr/$(get_libdir)"
+		)
+	else
+		myconf+=(--disable-tcl )
+	fi
+
+	# sql_compat will cause a collision with sqlite3
+	# --enable-sql_compat
+	# Don't --enable-sql* because we don't want to use bundled sqlite.
+	# See Gentoo bug #605688
+	ECONF_SOURCE="${S_BASE}"/dist \
+	STRIP="true" \
+	econf "${myconf[@]}"
+
+	# The embedded assembly on ARM does not work on newer hardware
+	# so you CANNOT use --with-mutex=ARM/gcc-assembly anymore.
+	# Specifically, it uses the SWPB op, which was deprecated:
+	# http://www.keil.com/support/man/docs/armasm/armasm_dom1361289909499.htm
+	# The op ALSO cannot be used in ARM-Thumb mode.
+	# Trust the compiler instead.
+	# >=db-6.1 uses LDREX instead.
+}
+
+multilib_src_install() {
+	emake DESTDIR="${D}" install
+
+	db_src_install_headerslot
+
+	db_src_install_usrlibcleanup
+}
+
+multilib_src_install_all() {
+	db_src_install_usrbinslot
+
+	db_src_install_doc
+
+	dodir /usr/sbin
+	# This file is not always built, and no longer exists as of db-4.8
+	if [[ -f "${ED}"/usr/bin/berkeley_db_svc ]] ; then
+		mv "${ED}"/usr/bin/berkeley_db_svc \
+			"${ED}"/usr/sbin/berkeley_db"${SLOT/./}"_svc || die
+	fi
+
+	# no static libraries
+	find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+	multilib_foreach_abi db_fix_so
+}
+
+pkg_postrm() {
+	multilib_foreach_abi db_fix_so
+}
+
+src_test() {
+	# db_repsite is impossible to build, as upstream strips those sources.
+	# db_repsite is used directly in the setup_site_prog,
+	# setup_site_prog is called from open_site_prog
+	# which is called only from tests in the multi_repmgr group.
+	#sed -r \
+	#	-e '/set subs/s,multi_repmgr,,g' \
+	#	-i "${S_BASE}/test/testparams.tcl"
+	sed -r \
+		-e '/multi_repmgr/d' \
+		-i "${S_BASE}/test/tcl/test.tcl" || die
+
+	# This is the only failure in 5.2.28 so far, and looks like a false positive.
+	# Repmgr018 (btree): Test of repmgr stats.
+	#     Repmgr018.a: Start a master.
+	#     Repmgr018.b: Start a client.
+	#     Repmgr018.c: Run some transactions at master.
+	#         Rep_test: btree 20 key/data pairs starting at 0
+	#         Rep_test.a: put/get loop
+	# FAIL:07:05:59 (00:00:00) perm_no_failed_stat: expected 0, got 1
+	sed -r \
+		-e '/set parms.*repmgr018/d' \
+		-e 's/repmgr018//g' \
+		-i "${S_BASE}/test/tcl/test.tcl" || die
+
+	multilib-minimal_src_test
+}
+
+multilib_src_test() {
+	multilib_is_native_abi || return
+
+	S="${BUILD_DIR}" db_src_test
+}

diff --git a/sys-libs/db/files/db-4.8.30-tls-configure.patch b/sys-libs/db/files/db-4.8.30-tls-configure.patch
new file mode 100644
index 000000000000..e6aaa3259e19
--- /dev/null
+++ b/sys-libs/db/files/db-4.8.30-tls-configure.patch
@@ -0,0 +1,31 @@
+https://bugs.gentoo.org/898074
+https://bugs.gentoo.org/918936
+
+-ignoreme: warning: incompatible pointer to integer conversion passing 'pthread_key_t *' (aka 'unsigned int *') to parameter of type 'pthread_key_t' (aka 'unsigned int'); remove & [-Wint-conversion]
++ignoreme: error: incompatible pointer to integer conversion passing 'pthread_key_t *' (aka 'unsigned int *') to parameter of type 'pthread_key_t' (aka 'unsigned int'); remove & [-Wint-conversion]
+    34 |              return (void *)pthread_getspecific(&key);
+       |                                                 ^~~~
+ /usr/include/pthread.h:1305:49: note: passing argument to parameter '__key' here
+  1305 | extern void *pthread_getspecific (pthread_key_t __key) __THROW;
+       |                                                 ^
+-ignoreme: warning: incompatible pointer to integer conversion passing 'pthread_key_t *' (aka 'unsigned int *') to parameter of type 'pthread_key_t' (aka 'unsigned int'); remove & [-Wint-conversion]
++ignoreme: error: incompatible pointer to integer conversion passing 'pthread_key_t *' (aka 'unsigned int *') to parameter of type 'pthread_key_t' (aka 'unsigned int'); remove & [-Wint-conversion]
+    37 |               pthread_setspecific(&key, p);
+       |                                   ^~~~
+ /usr/include/pthread.h:1308:47: note: passing argument to parameter '__key' here
+  1308 | extern int pthread_setspecific (pthread_key_t __key,
+--- a/dist/aclocal/tls.m4
++++ b/dist/aclocal/tls.m4
+@@ -42,10 +42,10 @@ AC_DEFUN([AX_TLS], [
+              pthread_key_create(&key, NULL);
+          }
+          static void *get_tls() {
+-             return (void *)pthread_getspecific(&key);
++             return (void *)pthread_getspecific(key);
+          }
+          static void set_tls(void *p) {
+-              pthread_setspecific(&key, p);
++              pthread_setspecific(key, p);
+          }], [],
+          [ac_cv_tls=pthread])
+   fi


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-12-02  4:03 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-02  4:03 [gentoo-commits] repo/gentoo:master commit in: sys-libs/db/, sys-libs/db/files/ Sam James
  -- strict thread matches above, loose matches on Subject: below --
2022-06-20  5:04 Sam James
2021-01-24 18:28 Mike Gilbert
2020-08-26 15:21 Thomas Deutschmann
2019-11-07 23:23 Lars Wendler
2019-11-07 17:35 Lars Wendler
2019-01-25 14:47 Lars Wendler
2017-04-19  8:18 Lars Wendler
2016-06-04 19:04 Robin H. Johnson
2016-04-16 12:48 Lars Wendler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox