diff options
author | Khem Raj <raj.khem@gmail.com> | 2024-01-02 00:29:42 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-01-07 12:24:54 +0000 |
commit | cd610101dc8fcb0cabe351085d36823c5bd7eb19 (patch) | |
tree | f8c3652b1612d82ef1eeb91ac63b56f6e5e418f5 | |
parent | d0139bcbe0499e570f02f8f7b7e364763f7359ec (diff) | |
download | openembedded-core-cd610101dc8fcb0cabe351085d36823c5bd7eb19.tar.gz |
rpm: Fix build with musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
3 files changed, 68 insertions, 0 deletions
diff --git a/meta/recipes-devtools/rpm/files/0001-Duplicate-filename-before-passing-it-to-basename.patch b/meta/recipes-devtools/rpm/files/0001-Duplicate-filename-before-passing-it-to-basename.patch new file mode 100644 index 0000000000..f9b809d167 --- /dev/null +++ b/meta/recipes-devtools/rpm/files/0001-Duplicate-filename-before-passing-it-to-basename.patch @@ -0,0 +1,40 @@ +From 3fa2ae78db9b31edb4c22f3b5cd36c6c972947f1 Mon Sep 17 00:00:00 2001 +From: Florian Festi <ffesti@redhat.com> +Date: Wed, 26 Jul 2023 15:01:35 +0200 +Subject: [PATCH] Duplicate filename before passing it to basename + +basename is allowed change the string passed to it. While we don't need +the filename after that just casting away the const seems a bit too +hacky. + +Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/3fa2ae78db9b31edb4c22f3b5cd36c6c972947f1] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + tools/rpmuncompress.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/tools/rpmuncompress.c b/tools/rpmuncompress.c +index 58ddf5683..e13cc6a66 100644 +--- a/tools/rpmuncompress.c ++++ b/tools/rpmuncompress.c +@@ -98,7 +98,8 @@ static char *doUntar(const char *fn) + if (needtar) { + rasprintf(&buf, "%s '%s' | %s %s -", zipper, fn, tar, taropts); + } else if (at->compressed == COMPRESSED_GEM) { +- const char *bn = basename(fn); ++ char *tmp = xstrdup(fn); ++ const char *bn = basename(tmp); + size_t nvlen = strlen(bn) - 3; + char *gem = rpmGetPath("%{__gem}", NULL); + char *gemspec = NULL; +@@ -112,6 +113,7 @@ static char *doUntar(const char *fn) + + free(gemspec); + free(gem); ++ free(tmp); + } else { + rasprintf(&buf, "%s '%s'", zipper, fn); + } +-- +2.43.0 + diff --git a/meta/recipes-devtools/rpm/files/0001-Fix-missing-basename-include-on-macOS.patch b/meta/recipes-devtools/rpm/files/0001-Fix-missing-basename-include-on-macOS.patch new file mode 100644 index 0000000000..a93597a835 --- /dev/null +++ b/meta/recipes-devtools/rpm/files/0001-Fix-missing-basename-include-on-macOS.patch @@ -0,0 +1,26 @@ +From b2e67642fd8cb64d8cb1cca9e759396c1c10807d Mon Sep 17 00:00:00 2001 +From: Calvin Buckley <calvin@cmpct.info> +Date: Tue, 11 Jul 2023 19:22:41 -0300 +Subject: [PATCH] Fix missing basename include on macOS + +Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/b2e67642fd8cb64d8cb1cca9e759396c1c10807d] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + tools/rpmuncompress.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tools/rpmuncompress.c b/tools/rpmuncompress.c +index bd4146d54..58ddf5683 100644 +--- a/tools/rpmuncompress.c ++++ b/tools/rpmuncompress.c +@@ -1,6 +1,7 @@ + #include "system.h" + + #include <popt.h> ++#include <libgen.h> + #include <errno.h> + #include <stdio.h> + #include <string.h> +-- +2.43.0 + diff --git a/meta/recipes-devtools/rpm/rpm_4.18.1.bb b/meta/recipes-devtools/rpm/rpm_4.18.1.bb index 95a9e92f96..3e85cbb8ef 100644 --- a/meta/recipes-devtools/rpm/rpm_4.18.1.bb +++ b/meta/recipes-devtools/rpm/rpm_4.18.1.bb @@ -40,6 +40,8 @@ SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.18.x;protoc file://0001-python-Use-Py_hash_t-instead-of-long-in-hdr_hash.patch \ file://fix-declaration.patch \ file://ea3187cfcf9cac87e5bc5e7db79b0338da9e355e.patch \ + file://0001-Duplicate-filename-before-passing-it-to-basename.patch \ + file://0001-Fix-missing-basename-include-on-macOS.patch \ " PE = "1" |