commit:     d2adbf791493b27c42120df242478d5e3b35a9cc
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Sep  7 22:51:23 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Sep  7 22:51:29 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d2adbf79

net-misc/rsync: fix build w/ clang 15

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../rsync/files/rsync-3.2.5-pedantic-errors.patch  | 53 ++++++++++++++++++++++
 net-misc/rsync/rsync-3.2.5-r1.ebuild               | 12 ++++-
 net-misc/rsync/rsync-9999.ebuild                   |  8 +++-
 3 files changed, 71 insertions(+), 2 deletions(-)

diff --git a/net-misc/rsync/files/rsync-3.2.5-pedantic-errors.patch 
b/net-misc/rsync/files/rsync-3.2.5-pedantic-errors.patch
new file mode 100644
index 000000000000..33afbd954a12
--- /dev/null
+++ b/net-misc/rsync/files/rsync-3.2.5-pedantic-errors.patch
@@ -0,0 +1,53 @@
+https://github.com/WayneD/rsync/commit/9a3449a3980421f84ac55498ba565bc112b20d6c
+
+In particular, avoids attr configure test failing.
+
+From 9a3449a3980421f84ac55498ba565bc112b20d6c Mon Sep 17 00:00:00 2001
+From: Wayne Davison <wa...@opencoder.net>
+Date: Thu, 18 Aug 2022 17:33:54 -0700
+Subject: [PATCH] Stop enabling -pedantic-errors.
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -1071,21 +1071,6 @@ elif test x"$ac_cv_header_popt_h" != x"yes"; then
+     with_included_popt=yes
+ fi
+ 
+-if test x"$GCC" = x"yes"; then
+-    if test x"$with_included_popt" != x"yes"; then
+-      # Turn pedantic warnings into errors to ensure an array-init overflow 
is an error.
+-      CFLAGS="$CFLAGS -pedantic-errors"
+-    else
+-      # Our internal popt code cannot be compiled with pedantic warnings as 
errors, so try to
+-      # turn off pedantic warnings (which will not lose the error for 
array-init overflow).
+-      # Older gcc versions don't understand -Wno-pedantic, so check if 
--help=warnings lists
+-      # -Wpedantic and use that as a flag.
+-      case `$CC --help=warnings 2>/dev/null | grep Wpedantic` in
+-          *-Wpedantic*) CFLAGS="$CFLAGS -pedantic-errors -Wno-pedantic" ;;
+-      esac
+-    fi
+-fi
+-
+ AC_MSG_CHECKING([whether to use included libpopt])
+ if test x"$with_included_popt" = x"yes"; then
+     AC_MSG_RESULT($srcdir/popt)
+
+--- a/configure.sh
++++ b/configure.sh
+@@ -9982,14 +9982,14 @@ fi
+ if test x"$GCC" = x"yes"; then
+     if test x"$with_included_popt" != x"yes"; then
+       # Turn pedantic warnings into errors to ensure an array-init overflow 
is an error.
+-      CFLAGS="$CFLAGS -pedantic-errors"
++      CFLAGS="$CFLAGS "
+     else
+       # Our internal popt code cannot be compiled with pedantic warnings as 
errors, so try to
+       # turn off pedantic warnings (which will not lose the error for 
array-init overflow).
+       # Older gcc versions don't understand -Wno-pedantic, so check if 
--help=warnings lists
+       # -Wpedantic and use that as a flag.
+       case `$CC --help=warnings 2>/dev/null | grep Wpedantic` in
+-          *-Wpedantic*) CFLAGS="$CFLAGS -pedantic-errors -Wno-pedantic" ;;
++          *-Wpedantic*) CFLAGS="$CFLAGS  -Wno-pedantic" ;;
+       esac
+     fi
+ fi

diff --git a/net-misc/rsync/rsync-3.2.5-r1.ebuild 
b/net-misc/rsync/rsync-3.2.5-r1.ebuild
index 1abfebf444ed..6e6e4bd34c3e 100644
--- a/net-misc/rsync/rsync-3.2.5-r1.ebuild
+++ b/net-misc/rsync/rsync-3.2.5-r1.ebuild
@@ -3,6 +3,8 @@
 
 EAPI=8
 
+# Uncomment when introducing a patch which touches configure
+RSYNC_NEEDS_AUTOCONF=1
 PYTHON_COMPAT=( python3_{8..10} )
 inherit prefix python-single-r1 systemd
 
@@ -17,6 +19,10 @@ else
        
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/waynedavison.asc
        inherit verify-sig
 
+       if [[ -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then
+               inherit autotools
+       fi
+
        if [[ ${PV} == *_pre* ]] ; then
                SRC_DIR="src-previews"
        else
@@ -60,6 +66,10 @@ else
        BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-waynedavison )"
 fi
 
+PATCHES=(
+       "${FILESDIR}"/${P}-pedantic-errors.patch
+)
+
 pkg_setup() {
        # - USE=examples needs Python itself at runtime, but nothing else
        # - 9999 needs commonmark at build time
@@ -71,7 +81,7 @@ pkg_setup() {
 src_prepare() {
        default
 
-       if [[ ${PV} == *9999 ]] ; then
+       if [[ ${PV} == *9999 || -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then
                eaclocal -I m4
                eautoconf -o configure.sh
                eautoheader && touch config.h.in

diff --git a/net-misc/rsync/rsync-9999.ebuild b/net-misc/rsync/rsync-9999.ebuild
index 1abfebf444ed..804909ae11e6 100644
--- a/net-misc/rsync/rsync-9999.ebuild
+++ b/net-misc/rsync/rsync-9999.ebuild
@@ -3,6 +3,8 @@
 
 EAPI=8
 
+# Uncomment when introducing a patch which touches configure
+#RSYNC_NEEDS_AUTOCONF=1
 PYTHON_COMPAT=( python3_{8..10} )
 inherit prefix python-single-r1 systemd
 
@@ -17,6 +19,10 @@ else
        
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/waynedavison.asc
        inherit verify-sig
 
+       if [[ -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then
+               inherit autotools
+       fi
+
        if [[ ${PV} == *_pre* ]] ; then
                SRC_DIR="src-previews"
        else
@@ -71,7 +77,7 @@ pkg_setup() {
 src_prepare() {
        default
 
-       if [[ ${PV} == *9999 ]] ; then
+       if [[ ${PV} == *9999 || -n ${RSYNC_NEEDS_AUTOCONF} ]] ; then
                eaclocal -I m4
                eautoconf -o configure.sh
                eautoheader && touch config.h.in

Reply via email to