commit: 6a277bf90fe7cde4c8cba0b95620691e21b101d5 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Sun Aug 3 11:29:02 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Aug 3 11:35:41 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6a277bf9
dev-util/vulkan-tools: fix USE=cube vs >=wayland-1.24.0 Closes: https://bugs.gentoo.org/959725 Signed-off-by: Sam James <sam <AT> gentoo.org> .../vulkan-tools-1.4.321.0-pkgconfig-quoting.patch | 104 +++++++++++++++++++++ .../vulkan-tools/vulkan-tools-1.4.321.0.ebuild | 4 + 2 files changed, 108 insertions(+) diff --git a/dev-util/vulkan-tools/files/vulkan-tools-1.4.321.0-pkgconfig-quoting.patch b/dev-util/vulkan-tools/files/vulkan-tools-1.4.321.0-pkgconfig-quoting.patch new file mode 100644 index 000000000000..107131ac4c11 --- /dev/null +++ b/dev-util/vulkan-tools/files/vulkan-tools-1.4.321.0-pkgconfig-quoting.patch @@ -0,0 +1,104 @@ +https://bugs.gentoo.org/959725 +https://github.com/KhronosGroup/Vulkan-Tools/issues/1130 +https://github.com/KhronosGroup/Vulkan-Tools/pull/1134 + +From f546743016f5301c063f2c50af0ea43dd2485ef4 Mon Sep 17 00:00:00 2001 +From: Charles Giessen <[email protected]> +Date: Thu, 17 Jul 2025 09:56:40 -0500 +Subject: [PATCH] build: Remove pkg-config provided library names + +The library names of Xcb, Xlib, and Wayland do not need to be queried from pkg-config, +instead they can be hardcoded to use the fallback names. + +The intent of querying the library names was to prevent issues where the hardcoded name +was not the platform-appropriate name. But because <library>_LINK_LIBRARIES can have +more than one library name, the logic to assign <library>_LINK_LIBRARIES into a compile +definition breaks horribly. While it is possible to handle this in CMake, the dlopen code would +also have to handle it which is much more error prone. +--- + cube/CMakeLists.txt | 20 -------------------- + cube/wayland_loader.h | 3 --- + cube/xcb_loader.h | 3 --- + cube/xlib_loader.h | 3 --- + 4 files changed, 29 deletions(-) + +diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt +index 7e135e79b..dac6bfed9 100644 +--- a/cube/CMakeLists.txt ++++ b/cube/CMakeLists.txt +@@ -307,16 +307,6 @@ if (ANDROID) + return() + endif() + +-if (XCB_LINK_LIBRARIES) +- target_compile_definitions(vkcube PRIVATE "XCB_LIBRARY=\"${XCB_LINK_LIBRARIES}\"") +-endif() +-if (X11_LINK_LIBRARIES) +- target_compile_definitions(vkcube PRIVATE "XLIB_LIBRARY=\"${X11_LINK_LIBRARIES}\"") +-endif() +-if (WAYLAND_CLIENT_LINK_LIBRARIES) +- target_compile_definitions(vkcube PRIVATE "WAYLAND_LIBRARY=\"${WAYLAND_CLIENT_LINK_LIBRARIES}\"") +-endif() +- + # ---------------------------------------------------------------------------- + # vkcubepp + +@@ -360,16 +350,6 @@ target_include_directories(vkcubepp PRIVATE .) + target_compile_definitions(vkcubepp PRIVATE ${ENABLED_CUBE_PLATFORMS}) + target_link_libraries(vkcubepp ${CMAKE_DL_LIBS} Vulkan::Headers) + +-if (XCB_LINK_LIBRARIES ) +- target_compile_definitions(vkcubepp PUBLIC "XCB_LIBRARY=\"${XCB_LINK_LIBRARIES}\"") +-endif() +-if (X11_LINK_LIBRARIES) +- target_compile_definitions(vkcubepp PUBLIC "XLIB_LIBRARY=\"${X11_LINK_LIBRARIES}\"") +-endif() +-if (WAYLAND_CLIENT_LINK_LIBRARIES) +- target_compile_definitions(vkcubepp PUBLIC "WAYLAND_LIBRARY=\"${WAYLAND_CLIENT_LINK_LIBRARIES}\"") +-endif() +- + if(APPLE) + install( + TARGETS vkcubepp +diff --git a/cube/wayland_loader.h b/cube/wayland_loader.h +index 2afab6e97..7d7d91412 100644 +--- a/cube/wayland_loader.h ++++ b/cube/wayland_loader.h +@@ -80,9 +80,6 @@ static PFN_wl_display_disconnect cube_wl_display_disconnect = NULL; + + static inline void *initialize_wayland() { + void *wayland_library = NULL; +-#if defined(WAYLAND_LIBRARY) +- wayland_library = dlopen(WAYLAND_LIBRARY, RTLD_NOW | RTLD_LOCAL); +-#endif + if (NULL == wayland_library) { + wayland_library = dlopen("libwayland-client.so.0", RTLD_NOW | RTLD_LOCAL); + } +diff --git a/cube/xcb_loader.h b/cube/xcb_loader.h +index a94d5ab56..cecd25402 100644 +--- a/cube/xcb_loader.h ++++ b/cube/xcb_loader.h +@@ -88,9 +88,6 @@ static PFN_xcb_screen_next cube_xcb_screen_next = NULL; + + void *initialize_xcb() { + void *xcb_library = NULL; +-#if defined(XCB_LIBRARY) +- xcb_library = dlopen(XCB_LIBRARY, RTLD_NOW | RTLD_LOCAL); +-#endif + if (NULL == xcb_library) { + xcb_library = dlopen("libxcb.so.1", RTLD_NOW | RTLD_LOCAL); + } +diff --git a/cube/xlib_loader.h b/cube/xlib_loader.h +index c7874d0e7..881789f18 100644 +--- a/cube/xlib_loader.h ++++ b/cube/xlib_loader.h +@@ -72,9 +72,6 @@ static PFN_XFlush cube_XFlush = NULL; + + void* initialize_xlib() { + void* xlib_library = NULL; +-#if defined(XLIB_LIBRARY) +- xlib_library = dlopen(XLIB_LIBRARY, RTLD_NOW | RTLD_LOCAL); +-#endif + if (NULL == xlib_library) { + xlib_library = dlopen("libX11.so.6", RTLD_NOW | RTLD_LOCAL); + } diff --git a/dev-util/vulkan-tools/vulkan-tools-1.4.321.0.ebuild b/dev-util/vulkan-tools/vulkan-tools-1.4.321.0.ebuild index 43fda15cc2f5..36062a6b11ca 100644 --- a/dev-util/vulkan-tools/vulkan-tools-1.4.321.0.ebuild +++ b/dev-util/vulkan-tools/vulkan-tools-1.4.321.0.ebuild @@ -41,6 +41,10 @@ DEPEND="${RDEPEND} test? ( ~media-libs/vulkan-loader-${PV}[${MULTILIB_USEDEP},wayland?,X?] ) " +PATCHES=( + "${FILESDIR}"/${PN}-1.4.321.0-pkgconfig-quoting.patch +) + pkg_setup() { MULTILIB_CHOST_TOOLS=( /usr/bin/vulkaninfo
