From 0c644a8da2cbc7dec5dd136d918143498606fc00 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Tue, 21 May 2024 12:23:23 -0500 Subject: [PATCH] glib: Depend on elfutils instead of libelf where possible The libelf library is antiquated. The elfutils package is actively maintained and provides its own libelf implementation, which is the standard implementation on Linux. Since elfutils can not be used everywhere, only use it for supported configurations. --- recipes/glib/all/conanfile.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/recipes/glib/all/conanfile.py b/recipes/glib/all/conanfile.py index 6ccdcc81fb42a..c756b81acccfb 100644 --- a/recipes/glib/all/conanfile.py +++ b/recipes/glib/all/conanfile.py @@ -68,7 +68,10 @@ def requirements(self): self.requires("libffi/3.4.4") self.requires("pcre2/10.42") if self.options.get_safe("with_elf"): - self.requires("libelf/0.8.13") + if is_apple_os(self) or self.settings.compiler not in ["clang", "gcc"]: + self.requires("libelf/0.8.13") + else: + self.requires("elfutils/0.190") if self.options.get_safe("with_mount"): self.requires("libmount/2.39") if self.options.get_safe("with_selinux"): @@ -230,7 +233,11 @@ def package_info(self): self.cpp_info.components["gio-2.0"].requires.append("libselinux::libselinux") if self.options.get_safe("with_elf"): - self.cpp_info.components["gresource"].requires.append("libelf::libelf") # this is actually an executable + # gresource is actually an executable + if is_apple_os(self) or self.settings.compiler not in ["clang", "gcc"]: + self.cpp_info.components["gresource"].requires.append("libelf::libelf") + else: + self.cpp_info.components["gresource"].requires.append("elfutils::libelf") self.env_info.GLIB_COMPILE_SCHEMAS = os.path.join(self.package_folder, "bin", "glib-compile-schemas") self.env_info.PATH.append(os.path.join(self.package_folder, "bin"))