From 8107e8e7cb0b549bdc4789a52e69015cd64b7b8d Mon Sep 17 00:00:00 2001 From: Gleb Popov Date: Thu, 24 Apr 2025 11:12:15 +0300 Subject: [PATCH] devel/glib20: Prevent the silent grabbing of libelf from ports PR: 273479 --- devel/glib20/Makefile | 3 ++- devel/glib20/files/patch-gio_gresource-tool.c | 15 +++++++++++++++ devel/glib20/files/patch-gio_meson.build | 11 +++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 devel/glib20/files/patch-gio_gresource-tool.c create mode 100644 devel/glib20/files/patch-gio_meson.build diff --git a/devel/glib20/Makefile b/devel/glib20/Makefile index 170e4515ae0f..3ad20c2597cd 100644 --- a/devel/glib20/Makefile +++ b/devel/glib20/Makefile @@ -1,6 +1,6 @@ PORTNAME= glib DISTVERSION= 2.84.1 -PORTREVISION= 1 +PORTREVISION= 2 PORTEPOCH= 2 CATEGORIES= devel MASTER_SITES= GNOME @@ -42,6 +42,7 @@ MESON_ARGS= -Db_lundef=false \ -Ddefault_library=both \ -Dfile_monitor_backend='libinotify-kqueue' \ -Dinstalled_tests=false \ + -Dlibelf=disabled \ -Dlibmount=disabled \ -Druntime_dir=/var/run \ -Dselinux=disabled \ diff --git a/devel/glib20/files/patch-gio_gresource-tool.c b/devel/glib20/files/patch-gio_gresource-tool.c new file mode 100644 index 000000000000..1c58aa930ff4 --- /dev/null +++ b/devel/glib20/files/patch-gio_gresource-tool.c @@ -0,0 +1,15 @@ +--- gio/gresource-tool.c.orig 2025-04-03 14:38:51 UTC ++++ gio/gresource-tool.c +@@ -31,8 +31,10 @@ + #include + + #ifdef HAVE_LIBELF +-#include +-#include ++#include ++// fool libelf from ports to not include its libelf.h ++#define _LIBELF_H 1 ++#include + #endif + + #ifdef HAVE_MMAP diff --git a/devel/glib20/files/patch-gio_meson.build b/devel/glib20/files/patch-gio_meson.build new file mode 100644 index 000000000000..2a7e786fc478 --- /dev/null +++ b/devel/glib20/files/patch-gio_meson.build @@ -0,0 +1,11 @@ +--- gio/meson.build.orig 2025-04-03 14:38:51 UTC ++++ gio/meson.build +@@ -971,7 +971,7 @@ else + # This fallback is necessary on *BSD. elfutils isn't the only libelf + # implementation, and *BSD usually includes their own libelf as a system + # library which doesn't have a corresponding .pc file. +- libelf = cc.find_library('elf', required : get_option ('libelf')) ++ libelf = declare_dependency(link_args: '/lib/libelf.so.2') + have_libelf = libelf.found() + have_libelf = have_libelf and cc.has_function('elf_begin', dependencies : libelf) + have_libelf = have_libelf and cc.has_function('elf_getshdrstrndx', dependencies : libelf)