aboutsummaryrefslogtreecommitdiff
path: root/archivers/rpm4
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2023-01-16 21:47:03 +0000
committerMark Johnston <markj@FreeBSD.org>2023-01-23 16:04:36 +0000
commite5c98e35692008f9633e768e2875d93b9dc93a25 (patch)
tree318221260584ac5f63ff706739184c6c4155439a /archivers/rpm4
parent9451684e51c2a4e39b9987c6b67faf03cc28c7df (diff)
downloadports-e5c98e35692008f9633e768e2875d93b9dc93a25.tar.gz
ports-e5c98e35692008f9633e768e2875d93b9dc93a25.zip
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
Diffstat (limited to 'archivers/rpm4')
-rw-r--r--archivers/rpm4/Makefile12
-rw-r--r--archivers/rpm4/files/patch-tools_elfdeps.c11
-rw-r--r--archivers/rpm4/pkg-plist1
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