@@ -15,7 +15,7 @@ Index: git/build/rpmfc.c
===================================================================
--- git.orig/build/rpmfc.c
+++ git/build/rpmfc.c
-@@ -645,6 +645,7 @@ exit:
+@@ -646,6 +646,7 @@ exit:
static const struct rpmfcTokens_s rpmfcTokens[] = {
{ "directory", RPMFC_INCLUDE },
@@ -23,16 +23,16 @@ Index: git/build/rpmfc.c
{ "ELF 32-bit", RPMFC_ELF32|RPMFC_INCLUDE },
{ "ELF 64-bit", RPMFC_ELF64|RPMFC_INCLUDE },
-@@ -1150,6 +1151,9 @@ static uint32_t getElfColor(const char *
+@@ -1151,6 +1152,9 @@ static uint32_t getElfColor(const char *fn)
color = RPMFC_ELF32;
break;
}
+ if (ehdr.e_machine == EM_MIPS || ehdr.e_machine == EM_MIPS_RS3_LE)
+ if (ehdr.e_flags & EF_MIPS_ABI2)
+ color = RPMFC_ELFMIPSN32;
- elf_end(elf);
}
- close(fd);
+ if (elf)
+ elf_end(elf);
Index: git/rpmrc.in
===================================================================
--- git.orig/rpmrc.in
@@ -30,7 +30,7 @@ Index: git/macros.in
===================================================================
--- git.orig/macros.in
+++ git/macros.in
-@@ -911,7 +911,7 @@ package or when debugging this package.\
+@@ -930,7 +930,7 @@ package or when debugging this package.\
%_sharedstatedir %{_prefix}/com
%_localstatedir %{_prefix}/var
%_lib lib
@@ -55,4 +55,4 @@ Index: git/rpm.am
+rpmconfigdir = $(libdir)/rpm
# Libtool version (current-revision-age) for all our libraries
- rpm_version_info = 12:0:3
+ rpm_version_info = 13:0:4
new file mode 100644
@@ -0,0 +1,42 @@
+From b960c0b43a080287a7c13533eeb2d9f288db1414 Mon Sep 17 00:00:00 2001
+From: Florian Festi <ffesti@redhat.com>
+Date: Thu, 16 Mar 2023 19:05:04 +0100
+Subject: [PATCH] Fix compiler error on clang
+
+Turns out variable declarations are not allowed after a label, even in
+C99. And while some compilers don't seem to care others do.
+
+Moving the declaration of mayopen to the start of the function to avoid
+this problem.
+
+Resolves: #2435
+
+Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/b960c0b43a080287a7c13533eeb2d9f288db1414]
+---
+ lib/fsm.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/lib/fsm.c b/lib/fsm.c
+index 5671ac642..183293edb 100644
+--- a/lib/fsm.c
++++ b/lib/fsm.c
+@@ -879,6 +879,7 @@ int rpmPackageFilesInstall(rpmts ts, rpmte te, rpmfiles files,
+ int nodigest = (rpmtsFlags(ts) & RPMTRANS_FLAG_NOFILEDIGEST) ? 1 : 0;
+ int nofcaps = (rpmtsFlags(ts) & RPMTRANS_FLAG_NOCAPS) ? 1 : 0;
+ int firstlinkfile = -1;
++ int mayopen = 0;
+ char *tid = NULL;
+ struct filedata_s *fdata = xcalloc(fc, sizeof(*fdata));
+ struct filedata_s *firstlink = NULL;
+@@ -1016,7 +1017,7 @@ int rpmPackageFilesInstall(rpmts ts, rpmte te, rpmfiles files,
+
+ setmeta:
+ /* Special files require path-based ops */
+- int mayopen = S_ISREG(fp->sb.st_mode) || S_ISDIR(fp->sb.st_mode);
++ mayopen = S_ISREG(fp->sb.st_mode) || S_ISDIR(fp->sb.st_mode);
+ if (!rc && fd == -1 && mayopen) {
+ int flags = O_RDONLY;
+ /* Only follow safe symlinks, and never on temporary files */
+--
+2.30.2
+
deleted file mode 100644
@@ -1,23 +0,0 @@
-From 9bf1693092385eba9841614613313010221ca01f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 29 Jun 2021 20:11:26 +0200
-Subject: [PATCH] docs: do not build manpages (requires pandoc)
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- docs/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-Index: git/docs/Makefile.am
-===================================================================
---- git.orig/docs/Makefile.am
-+++ git/docs/Makefile.am
-@@ -1,7 +1,5 @@
- ## Process this file with automake to produce Makefile.in
-
--SUBDIRS = man
--
- EXTRA_DIST =
-
- EXTRA_DIST += \
deleted file mode 100644
@@ -1,22 +0,0 @@
-Calling openat() on a fifo causes a pseudo hang for us (e.g. the fifo in psplash).
-Avoid calling openat for fifos.
-
-Introduced upstream with:
-
-https://github.com/rpm-software-management/rpm/commit/96ec957e281220f8e137a2d5eb23b83a6377d556
-
-Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/issues/2195]
-
-Index: git/lib/fsm.c
-===================================================================
---- git.orig/lib/fsm.c
-+++ git/lib/fsm.c
-@@ -1010,7 +1010,7 @@ int rpmPackageFilesInstall(rpmts ts, rpm
- rc = RPMERR_UNKNOWN_FILETYPE;
- }
-
-- if (!rc && fd == -1 && !S_ISLNK(fp->sb.st_mode)) {
-+ if (!rc && fd == -1 && !S_ISLNK(fp->sb.st_mode) && !S_ISFIFO(fp->sb.st_mode)) {
- /* Only follow safe symlinks, and never on temporary files */
- fd = fsmOpenat(di.dirfd, fp->fpath,
- fp->suffix ? AT_SYMLINK_NOFOLLOW : 0, 0);
similarity index 97%
rename from meta/recipes-devtools/rpm/rpm_4.18.0.bb
rename to meta/recipes-devtools/rpm/rpm_4.18.1.bb
@@ -35,15 +35,14 @@ SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.18.x;protoc
file://0001-perl-disable-auto-reqs.patch \
file://0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch \
file://0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch \
- file://0001-docs-do-not-build-manpages-requires-pandoc.patch \
file://0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch \
file://0001-configure.ac-add-linux-gnux32-variant-to-triplet-han.patch \
- file://fifofix.patch \
file://0001-python-Use-Py_hash_t-instead-of-long-in-hdr_hash.patch \
+ file://0001-Fix-compiler-error-on-clang.patch \
"
PE = "1"
-SRCREV = "ea0d77c52e176e2876fdb1d07ad41e9e2635a93e"
+SRCREV = "4588bc3f994338502d2770ad24cbfcdaa6c335ec"
S = "${WORKDIR}/git"
@@ -173,6 +172,7 @@ FILES:${PN}-build = "\
${libdir}/rpm/mkinstalldirs \
${libdir}/rpm/macros.p* \
${libdir}/rpm/fileattrs/* \
+ ${libdir}/${PYTHON_DIR}/site-packages/rpm*egg-info \
"
FILES:${PN}-build:append:class-nativesdk = " ${SDKPATHNATIVE}/etc/rpm/macros"
Changes: Rebase patches for upstream changes. Remove patches not needed due to upstream changes. Add a new patch to fix build failure. Package egg-info file. Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com> --- ...olor-setting-for-mips64_n32-binaries.patch | 8 ++-- ...lib-rpm-as-the-installation-path-for.patch | 4 +- .../0001-Fix-compiler-error-on-clang.patch | 42 +++++++++++++++++++ ...o-not-build-manpages-requires-pandoc.patch | 23 ---------- meta/recipes-devtools/rpm/files/fifofix.patch | 22 ---------- .../rpm/{rpm_4.18.0.bb => rpm_4.18.1.bb} | 6 +-- 6 files changed, 51 insertions(+), 54 deletions(-) create mode 100644 meta/recipes-devtools/rpm/files/0001-Fix-compiler-error-on-clang.patch delete mode 100644 meta/recipes-devtools/rpm/files/0001-docs-do-not-build-manpages-requires-pandoc.patch delete mode 100644 meta/recipes-devtools/rpm/files/fifofix.patch rename meta/recipes-devtools/rpm/{rpm_4.18.0.bb => rpm_4.18.1.bb} (97%)