commit:     675f20bce1d8ec148072e6447dc4a365d2c9936a
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 12 06:18:03 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Feb 12 06:18:03 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=675f20bc

sys-apps/diffutils: backport regression fix for -D

This also fixes the groff tests.

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

 sys-apps/diffutils/diffutils-3.9-r1.ebuild         | 58 ++++++++++++++++++++++
 .../diffutils-3.9-diff-D-option-regression.patch   | 27 ++++++++++
 2 files changed, 85 insertions(+)

diff --git a/sys-apps/diffutils/diffutils-3.9-r1.ebuild 
b/sys-apps/diffutils/diffutils-3.9-r1.ebuild
new file mode 100644
index 000000000000..b33f99dcdb75
--- /dev/null
+++ b/sys-apps/diffutils/diffutils-3.9-r1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/diffutils.asc
+inherit flag-o-matic verify-sig
+
+DESCRIPTION="Tools to make diffs and compare files"
+HOMEPAGE="https://www.gnu.org/software/diffutils/";
+
+if [[ ${PV} == *_p* ]] ; then
+       # Subscribe to the 'platform-testers' ML to find these.
+       # Useful to test on our especially more niche arches and report issues 
upstream.
+       MY_COMMIT="43-2d50"
+       MY_P=${PN}-$(ver_cut 1-2).${MY_COMMIT}
+       SRC_URI="https://meyering.net/diff/${MY_P}.tar.xz";
+       SRC_URI+=" verify-sig? ( https://meyering.net/diff/${MY_P}.tar.xz.sig )"
+       S="${WORKDIR}"/${MY_P}
+else
+       SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+       SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos 
~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="nls static"
+
+BDEPEND="
+       nls? ( sys-devel/gettext )
+       verify-sig? ( sec-keys/openpgp-keys-diffutils )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-make-4.4-test-color.patch
+       "${FILESDIR}"/${P}-diff-D-option-regression.patch
+)
+
+src_configure() {
+       use static && append-ldflags -static
+
+       # Disable automagic dependency over libsigsegv; see bug #312351.
+       export ac_cv_libsigsegv=no
+
+       # required for >=glibc-2.26, bug #653914
+       use elibc_glibc && export gl_cv_func_getopt_gnu=yes
+
+       local myeconfargs=(
+               # Interferes with F_S (sets F_S=2)
+               --disable-gcc-warnings
+               --with-packager="Gentoo"
+               --with-packager-version="${PVR}"
+               --with-packager-bug-reports="https://bugs.gentoo.org/";
+               $(use_enable nls)
+       )
+       econf "${myeconfargs[@]}"
+}

diff --git 
a/sys-apps/diffutils/files/diffutils-3.9-diff-D-option-regression.patch 
b/sys-apps/diffutils/files/diffutils-3.9-diff-D-option-regression.patch
new file mode 100644
index 000000000000..a12e1bc673a0
--- /dev/null
+++ b/sys-apps/diffutils/files/diffutils-3.9-diff-D-option-regression.patch
@@ -0,0 +1,27 @@
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61193
+https://git.savannah.gnu.org/cgit/groff.git/commit/?id=10274fb69e517b2c4b10fcd0ba3347e5bd0eefd7
+https://git.savannah.gnu.org/cgit/diffutils.git/commit/?id=ba08fbbb0ca5da455bf695236c57bc50e7faed50
+
+From ba08fbbb0ca5da455bf695236c57bc50e7faed50 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <[email protected]>
+Date: Fri, 10 Feb 2023 15:33:40 -0800
+Subject: diff: fix bug where -D does not work
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Problem reported by Robert Webb (bug#61193).
+* src/diff.c (main): Omit stray ‘sizeof’.
+* tests/ifdef: New test.
+* tests/Makefile.am (TESTS): Add it.
+--- a/src/diff.c
++++ b/src/diff.c
+@@ -416,7 +416,7 @@ main (int argc, char **argv)
+           char *base = b;
+           int changes = 0;
+ 
+-          for (i = 0; i < sizeof sizeof C_ifdef_group_formats; i++)
++          for (i = 0; i < sizeof C_ifdef_group_formats; i++)
+             {
+               char ch = C_ifdef_group_formats[i];
+               switch (ch)

Reply via email to