diff --git a/0001-Fix-Treat-x86_64_v2-as-x86_64-in-architecture-checks.patch b/0001-Fix-Treat-x86_64_v2-as-x86_64-in-architecture-checks.patch index 74308b3..1bfc117 100644 --- a/0001-Fix-Treat-x86_64_v2-as-x86_64-in-architecture-checks.patch +++ b/0001-Fix-Treat-x86_64_v2-as-x86_64-in-architecture-checks.patch @@ -1,58 +1,51 @@ -From 834feed695b5cb5ea27aaa23936eaeda2372b56b Mon Sep 17 00:00:00 2001 +From 486798b19df2dc933e1814e9d56c03833e9f572e Mon Sep 17 00:00:00 2001 From: eabdullin -Date: Tue, 9 Jul 2024 17:03:27 +0300 +Date: Wed, 16 Oct 2024 11:07:36 +0300 Subject: [PATCH] Fix: Treat x86_64_v2 as x86_64 in architecture checks This change allows spec files to use x86_64_v2 as an alias for x86_64, ensuring compatibility with packages and build scripts expecting x86_64. --- - build/parsePreamble.c | 4 ++++ - build/parseSpec.c | 17 +++++++++++++++++ - 2 files changed, 21 insertions(+) + build/parsePreamble.c | 10 ++++++---- + build/parseSpec.c | 4 ++++ + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/build/parsePreamble.c b/build/parsePreamble.c -index de205d5..a8f3b47 100644 +index de205d5..da1867c 100644 --- a/build/parsePreamble.c +++ b/build/parsePreamble.c -@@ -425,6 +425,10 @@ static int isMemberInEntry(Header h, const char *name, rpmTagVal tag) +@@ -424,11 +424,13 @@ static int isMemberInEntry(Header h, const char *name, rpmTagVal tag) + if (!headerGet(h, tag, &td, HEADERGET_MINMEM)) return -1; ++ int is_not_v2 = rstrcasecmp(name, "x86_64_v2"); ++ while ((str = rpmtdNextString(&td))) { -+ if (!rstrcasecmp(str, "x86_64") && !rstrcasecmp(name, "x86_64_v2")) { -+ found = 1; -+ break; -+ } - if (!rstrcasecmp(str, name)) { - found = 1; - break; +- if (!rstrcasecmp(str, name)) { +- found = 1; +- break; +- } ++ if (!rstrcasecmp(str, name) || (!is_not_v2 && !rstrcasecmp(str, "x86_64"))) { ++ found = 1; ++ break; ++ } + } + rpmtdFreeData(&td); + diff --git a/build/parseSpec.c b/build/parseSpec.c -index d6e998a..102ce5b 100644 +index 3929c0a..ae918ef 100644 --- a/build/parseSpec.c +++ b/build/parseSpec.c -@@ -425,7 +425,24 @@ do { \ +@@ -425,6 +425,10 @@ do { \ return PART_ERROR; \ } \ match = matchTok(exp, s); \ + /* Additional check for x86_64_v2 */ \ -+ char *s_copy = strdup(s); \ -+ if (s_copy == NULL) { \ -+ rpmlog(RPMLOG_ERR, _("Memory allocation error\n")); \ -+ return PART_ERROR; \ -+ } \ -+ char *newline = strchr(s_copy, '\n'); \ -+ if (newline) *newline = '\0'; \ -+ char *token_ptr = strtok(s_copy, " "); \ -+ while (token_ptr != NULL) { \ -+ if (!match && strcmp(token_ptr, "x86_64") == 0 && strcmp(exp, "x86_64_v2") == 0) { \ -+ match = 1; \ -+ break; \ -+ } \ -+ token_ptr = strtok(NULL, " "); \ ++ if (!match && !strcmp(exp, "x86_64_v2")) { \ ++ match = matchTok("x86_64", s); \ + } \ free(exp); \ -+ free(s_copy); \ } while (0) - -- -2.39.3 (Apple Git-146) +2.39.5 (Apple Git-154) diff --git a/rpm.spec b/rpm.spec index 34747ad..b92e76d 100644 --- a/rpm.spec +++ b/rpm.spec @@ -36,7 +36,7 @@ Summary: The RPM package management system Name: rpm Version: %{rpmver} -Release: %{?snapver:0.%{snapver}.}%{baserelease}%{?dist}.alma.1 +Release: %{?snapver:0.%{snapver}.}%{baserelease}%{?dist}.alma.2 Url: http://www.rpm.org/ License: GPL-2.0-or-later Source0: http://ftp.rpm.org/releases/%{srcdir}/rpm-%{srcver}.tar.bz2 @@ -619,6 +619,9 @@ fi %doc %{_defaultdocdir}/rpm/API/ %changelog +* Wed Oct 16 2024 Eduard Abdullin - 4.19.1.1-3.alma.2 +- Update patch: Fix: Treat x86_64_v2 as x86_64 in architecture checks + * Thu Aug 01 2024 Eduard Abdullin - 4.19.1.1-3.alma.1 - Fix: Treat x86_64_v2 as x86_64 in architecture checks