git: e5c98e356920 - main - archivers/rpm4: re-enable the build of the bundled elfdeps utility
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 23 Jan 2023 16:04:44 UTC
The branch main has been updated by markj (src committer):
URL: https://cgit.FreeBSD.org/ports/commit/?id=e5c98e35692008f9633e768e2875d93b9dc93a25
commit e5c98e35692008f9633e768e2875d93b9dc93a25
Author: Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2023-01-16 21:47:03 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-01-23 16:04:36 +0000
archivers/rpm4: re-enable the build of the bundled elfdeps utility
Commit 5ff99a4c9df9 disabled libelf detection to work around the build
failure, but rpmbuild expects to be able to find the elfdeps utility and
misbehaves when it's not present. Since the build failure is easy to
address (different names for an ELF machine type constant for the rather
obsolescent DEC Alpha), let's just do that.
As a part of this, elfutils must be listed as a runtime dependency.
Note that we cannot list it in LIB_DEPENDS since the ports framework
ends up finding the base system libelf.so and decides that the
dependency is satisifed without installing elfutils. But the base
system libelf is missing a symbol (gelf_getvernaux) required by elfdeps.
Work around this by listing elfutils as both build and runtime
dependencies.
Approved by: rodrigo
Reviewed by: rodrigo
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D38092
---
archivers/rpm4/Makefile | 12 +++++++-----
archivers/rpm4/files/patch-tools_elfdeps.c | 11 +++++++++++
archivers/rpm4/pkg-plist | 1 +
3 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/archivers/rpm4/Makefile b/archivers/rpm4/Makefile
index 716ac758cda1..adbe2a427321 100644
--- a/archivers/rpm4/Makefile
+++ b/archivers/rpm4/Makefile
@@ -11,13 +11,16 @@ WWW= https://rpm.org/
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
-BUILD_DEPENDS= gsed:textproc/gsed
+BUILD_DEPENDS= gsed:textproc/gsed \
+ ${LOCALBASE}/lib/libelf.so:devel/elfutils
LIB_DEPENDS= libpopt.so:devel/popt \
libnss3.so:security/nss \
libzstd.so:archivers/zstd \
- libgcrypt.so:security/libgcrypt
+ libgcrypt.so:security/libgcrypt \
+ libelf.so:devel/elfutils
RUN_DEPENDS= bash:shells/bash \
- gxargs:misc/findutils
+ gxargs:misc/findutils \
+ ${LOCALBASE}/lib/libelf.so:devel/elfutils
USES= alias bdb sqlite cpe gmake iconv libarchive libtool \
lua pathfix pkgconfig shebangfix tar:bzip2
@@ -35,8 +38,7 @@ CONFIGURE_ARGS= --enable-sqlite=yes\
--sysconfdir=${PREFIX}/etc \
--localstatedir=/var \
--without-javaglue \
- am_cv_python_version=${PYTHON_VER}${PYTHON_ABIVER} \
- ac_cv_lib_elf_gelf_getvernaux=no # otherwise fails to build in presence of devel/elfutils
+ am_cv_python_version=${PYTHON_VER}${PYTHON_ABIVER}
CONFIGURE_ENV= LUA_CFLAGS=-I${LUA_INCDIR} \
LUA_LIBS="-L${LUA_LIBDIR} -llua-${LUA_VER} -lm"
INSTALL_TARGET= install-strip
diff --git a/archivers/rpm4/files/patch-tools_elfdeps.c b/archivers/rpm4/files/patch-tools_elfdeps.c
new file mode 100644
index 000000000000..6f71f12f4c9e
--- /dev/null
+++ b/archivers/rpm4/files/patch-tools_elfdeps.c
@@ -0,0 +1,11 @@
+--- tools/elfdeps.c.orig 2023-01-16 16:44:45.666870000 -0500
++++ tools/elfdeps.c 2023-01-16 16:44:57.548011000 -0500
+@@ -84,7 +84,7 @@
+ if (ehdr->e_ident[EI_CLASS] == ELFCLASS64) {
+ switch (ehdr->e_machine) {
+ case EM_ALPHA:
+- case EM_FAKE_ALPHA:
++ case EM_ALPHA_STD:
+ /* alpha doesn't traditionally have 64bit markers */
+ break;
+ default:
diff --git a/archivers/rpm4/pkg-plist b/archivers/rpm4/pkg-plist
index 44b26c0610da..091cc43e8a86 100644
--- a/archivers/rpm4/pkg-plist
+++ b/archivers/rpm4/pkg-plist
@@ -79,6 +79,7 @@ lib/rpm/check-files
lib/rpm/check-prereqs
lib/rpm/check-rpaths
lib/rpm/check-rpaths-worker
+lib/rpm/elfdeps
lib/rpm/fileattrs/debuginfo.attr
lib/rpm/fileattrs/desktop.attr
lib/rpm/fileattrs/elf.attr