summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-02-12 06:18:03 +0000
committerSam James <sam@gentoo.org>2023-02-12 06:18:03 +0000
commit675f20bce1d8ec148072e6447dc4a365d2c9936a (patch)
tree504bd607b99639d82fae85eabf49068cc9e36c64 /sys-apps
parentsys-apps/rng-tools: Stabilize 6.16 amd64, #893112 (diff)
downloadgentoo-675f20bce1d8ec148072e6447dc4a365d2c9936a.tar.gz
gentoo-675f20bce1d8ec148072e6447dc4a365d2c9936a.tar.bz2
gentoo-675f20bce1d8ec148072e6447dc4a365d2c9936a.zip
sys-apps/diffutils: backport regression fix for -D
This also fixes the groff tests. Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/diffutils/diffutils-3.9-r1.ebuild58
-rw-r--r--sys-apps/diffutils/files/diffutils-3.9-diff-D-option-regression.patch27
2 files changed, 85 insertions, 0 deletions
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 <eggert@cs.ucla.edu>
+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)