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

Reply via email to