From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gentoo-commits+bounces-1727672-garchives=archives.gentoo.org@lists.gentoo.org> Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id B7E941584F2 for <garchives@archives.gentoo.org>; Fri, 14 Mar 2025 06:46:28 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 978CC342F92 for <garchives@archives.gentoo.org>; Fri, 14 Mar 2025 06:46:28 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id A07291103C7; Fri, 14 Mar 2025 06:46:27 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 97B1A1103C7 for <gentoo-commits@lists.gentoo.org>; Fri, 14 Mar 2025 06:46:27 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4842C342F92 for <gentoo-commits@lists.gentoo.org>; Fri, 14 Mar 2025 06:46:27 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id A02B81772 for <gentoo-commits@lists.gentoo.org>; Fri, 14 Mar 2025 06:46:25 +0000 (UTC) From: "Sam James" <sam@gentoo.org> To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" <sam@gentoo.org> Message-ID: <1741934749.277ce2dbccc1a02ddf2676c0ce4c39683b49de2f.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/diffutils/files/, sys-apps/diffutils/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-apps/diffutils/diffutils-3.11-r2.ebuild sys-apps/diffutils/files/diffutils-3.11-allocation-crash.patch sys-apps/diffutils/files/diffutils-3.11-empty-files.patch sys-apps/diffutils/files/diffutils-3.11-tests-seq.patch X-VCS-Directories: sys-apps/diffutils/files/ sys-apps/diffutils/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 277ce2dbccc1a02ddf2676c0ce4c39683b49de2f X-VCS-Branch: master Date: Fri, 14 Mar 2025 06:46:25 +0000 (UTC) Precedence: bulk List-Post: <mailto:gentoo-commits@lists.gentoo.org> List-Help: <mailto:gentoo-commits+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org> X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 6c7e0617-6399-45af-a6e2-97e2068bcaa7 X-Archives-Hash: cf7fbe28dcf2345f15a48a8e7c213817 commit: 277ce2dbccc1a02ddf2676c0ce4c39683b49de2f Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Fri Mar 14 06:45:49 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Fri Mar 14 06:45:49 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=277ce2db sys-apps/diffutils: backport regression fixes to 3.11 Signed-off-by: Sam James <sam <AT> gentoo.org> sys-apps/diffutils/diffutils-3.11-r2.ebuild | 67 +++++++++++++++++ .../files/diffutils-3.11-allocation-crash.patch | 29 ++++++++ .../files/diffutils-3.11-empty-files.patch | 83 ++++++++++++++++++++++ .../diffutils/files/diffutils-3.11-tests-seq.patch | 64 +++++++++++++++++ 4 files changed, 243 insertions(+) diff --git a/sys-apps/diffutils/diffutils-3.11-r2.ebuild b/sys-apps/diffutils/diffutils-3.11-r2.ebuild new file mode 100644 index 000000000000..22e8514a4f1f --- /dev/null +++ b/sys-apps/diffutils/diffutils-3.11-r2.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/diffutils.asc +inherit 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="242-d65b" + 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 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="nls" + +BDEPEND=" + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-diffutils ) +" +RDEPEND=" + nls? ( app-i18n/gnulib-l10n ) +" + +PATCHES=( + "${FILESDIR}"/${P}-empty-files.patch + "${FILESDIR}"/${P}-tests-seq.patch + "${FILESDIR}"/${P}-allocation-crash.patch +) + +src_prepare() { + default + + # Needed because of ${P}-diff-D-option-regression.patch + #touch man/diff.1 || die +} + +src_configure() { + # 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.11-allocation-crash.patch b/sys-apps/diffutils/files/diffutils-3.11-allocation-crash.patch new file mode 100644 index 000000000000..3f80cd7e7c69 --- /dev/null +++ b/sys-apps/diffutils/files/diffutils-3.11-allocation-crash.patch @@ -0,0 +1,29 @@ +https://git.savannah.gnu.org/cgit/diffutils.git/commit/?id=e9f8e6a439fd607adbdd846ab93267dc367b5c79 + +From e9f8e6a439fd607adbdd846ab93267dc367b5c79 Mon Sep 17 00:00:00 2001 +From: Paul Eggert <eggert@cs.ucla.edu> +Date: Fri, 28 Feb 2025 22:53:28 -0800 +Subject: diff: fix allocation typo leading to crashes + +But reported by Nick Smallbone, with one-line fix by +Collin Funk <https://bugs.gnu.org/76613>. +* src/io.c (find_and_hash_each_line): Fix size computation. +--- + src/io.c | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +--- a/src/io.c ++++ b/src/io.c +@@ -1012,7 +1012,7 @@ find_and_hash_each_line (struct file_data *current) + linbuf += linbuf_base; + linbuf = xpalloc (linbuf, &n, 1, -1, sizeof *linbuf); + linbuf -= linbuf_base; +- alloc_lines = n - linbuf_base; ++ alloc_lines = linbuf_base + n; + } + linbuf[line] = p; + +-- +cgit v1.1 + + diff --git a/sys-apps/diffutils/files/diffutils-3.11-empty-files.patch b/sys-apps/diffutils/files/diffutils-3.11-empty-files.patch new file mode 100644 index 000000000000..1f78bce8d972 --- /dev/null +++ b/sys-apps/diffutils/files/diffutils-3.11-empty-files.patch @@ -0,0 +1,83 @@ +https://git.savannah.gnu.org/cgit/diffutils.git/commit/?id=6ce0ebd033c395265c262ae3aab6477a49d4c2f1 + +From 6ce0ebd033c395265c262ae3aab6477a49d4c2f1 Mon Sep 17 00:00:00 2001 +From: Paul Eggert <eggert@cs.ucla.edu> +Date: Thu, 20 Feb 2025 21:59:55 -0800 +Subject: diff: don't treat empty files as a different file type + +Reported by Kate Deplaix <kit-ty-kate@outlook.com> in +<https://lists.gnu.org/r/bug-diffutils/2025-02/msg00005.html>. + +* src/diff.c (compare_prepped_files): Don't rely on string +file type, as that might not agree with our idea of a file type. +--- + src/diff.c | 26 +++++++++++++------------- + 1 file changed, 13 insertions(+), 13 deletions(-) + +diff --git a/src/diff.c b/src/diff.c +index fa6100e..6e1bbc5 100644 +--- a/src/diff.c ++++ b/src/diff.c +@@ -1223,14 +1223,14 @@ compare_prepped_files (struct comparison const *parent, + the type is unusual, then simply report their type. + However, at the top level do this only if one file is a symlink + and the other is not. */ +- if (toplevel +- ? (!S_ISLNK (cmp->file[0].stat.st_mode) +- != !S_ISLNK (cmp->file[1].stat.st_mode)) +- : (cmp->file[0].filetype != cmp->file[1].filetype +- || ! (S_ISREG (cmp->file[0].stat.st_mode) +- || S_ISLNK (cmp->file[0].stat.st_mode) +- || S_ISCHR (cmp->file[0].stat.st_mode) +- || S_ISBLK (cmp->file[0].stat.st_mode)))) ++ mode_t mode0 = cmp->file[0].stat.st_mode; ++ mode_t mode1 = cmp->file[1].stat.st_mode; ++ if (toplevel ? !S_ISLNK (mode0) != !S_ISLNK (mode1) ++ : S_ISREG (mode0) ? !S_ISREG (mode1) ++ : S_ISLNK (mode0) ? !S_ISLNK (mode1) ++ : S_ISCHR (mode0) ? !S_ISCHR (mode1) ++ : S_ISBLK (mode0) ? !S_ISBLK (mode1) ++ : true) + { + /* POSIX 1003.1-2017 says any message will do, so long as it + contains the file names. */ +@@ -1244,7 +1244,7 @@ compare_prepped_files (struct comparison const *parent, + } + + /* If both files are symlinks, compare symlink contents. */ +- if (S_ISLNK (cmp->file[0].stat.st_mode)) ++ if (S_ISLNK (mode0)) + { + /* We get here only if we are not dereferencing symlinks. */ + dassert (no_dereference_symlinks); +@@ -1295,7 +1295,7 @@ compare_prepped_files (struct comparison const *parent, + and report file types of all other non-regular files. + POSIX 1003.1-2017 says any message will do, + so long as it contains the file names. */ +- if (!toplevel && !S_ISREG (cmp->file[0].stat.st_mode)) ++ if (!toplevel && !S_ISREG (mode0)) + { + if (cmp->file[0].stat.st_rdev == cmp->file[1].stat.st_rdev) + return EXIT_SUCCESS; +@@ -1311,7 +1311,7 @@ compare_prepped_files (struct comparison const *parent, + for (int i = 0; i < n_num; i++) + sprintf (numbuf[i], "%"PRIdMAX, num[i]); + +- message ((S_ISCHR (cmp->file[0].stat.st_mode) ++ message ((S_ISCHR (mode0) + ? ("Character special files %s (%s, %s)" + " and %s (%s, %s) differ\n") + : ("Block special files %s (%s, %s)" +@@ -1323,8 +1323,8 @@ compare_prepped_files (struct comparison const *parent, + } + + if (files_can_be_treated_as_binary +- && S_ISREG (cmp->file[0].stat.st_mode) +- && S_ISREG (cmp->file[1].stat.st_mode) ++ && S_ISREG (mode0) ++ && S_ISREG (mode1) + && cmp->file[0].stat.st_size != cmp->file[1].stat.st_size + && 0 <= cmp->file[0].stat.st_size + && 0 <= cmp->file[1].stat.st_size) +-- +cgit v1.1 diff --git a/sys-apps/diffutils/files/diffutils-3.11-tests-seq.patch b/sys-apps/diffutils/files/diffutils-3.11-tests-seq.patch new file mode 100644 index 000000000000..407b76ac05f7 --- /dev/null +++ b/sys-apps/diffutils/files/diffutils-3.11-tests-seq.patch @@ -0,0 +1,64 @@ +https://git.savannah.gnu.org/cgit/diffutils.git/commit/?id=58e734dedd2ed84b559c313b4fbe8e2a1b987a1d + +From 58e734dedd2ed84b559c313b4fbe8e2a1b987a1d Mon Sep 17 00:00:00 2001 +From: Paul Eggert <eggert@cs.ucla.edu> +Date: Fri, 28 Feb 2025 14:32:44 -0800 +Subject: tests: make seq replacement more available +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This refactoring should let other future tests use ‘seq’. +* tests/diff3 (seq): Move from here ... +* tests/init.cfg: ... to here. +--- + tests/diff3 | 12 ------------ + tests/init.cfg | 12 ++++++++++++ + 2 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/tests/diff3 b/tests/diff3 +index e468243..c2079ec 100644 +--- a/tests/diff3 ++++ b/tests/diff3 +@@ -3,18 +3,6 @@ + + . "${srcdir=.}/init.sh"; path_prepend_ ../src + +-# Some systems lack seq. +-# A limited replacement for seq: handle 1 or 2 args; increment must be 1 +-seq() +-{ +- case $# in +- 1) start=1 final=$1;; +- 2) start=$1 final=$2;; +- *) echo you lose 1>&2; exit 1;; +- esac +- awk 'BEGIN{for(i='$start';i<='$final';i++) print i}' < /dev/null +-} +- + echo a > a || framework_failure_ + echo b > b || framework_failure_ + echo c > c || framework_failure_ +diff --git a/tests/init.cfg b/tests/init.cfg +index 8b3b107..66c26d6 100644 +--- a/tests/init.cfg ++++ b/tests/init.cfg +@@ -120,4 +120,16 @@ require_utf8_locale_() + test $found_working_tr = 1 || skip_ "failed to find a working tr program" + } + ++# Some systems lack seq. ++# A limited replacement for seq: handle 1 or 2 args; increment must be 1 ++seq() ++{ ++ case $# in ++ 1) start=1 final=$1;; ++ 2) start=$1 final=$2;; ++ *) echo you lose 1>&2; exit 1;; ++ esac ++ awk 'BEGIN{for(i='$start';i<='$final';i++) print i}' < /dev/null ++} ++ + sanitize_path_ +-- +cgit v1.1