From 3fda85d3fef1fad04e37c214446cc1b759659ee2 Mon Sep 17 00:00:00 2001 From: Lars Wendler Date: Fri, 8 Nov 2019 00:21:09 +0100 Subject: [PATCH] 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 --- sys-libs/db/db-3.2.9_p2-r1.ebuild | 2 +- ...b-4.8.30-r2.ebuild => db-4.8.30-r3.ebuild} | 83 +++++----- ...b-5.1.29-r1.ebuild => db-5.1.29-r2.ebuild} | 142 +++++++++--------- ...b-5.3.28-r3.ebuild => db-5.3.28-r4.ebuild} | 133 ++++++++-------- ...b-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(-) rename sys-libs/db/{db-4.8.30-r2.ebuild => db-4.8.30-r3.ebuild} (80%) rename sys-libs/db/{db-5.1.29-r1.ebuild => db-5.1.29-r2.ebuild} (69%) rename sys-libs/db/{db-5.3.28-r3.ebuild => db-5.3.28-r4.ebuild} (75%) rename sys-libs/db/{db-6.0.35-r1.ebuild => db-6.0.35-r2.ebuild} (78%) 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 a575baafe1c96..5385f48b60623 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 23c185000655d..8479c2a10fb07 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 82fda831643c8..54548984ba629 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 3c5e210271735..db5f8b8a8c0a5 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 70e9cbe1da32a..3db37562bd968 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 f5d985b2f2099..0c3dbffb03cc8 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