diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/patch/files/patch-2.7.6_p20250206-no-backup-if-mismatch-regression.patch b/sdk_container/src/third_party/portage-stable/sys-devel/patch/files/patch-2.7.6_p20250206-no-backup-if-mismatch-regression.patch new file mode 100644 index 0000000000..f4d162694a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/patch/files/patch-2.7.6_p20250206-no-backup-if-mismatch-regression.patch @@ -0,0 +1,131 @@ +From b5d2124e2e6019ee5d329b49ef6904a0daec74a1 Mon Sep 17 00:00:00 2001 +From: Paul Eggert +Date: Mon, 24 Feb 2025 22:59:51 -0800 +Subject: [PATCH] patch: fix --no-backup-if-mismatch regression + +Problem reported by Sam James in: +https://lists.gnu.org/archive/html/bug-patch/2025-02/msg00014.html +https://bugs.gentoo.org/show_bug.cgi?id=949834 +* src/patch.c (backup_if_mismatch_specified): New static var. +(get_some_switches): Set it. +(main): Default backup_if_mismatch only if not set on command line. +* tests/no-backup: New file. +* tests/Makefile.am (TESTS): Add it. +--- + src/patch.c | 6 ++++- + tests/Makefile.am | 1 + + tests/no-backup | 56 +++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 62 insertions(+), 1 deletion(-) + create mode 100644 tests/no-backup + +diff --git a/src/patch.c b/src/patch.c +index 6c460f7..e4d0524 100644 +--- a/src/patch.c ++++ b/src/patch.c +@@ -118,6 +118,7 @@ static bool merge; + static enum diff reject_format = NO_DIFF; /* automatic */ + static bool make_backups; + static bool backup_if_mismatch; ++static bool backup_if_mismatch_specified; + static char const *version_control; + static char const *version_control_context; + static bool remove_empty_files; +@@ -196,7 +197,8 @@ main (int argc, char **argv) + if (set_utc && setenv ("TZ", "UTC0", 1) < 0) + pfatal ("setenv"); + +- backup_if_mismatch = ! posixly_correct; ++ if (!backup_if_mismatch_specified) ++ backup_if_mismatch = !posixly_correct; + if (make_backups | backup_if_mismatch) + backup_type = get_version (version_control_context, version_control); + +@@ -1050,9 +1052,11 @@ get_some_switches (int argc, char **argv) + usage (stdout, EXIT_SUCCESS); + case CHAR_MAX + 5: + backup_if_mismatch = true; ++ backup_if_mismatch_specified = true; + break; + case CHAR_MAX + 6: + backup_if_mismatch = false; ++ backup_if_mismatch_specified = true; + break; + case CHAR_MAX + 7: + posixly_correct = true; +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 43ddf66..acb449a 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -50,6 +50,7 @@ TESTS = \ + mixed-patch-types \ + munged-context-format \ + need-filename \ ++ no-backup \ + no-mode-change-git-diff \ + no-newline-triggers-assert \ + preserve-c-function-names \ +diff --git a/tests/no-backup b/tests/no-backup +new file mode 100644 +index 0000000..57b73fa +--- /dev/null ++++ b/tests/no-backup +@@ -0,0 +1,56 @@ ++# Copyright 2025 Free Software Foundation, Inc. ++# ++# Copying and distribution of this file, with or without modification, ++# in any medium, are permitted without royalty provided the copyright ++# notice and this notice are preserved. ++ ++# Test the --no-backup-if-mismatch option ++ ++. $srcdir/test-lib.sh ++ ++require cat ++use_local_patch ++use_tmpdir ++ ++# ============================================================== ++ ++cat >my_file <<'EOF' ++/* ... */ ++void baz(); ++ ++ ++void baz() { ++ /* ... */ ++} ++ ++int main() { ++ int foo; ++ int bar; ++ ++ /* ... */ ++ baz(); ++} ++EOF ++ ++cat >my_file.patch <<'EOF' ++--- my_file 2025-02-16 11:22:12.881765792 +0000 +++++ my_file_new 2025-02-16 11:22:12.881796732 +0000 ++@@ -2,7 +2,7 @@ ++ void baz(); ++ ++ void baz() { ++- /* ... */ +++ // ... ++ } ++ ++ int main() { ++EOF ++ ++unset POSIXLY_CORRECT ++ ++check 'patch -N --no-backup-if-mismatch +Date: Wed, 26 Feb 2025 16:44:48 -0800 +Subject: [PATCH 1/2] Count traditional diff pattern lines correctly +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes a bug I introduced on Thu Sep 5 16:37:50 2024 -0700. +Problem reported by Petr Vaněk in: +https://lists.gnu.org/archive/html/bug-patch/2025-02/msg00017.html +* src/pch.c (another_hunk): Fix method for counting number +of lines in a traditional diff hunk. +--- + src/pch.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/pch.c b/src/pch.c +index 63c9a0c..d9f5c61 100644 +--- a/src/pch.c ++++ b/src/pch.c +@@ -1765,9 +1765,10 @@ another_hunk (enum diff difftype, bool rev) + if (*s == ',') { + idx_t last; + s = scan_linenum (s + 1, &last); +- if (p_first >= IDX_MAX - p_ptrn_lines) ++ ptrdiff_t diff = last - p_first; ++ if (! (-1 <= diff && diff < IDX_MAX)) + malformed (); +- p_ptrn_lines += 1 - p_first; ++ p_ptrn_lines = diff + 1; + } + else + p_ptrn_lines = (*s != 'a'); +-- +2.45.3 + + +From b3d0c933389208ccac795a1b517c5a8b11cc012e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20Van=C4=9Bk?= +Date: Wed, 26 Feb 2025 16:44:48 -0800 +Subject: [PATCH 2/2] Regression in commit abe92e8010ab affecting MariaDB tests + +I have disovered a regression in commit abe92e8010ab ("Prefer idx_t, +ptrdiff_t to lin") while I was running MariaDB tests. The regression is +related to a diff file [1], where the patch fails to apply it with +following error: + + patch: **** '---' expected at line 2 of patch + +To illustrate the issue, I have attached a git patch containing a +testcase with simplified reproducer. + +[1] https://github.com/MariaDB/server/blob/mariadb-10.6.21/mysql-test/suite/innodb/r/innodb-wl5522%2Cstrict_crc32.rdiff file +--- + tests/Makefile.am | 1 + + tests/regression-abe92e8010ab | 33 +++++++++++++++++++++++++++++++++ + 2 files changed, 34 insertions(+) + create mode 100644 tests/regression-abe92e8010ab + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index acb449a..8f1a248 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -57,6 +57,7 @@ TESTS = \ + preserve-mode-and-timestamp \ + quoted-filenames \ + read-only-files \ ++ regression-abe92e8010ab \ + reject-format \ + remember-backup-files \ + remember-reject-files \ +diff --git a/tests/regression-abe92e8010ab b/tests/regression-abe92e8010ab +new file mode 100644 +index 0000000..0e11e34 +--- /dev/null ++++ b/tests/regression-abe92e8010ab +@@ -0,0 +1,33 @@ ++. $srcdir/test-lib.sh ++ ++require cat ++use_local_patch ++use_tmpdir ++ ++cat > f < f.diff < 3 ++EOF ++ ++check 'patch f < f.diff' <