Hello, I think you also forgot to add a maintainer:
AssertionError: The following recipes do not have a maintainer assigned to them. Please add an entry to meta/conf/distro/include/maintainers.inc file. debugedit (/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/recipes-devtools/debugedit/debugedit_5.0.bb) On 23/03/2023 16:11:15+0800, Chen Qi wrote: > This recipe provides find-debuginfo which is used by rpm, more > specifically rpmbuild. > > RPM upstream removed find-debuginfo and switched to use debugedit > in the following commit. > > > https://github.com/rpm-software-management/rpm/commit/04b0805a756cdd9466fb9dc717846f5bf15518cc > > Without debugedit, rpmbuild fails to generate debuginfo package when > %debug_package is added to spec file. > > Signed-off-by: Chen Qi <[email protected]> > --- > .../debugedit/debugedit_5.0.bb | 28 +++++ > ...tools-Add-error.h-for-non-glibc-case.patch | 102 ++++++++++++++++++ > ...ugcrcfix.c-do-not-use-64bit-variants.patch | 56 ++++++++++ > ...003-Makefile.am-do-not-update-manual.patch | 65 +++++++++++ > 4 files changed, 251 insertions(+) > create mode 100644 meta/recipes-devtools/debugedit/debugedit_5.0.bb > create mode 100644 > meta/recipes-devtools/debugedit/files/0001-tools-Add-error.h-for-non-glibc-case.patch > create mode 100644 > meta/recipes-devtools/debugedit/files/0002-sepdebugcrcfix.c-do-not-use-64bit-variants.patch > create mode 100644 > meta/recipes-devtools/debugedit/files/0003-Makefile.am-do-not-update-manual.patch > > diff --git a/meta/recipes-devtools/debugedit/debugedit_5.0.bb > b/meta/recipes-devtools/debugedit/debugedit_5.0.bb > new file mode 100644 > index 0000000000..257238fa24 > --- /dev/null > +++ b/meta/recipes-devtools/debugedit/debugedit_5.0.bb > @@ -0,0 +1,28 @@ > +SUMMARY = "Tools for creating debuginfo and source file distributions" > +DESCRIPTION = "debugedit provides programs and scripts for creating \ > +debuginfo and source file distributions, collect build-ids and rewrite \ > +source paths in DWARF data for debugging, tracing and profiling." > +HOMEPAGE = "https://sourceware.org/debugedit/" > + > +LICENSE = "GPL-2.0-only & GPL-3.0-only & LGPL-2.1-only" > +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ > + file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ > + file://COPYING3;md5=d32239bcb673463ab874e80d47fae504" > + > +SRC_URI = "https://sourceware.org/ftp/debugedit/${PV}/debugedit-${PV}.tar.xz" > + > +SRC_URI:append:libc-musl = " \ > + file://0001-tools-Add-error.h-for-non-glibc-case.patch \ > + file://0002-sepdebugcrcfix.c-do-not-use-64bit-variants.patch \ > + file://0003-Makefile.am-do-not-update-manual.patch \ > + " > + > +SRC_URI[sha256sum] = > "e9ecd7d350bebae1f178ce6776ca19a648b6fe8fa22f5b3044b38d7899aa553e" > + > +DEPENDS = "elfutils" > + > +inherit pkgconfig autotools > + > +RDEPENDS:${PN} += "bash elfutils-binutils" > + > +BBCLASSEXTEND = "native nativesdk" > diff --git > a/meta/recipes-devtools/debugedit/files/0001-tools-Add-error.h-for-non-glibc-case.patch > > b/meta/recipes-devtools/debugedit/files/0001-tools-Add-error.h-for-non-glibc-case.patch > new file mode 100644 > index 0000000000..f6d64cb4e7 > --- /dev/null > +++ > b/meta/recipes-devtools/debugedit/files/0001-tools-Add-error.h-for-non-glibc-case.patch > @@ -0,0 +1,102 @@ > +From 4c797d3b559ba51bd9ccd9a2036245819acce843 Mon Sep 17 00:00:00 2001 > +From: Chen Qi <[email protected]> > +Date: Thu, 23 Mar 2023 10:54:21 +0800 > +Subject: [PATCH] tools: Add error.h for non-glibc case > + > +error is glibc specific API, so this patch will mostly not accepted > +upstream given that elfutils has been closely tied to glibc > + > +This is a OE specific workaround for musl. > + > +Upstream-Status: Inappropriate [OE Specific] > + > +Signed-off-by: Chen Qi <[email protected]> > +--- > + tools/debugedit.c | 7 ++++++- > + tools/error.h | 27 +++++++++++++++++++++++++++ > + tools/sepdebugcrcfix.c | 7 ++++++- > + 3 files changed, 39 insertions(+), 2 deletions(-) > + create mode 100644 tools/error.h > + > +diff --git a/tools/debugedit.c b/tools/debugedit.c > +index 668777a..a72c3c0 100644 > +--- a/tools/debugedit.c > ++++ b/tools/debugedit.c > +@@ -25,7 +25,6 @@ > + #include <byteswap.h> > + #include <endian.h> > + #include <errno.h> > +-#include <error.h> > + #include <limits.h> > + #include <string.h> > + #include <stdlib.h> > +@@ -40,6 +39,12 @@ > + #include <gelf.h> > + #include <dwarf.h> > + > ++#ifdef __GLIBC__ > ++#include <error.h> > ++#else > ++#include "error.h" > ++#endif > ++ > + #ifndef MAX > + #define MAX(m, n) ((m) < (n) ? (n) : (m)) > + #endif > +diff --git a/tools/error.h b/tools/error.h > +new file mode 100644 > +index 0000000..9b24418 > +--- /dev/null > ++++ b/tools/error.h > +@@ -0,0 +1,27 @@ > ++#ifndef _ERROR_H_ > ++#define _ERROR_H_ > ++ > ++#include <stdarg.h> > ++#include <stdio.h> > ++#include <stdlib.h> > ++#include <string.h> > ++#include <errno.h> > ++ > ++static unsigned int error_message_count = 0; > ++ > ++static inline void error(int status, int errnum, const char* format, ...) > ++{ > ++ va_list ap; > ++ fprintf(stderr, "%s: ", program_invocation_name); > ++ va_start(ap, format); > ++ vfprintf(stderr, format, ap); > ++ va_end(ap); > ++ if (errnum) > ++ fprintf(stderr, ": %s", strerror(errnum)); > ++ fprintf(stderr, "\n"); > ++ error_message_count++; > ++ if (status) > ++ exit(status); > ++} > ++ > ++#endif /* _ERROR_H_ */ > +diff --git a/tools/sepdebugcrcfix.c b/tools/sepdebugcrcfix.c > +index da50e6c..c4a9d56 100644 > +--- a/tools/sepdebugcrcfix.c > ++++ b/tools/sepdebugcrcfix.c > +@@ -29,10 +29,15 @@ > + #include <endian.h> > + #include <stdio.h> > + #include <stdlib.h> > +-#include <error.h> > + #include <libelf.h> > + #include <gelf.h> > + > ++#ifdef __GLIBC__ > ++#include <error.h> > ++#else > ++#include "error.h" > ++#endif > ++ > + #ifndef _ > + #define _(x) x > + #endif > +-- > +2.17.1 > + > diff --git > a/meta/recipes-devtools/debugedit/files/0002-sepdebugcrcfix.c-do-not-use-64bit-variants.patch > > b/meta/recipes-devtools/debugedit/files/0002-sepdebugcrcfix.c-do-not-use-64bit-variants.patch > new file mode 100644 > index 0000000000..4463bd2324 > --- /dev/null > +++ > b/meta/recipes-devtools/debugedit/files/0002-sepdebugcrcfix.c-do-not-use-64bit-variants.patch > @@ -0,0 +1,56 @@ > +From 3e05bbc1f7909ab6f529e66f0d0f70fb1e60583a Mon Sep 17 00:00:00 2001 > +From: Chen Qi <[email protected]> > +Date: Thu, 23 Mar 2023 11:55:53 +0800 > +Subject: [PATCH 2/2] sepdebugcrcfix.c: do not use 64bit variants > + > +configure.ac checks for largefile support via AC_SYS_LARGEFILE > +already, therefore use off_t, open and lseek instead of 64bit > +variants. Musl e.g. does not define them without _LARGEFILE64_SOURCE > +and error is not seen on glibc because _GNU_SOURCE defines > +_LARGEFILE64_SOURCE. > + > +This patch is marked as inappropriate as debugedit obviously only > +wants to support glibc or some glibc compatible libcs. We can see > +this from the error() usage. And this patch is only for musl. > + > +Upstream-Status: Inappropriate [OE Specific] > + > +Signed-off-by: Chen Qi <[email protected]> > +--- > + tools/sepdebugcrcfix.c | 6 +++--- > + 1 file changed, 3 insertions(+), 3 deletions(-) > + > +diff --git a/tools/sepdebugcrcfix.c b/tools/sepdebugcrcfix.c > +index c4a9d56..882e5f5 100644 > +--- a/tools/sepdebugcrcfix.c > ++++ b/tools/sepdebugcrcfix.c > +@@ -144,7 +144,7 @@ crc32 (const char *fname, const char *base_fname, > uint32_t *crcp) > + error (0, errno, _("cannot open \"%s\""), debugname); > + return false; > + } > +- off64_t size = lseek64 (fd, 0, SEEK_END); > ++ off_t size = lseek (fd, 0, SEEK_END); > + if (size == -1) > + { > + error (0, errno, _("cannot get size of \"%s\""), debugname); > +@@ -289,7 +289,7 @@ process (Elf *elf, int fd, const char *fname) > + return true; > + } > + updated_count++; > +- off64_t seekto = (shdr->sh_offset + data->d_off > ++ off_t seekto = (shdr->sh_offset + data->d_off > + + (crcp - (const uint8_t *) data->d_buf)); > + uint32_t crc_targetendian = (ehdr->e_ident[EI_DATA] == ELFDATA2LSB > + ? htole32 (crc) : htobe32 (crc)); > +@@ -361,7 +361,7 @@ main (int argc, char **argv) > + error (0, errno, _("cannot chmod \"%s\" to make sure we can read and > write"), fname); > + > + bool failed = false; > +- int fd = open64 (fname, O_RDWR); > ++ int fd = open (fname, O_RDWR); > + if (fd == -1) > + { > + error (0, errno, _("cannot open \"%s\""), fname); > +-- > +2.17.1 > + > diff --git > a/meta/recipes-devtools/debugedit/files/0003-Makefile.am-do-not-update-manual.patch > > b/meta/recipes-devtools/debugedit/files/0003-Makefile.am-do-not-update-manual.patch > new file mode 100644 > index 0000000000..de467f5365 > --- /dev/null > +++ > b/meta/recipes-devtools/debugedit/files/0003-Makefile.am-do-not-update-manual.patch > @@ -0,0 +1,65 @@ > +From 4f0d7d2f4900ce8555e09854dc681278b7a3d9a9 Mon Sep 17 00:00:00 2001 > +From: Chen Qi <[email protected]> > +Date: Thu, 23 Mar 2023 13:09:23 +0800 > +Subject: [PATCH 3/3] Makefile.am: do not update manual > + > +The tarball ships these manuals, no need to re-generate them. > +We have local patches for debugedit.c and sepdebugcrcfix.c, > +this will triger re-generation of the manuals, which causes > +error of missing help2man. > + > +This is an OE specific patch. If we don't have local patches > +patching debugedit.c and sepdebugcrcfix.c, this patch is also > +not needed. > + > +Upstream-Status: Inappropriate [OE Specific] > + > +Signed-off-by: Chen Qi <[email protected]> > +--- > + Makefile.am | 30 ------------------------------ > + 1 file changed, 30 deletions(-) > + > +diff --git a/Makefile.am b/Makefile.am > +index 98b2f20..f91deea 100644 > +--- a/Makefile.am > ++++ b/Makefile.am > +@@ -52,36 +52,6 @@ sepdebugcrcfix_LDADD = @LIBELF_LIBS@ > + # Manual pages are generated for dist > + dist_man_MANS = debugedit.1 sepdebugcrcfix.1 find-debuginfo.1 > + > +-# The 'case' ensures the man pages are only generated if the corresponding > +-# source script (the first prerequisite) or configure.ac (for the version) > +-# has been changed. The executable prerequisite is solely meant to force > +-# these docs to be made only after the executable has been compiled. > +-# This makes sure help2man is not normally necessary (since the generated > +-# man pages are distributed). > +-debugedit.1: tools/debugedit.c configure.ac debugedit$(EXEEXT) > +- @case '$?' in \ > +- *$<* | *configure.ac* ) $(HELP2MAN) -N --output=$@ \ > +- --name='debug source path manipulation tool' \ > +- ./debugedit$(EXEEXT) ;; \ > +- * ) : ;; \ > +- esac > +- > +-sepdebugcrcfix.1: tools/sepdebugcrcfix.c configure.ac > sepdebugcrcfix$(EXEEXT) > +- @case '$?' in \ > +- *$<* | *configure.ac* ) $(HELP2MAN) -N --output=$@ \ > +- --name='fixes CRC for separate .debug files' \ > +- ./sepdebugcrcfix$(EXEEXT) ;;\ > +- * ) : ;; \ > +- esac > +- > +-find-debuginfo.1: $(top_srcdir)/scripts/find-debuginfo.in configure.ac > find-debuginfo > +- @case '$?' in \ > +- *$<* | *configure.ac* ) $(HELP2MAN) -N --output=$@ \ > +- --name='finds debuginfo and processes it' \ > +- ./find-debuginfo ;;\ > +- * ) : ;; \ > +- esac > +- > + noinst_HEADERS= tools/ansidecl.h \ > + tools/hashtab.h \ > + tools/md5.h \ > +-- > +2.17.1 > + > -- > 2.17.1 > > > > -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#178969): https://lists.openembedded.org/g/openembedded-core/message/178969 Mute This Topic: https://lists.openembedded.org/mt/97796617/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
