commit:     4fed9a6d9b0ae81fff6b7a7390fea76e8e59d826
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Feb  7 01:51:11 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Feb  7 02:07:53 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4fed9a6d

sys-apps/man-db: add 2.10.0

Now defaults to gdbm, but can use berkdb to switch back to that
instead if desired.

This doesn't change the default for anybody as USE="+gdbm" has
been in profiles for a long time and we dropped USE="+berkdb" in profiles
a while ago. Plus, when in doubt, the ebuild used to go for USE=gdbm when
both were set. So, this is just a cleanup of the existing logic.

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

 sys-apps/man-db/Manifest                           |  1 +
 .../files/man-db-2.10.0-fix-build-clang.patch      | 44 ++++++++++++++
 .../files/man-db-2.9.3-darwin-libdb-intl.patch     |  2 +
 .../{man-db-9999.ebuild => man-db-2.10.0.ebuild}   | 69 ++++++++++------------
 sys-apps/man-db/man-db-9999.ebuild                 | 67 ++++++++++-----------
 5 files changed, 109 insertions(+), 74 deletions(-)

diff --git a/sys-apps/man-db/Manifest b/sys-apps/man-db/Manifest
index 1125c257db2f..f1ed8e06a426 100644
--- a/sys-apps/man-db/Manifest
+++ b/sys-apps/man-db/Manifest
@@ -1 +1,2 @@
+DIST man-db-2.10.0.tar.xz 1888196 BLAKE2B 
02aed8a8d490b4e481c42790b8783768bf4adcab1430f2e06d2a1b22a4c769dd3978800e609d221da1dcc25032e096ad9ba8580e2ff8a72e8b19dbda573562b4
 SHA512 
de9c9f3dd9e6a578eb99aca0d04ce5c98cf6733e83e3be5299b6cafc4aad202896429a263a34111529eccdf07c353438afdade278818fc5d884471df7a4816c9
 DIST man-db-2.9.4.tar.xz 1909020 BLAKE2B 
43427e851f0e661ca1cee55211dd7636f4ffde067c75de7715f525029b22c205728f8e86ac49abff60e47a4a4c9e1fbd78e2c87e70bd37778b88594a3897275f
 SHA512 
169f091dd0a1d0dbd1583366f8257afb8f57e030d0f7d4213c14ce0b1fc5debf8b9cf2731de503830cb2826b3a22b3cff7da993d44ec18557935bd293529133c

diff --git a/sys-apps/man-db/files/man-db-2.10.0-fix-build-clang.patch 
b/sys-apps/man-db/files/man-db-2.10.0-fix-build-clang.patch
new file mode 100644
index 000000000000..2896301008ad
--- /dev/null
+++ b/sys-apps/man-db/files/man-db-2.10.0-fix-build-clang.patch
@@ -0,0 +1,44 @@
+https://gitlab.com/cjwatson/man-db/-/commit/f4f94402834f20b9da730aeca5daa465be38efdf
+https://gitlab.com/cjwatson/man-db/-/issues/2
+
+From f4f94402834f20b9da730aeca5daa465be38efdf Mon Sep 17 00:00:00 2001
+From: Colin Watson <cjwat...@debian.org>
+Date: Sun, 6 Feb 2022 12:37:01 +0000
+Subject: [PATCH] Revert "Reduce indentation depth using C99"
+
+This reverts commit c4d20840f3487588c4a0da4397b1acb6dc83a1e5.  Even in
+C99, a declaration isn't valid immediately after a label; this didn't
+become valid until C2x, although gcc allows it as an extension.
+
+Fixes https://gitlab.com/cjwatson/man-db/-/issues/2.
+
+* src/man.c (parse_opt): Restore enclosing block for OPT_WARNINGS.
+--- a/src/man.c
++++ b/src/man.c
+@@ -383,15 +383,18 @@ static error_t parse_opt (int key, char *arg, struct 
argp_state *state)
+ 
+               case OPT_WARNINGS:
+ #ifdef NROFF_WARNINGS
+-                      char *s = xstrdup (arg ? arg : default_roff_warnings);
+-                      const char *warning;
++                      {
++                              char *s = xstrdup
++                                      (arg ? arg : default_roff_warnings);
++                              const char *warning;
+ 
+-                      for (warning = strtok (s, ","); warning;
+-                           warning = strtok (NULL, ","))
+-                              gl_list_add_last (roff_warnings,
+-                                                xstrdup (warning));
++                              for (warning = strtok (s, ","); warning;
++                                   warning = strtok (NULL, ","))
++                                      gl_list_add_last (roff_warnings,
++                                                        xstrdup (warning));
+ 
+-                      free (s);
++                              free (s);
++                      }
+ #endif /* NROFF_WARNINGS */
+                       return 0;
+ 
+GitLab

diff --git a/sys-apps/man-db/files/man-db-2.9.3-darwin-libdb-intl.patch 
b/sys-apps/man-db/files/man-db-2.9.3-darwin-libdb-intl.patch
index a7df3c62fd06..71cbb1c20df6 100644
--- a/sys-apps/man-db/files/man-db-2.9.3-darwin-libdb-intl.patch
+++ b/sys-apps/man-db/files/man-db-2.9.3-darwin-libdb-intl.patch
@@ -1,3 +1,5 @@
+https://gitlab.com/cjwatson/man-db/-/merge_requests/3
+
 libdb: link against libintl
 
 necessary since gettext is used for translations

diff --git a/sys-apps/man-db/man-db-9999.ebuild 
b/sys-apps/man-db/man-db-2.10.0.ebuild
similarity index 78%
copy from sys-apps/man-db/man-db-9999.ebuild
copy to sys-apps/man-db/man-db-2.10.0.ebuild
index e673f4391432..6948c20167a5 100644
--- a/sys-apps/man-db/man-db-9999.ebuild
+++ b/sys-apps/man-db/man-db-2.10.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -6,64 +6,54 @@ EAPI=7
 inherit systemd prefix tmpfiles
 
 DESCRIPTION="A man replacement that utilizes berkdb instead of flat files"
-HOMEPAGE="http://www.nongnu.org/man-db/";
-if [[ "${PV}" = 9999* ]] ; then
+HOMEPAGE="https://gitlab.com/cjwatson/man-db https://www.nongnu.org/man-db/";
+if [[ ${PV} == *9999 ]] ; then
        inherit autotools git-r3
-       EGIT_REPO_URI="https://git.savannah.gnu.org/git/man-db.git";
+       EGIT_REPO_URI="https://gitlab.com/cjwatson/man-db.git";
 else
+       # TODO: Change tarballs to gitlab too...?
        SRC_URI="mirror://nongnu/${PN}/${P}.tar.xz"
-       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos 
~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
 fi
 
 LICENSE="GPL-3"
 SLOT="0"
-IUSE="berkdb +gdbm +manpager nls +seccomp selinux static-libs zlib"
+IUSE="berkdb +manpager nls +seccomp selinux static-libs zlib"
 
-CDEPEND="
-       !sys-apps/man
+CDEPEND="!sys-apps/man
        >=dev-libs/libpipeline-1.5.0
        sys-apps/groff
-       gdbm? ( sys-libs/gdbm:= )
-       !gdbm? ( berkdb? ( sys-libs/db:= ) )
-       !berkdb? ( !gdbm? ( sys-libs/gdbm:= ) )
+       !berkdb? ( sys-libs/gdbm:= )
+       berkdb? ( sys-libs/db:= )
        seccomp? ( sys-libs/libseccomp )
-       zlib? ( sys-libs/zlib )
-"
+       zlib? ( sys-libs/zlib )"
 DEPEND="${CDEPEND}"
-BDEPEND="
-       app-arch/xz-utils
+BDEPEND="app-arch/xz-utils
        virtual/pkgconfig
        nls? (
                >=app-text/po4a-0.45
                sys-devel/gettext
                virtual/libiconv
                virtual/libintl
-       )
-"
-RDEPEND="
-       ${CDEPEND}
+       )"
+RDEPEND="${CDEPEND}
        acct-group/man
        acct-user/man
-       selinux? ( sec-policy/selinux-mandb )
-"
+       selinux? ( sec-policy/selinux-mandb )"
 PDEPEND="manpager? ( app-text/manpager )"
 
 PATCHES=(
        "${FILESDIR}"/man-db-2.9.3-sandbox-env-tests.patch
        "${FILESDIR}"/man-db-2.9.3-darwin-libdb-intl.patch
-)
 
-pkg_setup() {
-       if (use gdbm && use berkdb) || (use !gdbm && use !berkdb) ; then #496150
-               ewarn "Defaulting to USE=gdbm due to ambiguous berkdb/gdbm USE 
flag settings"
-       fi
-}
+       "${FILESDIR}"/${P}-fix-build-clang.patch
+)
 
 src_unpack() {
-       if [[ "${PV}" == *9999 ]] ; then
+       if [[ ${PV} == *9999 ]] ; then
                git-r3_src_unpack
 
-               # We need to mess with gnulib :-/
+               # We need to mess with gnulib
                EGIT_REPO_URI="https://git.savannah.gnu.org/r/gnulib.git"; \
                EGIT_CHECKOUT_DIR="${WORKDIR}/gnulib" \
                git-r3_src_unpack
@@ -74,6 +64,7 @@ src_unpack() {
 
 src_prepare() {
        default
+
        if [[ "${PV}" == *9999 ]] ; then
                local bootstrap_opts=(
                        --gnulib-srcdir=../gnulib
@@ -101,7 +92,7 @@ src_prepare() {
 }
 
 src_configure() {
-       # set sections we want to search by default
+       # Set sections we want to search by default
        local sections="1 1p 8 2 3 3p 4 5 6 7 9 0p tcl n l p o"
        sections+=" 1x 2x 3x 4x 5x 6x 7x 8x"
        case ${CHOST} in
@@ -121,25 +112,29 @@ src_configure() {
        local myeconfargs=(
                --with-systemdtmpfilesdir="${EPREFIX}"/usr/lib/tmpfiles.d
                --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
-               --disable-setuid #662438
+               --disable-setuid # bug #662438
                --enable-cache-owner=man
                --with-sections="${sections}"
+
                $(use_enable nls)
                $(use_enable static-libs static)
                $(use_with seccomp libseccomp)
-               --with-db=$(usex gdbm gdbm $(usex berkdb db gdbm))
+
+               --with-db=$(usex berkdb db gdbm)
        )
+
        case ${CHOST} in
                *-solaris*|*-darwin*)
                        myeconfargs+=(
-                               $(use_with nls libiconv-prefix ${EPREFIX}/usr)
-                               $(use_with nls libintl-prefix ${EPREFIX}/usr)
+                               $(use_with nls libiconv-prefix "${EPREFIX}"/usr)
+                               $(use_with nls libintl-prefix "${EPREFIX}"/usr)
                        )
                        ;;
        esac
+
        econf "${myeconfargs[@]}"
 
-       # Disable color output from groff so that the manpager can add it. 
#184604
+       # Disable color output from groff so that the manpager can add it. bug 
#184604
        sed -i \
                -e '/^#DEFINE.*\<[nt]roff\>/{s:^#::;s:$: -c:}' \
                src/man_db.conf || die
@@ -151,11 +146,11 @@ src_configure() {
 
 src_install() {
        default
-       dodoc docs/{HACKING,TODO}
+       dodoc docs/{HACKING.md,TODO}
        find "${ED}" -type f -name "*.la" -delete || die
 
        exeinto /etc/cron.daily
-       newexe "${FILESDIR}"/man-db.cron-r1 man-db #289884
+       newexe "${FILESDIR}"/man-db.cron-r1 man-db # bug #289884
 
        insinto /etc/sandbox.d
        doins 15man-db

diff --git a/sys-apps/man-db/man-db-9999.ebuild 
b/sys-apps/man-db/man-db-9999.ebuild
index e673f4391432..c0406d043a09 100644
--- a/sys-apps/man-db/man-db-9999.ebuild
+++ b/sys-apps/man-db/man-db-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -6,46 +6,40 @@ EAPI=7
 inherit systemd prefix tmpfiles
 
 DESCRIPTION="A man replacement that utilizes berkdb instead of flat files"
-HOMEPAGE="http://www.nongnu.org/man-db/";
-if [[ "${PV}" = 9999* ]] ; then
+HOMEPAGE="https://gitlab.com/cjwatson/man-db https://www.nongnu.org/man-db/";
+if [[ ${PV} == *9999 ]] ; then
        inherit autotools git-r3
-       EGIT_REPO_URI="https://git.savannah.gnu.org/git/man-db.git";
+       EGIT_REPO_URI="https://gitlab.com/cjwatson/man-db.git";
 else
+       # TODO: Change tarballs to gitlab too...?
        SRC_URI="mirror://nongnu/${PN}/${P}.tar.xz"
-       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos 
~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
 fi
 
 LICENSE="GPL-3"
 SLOT="0"
-IUSE="berkdb +gdbm +manpager nls +seccomp selinux static-libs zlib"
+IUSE="berkdb +manpager nls +seccomp selinux static-libs zlib"
 
-CDEPEND="
-       !sys-apps/man
+CDEPEND="!sys-apps/man
        >=dev-libs/libpipeline-1.5.0
        sys-apps/groff
-       gdbm? ( sys-libs/gdbm:= )
-       !gdbm? ( berkdb? ( sys-libs/db:= ) )
-       !berkdb? ( !gdbm? ( sys-libs/gdbm:= ) )
+       !berkdb? ( sys-libs/gdbm:= )
+       berkdb? ( sys-libs/db:= )
        seccomp? ( sys-libs/libseccomp )
-       zlib? ( sys-libs/zlib )
-"
+       zlib? ( sys-libs/zlib )"
 DEPEND="${CDEPEND}"
-BDEPEND="
-       app-arch/xz-utils
+BDEPEND="app-arch/xz-utils
        virtual/pkgconfig
        nls? (
                >=app-text/po4a-0.45
                sys-devel/gettext
                virtual/libiconv
                virtual/libintl
-       )
-"
-RDEPEND="
-       ${CDEPEND}
+       )"
+RDEPEND="${CDEPEND}
        acct-group/man
        acct-user/man
-       selinux? ( sec-policy/selinux-mandb )
-"
+       selinux? ( sec-policy/selinux-mandb )"
 PDEPEND="manpager? ( app-text/manpager )"
 
 PATCHES=(
@@ -53,17 +47,11 @@ PATCHES=(
        "${FILESDIR}"/man-db-2.9.3-darwin-libdb-intl.patch
 )
 
-pkg_setup() {
-       if (use gdbm && use berkdb) || (use !gdbm && use !berkdb) ; then #496150
-               ewarn "Defaulting to USE=gdbm due to ambiguous berkdb/gdbm USE 
flag settings"
-       fi
-}
-
 src_unpack() {
-       if [[ "${PV}" == *9999 ]] ; then
+       if [[ ${PV} == *9999 ]] ; then
                git-r3_src_unpack
 
-               # We need to mess with gnulib :-/
+               # We need to mess with gnulib
                EGIT_REPO_URI="https://git.savannah.gnu.org/r/gnulib.git"; \
                EGIT_CHECKOUT_DIR="${WORKDIR}/gnulib" \
                git-r3_src_unpack
@@ -74,6 +62,7 @@ src_unpack() {
 
 src_prepare() {
        default
+
        if [[ "${PV}" == *9999 ]] ; then
                local bootstrap_opts=(
                        --gnulib-srcdir=../gnulib
@@ -101,7 +90,7 @@ src_prepare() {
 }
 
 src_configure() {
-       # set sections we want to search by default
+       # Set sections we want to search by default
        local sections="1 1p 8 2 3 3p 4 5 6 7 9 0p tcl n l p o"
        sections+=" 1x 2x 3x 4x 5x 6x 7x 8x"
        case ${CHOST} in
@@ -121,25 +110,29 @@ src_configure() {
        local myeconfargs=(
                --with-systemdtmpfilesdir="${EPREFIX}"/usr/lib/tmpfiles.d
                --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
-               --disable-setuid #662438
+               --disable-setuid # bug #662438
                --enable-cache-owner=man
                --with-sections="${sections}"
+
                $(use_enable nls)
                $(use_enable static-libs static)
                $(use_with seccomp libseccomp)
-               --with-db=$(usex gdbm gdbm $(usex berkdb db gdbm))
+
+               --with-db=$(usex berkdb db gdbm)
        )
+
        case ${CHOST} in
                *-solaris*|*-darwin*)
                        myeconfargs+=(
-                               $(use_with nls libiconv-prefix ${EPREFIX}/usr)
-                               $(use_with nls libintl-prefix ${EPREFIX}/usr)
+                               $(use_with nls libiconv-prefix "${EPREFIX}"/usr)
+                               $(use_with nls libintl-prefix "${EPREFIX}"/usr)
                        )
                        ;;
        esac
+
        econf "${myeconfargs[@]}"
 
-       # Disable color output from groff so that the manpager can add it. 
#184604
+       # Disable color output from groff so that the manpager can add it. bug 
#184604
        sed -i \
                -e '/^#DEFINE.*\<[nt]roff\>/{s:^#::;s:$: -c:}' \
                src/man_db.conf || die
@@ -151,11 +144,11 @@ src_configure() {
 
 src_install() {
        default
-       dodoc docs/{HACKING,TODO}
+       dodoc docs/{HACKING.md,TODO}
        find "${ED}" -type f -name "*.la" -delete || die
 
        exeinto /etc/cron.daily
-       newexe "${FILESDIR}"/man-db.cron-r1 man-db #289884
+       newexe "${FILESDIR}"/man-db.cron-r1 man-db # bug #289884
 
        insinto /etc/sandbox.d
        doins 15man-db

Reply via email to