M gnu/local.mk => gnu/local.mk +1 -0
@@ 2437,6 2437,7 @@ dist_patch_DATA = \
%D%/packages/patches/vtk-7-gcc-11-compat.patch \
%D%/packages/patches/vtk-7-hdf5-compat.patch \
%D%/packages/patches/vtk-7-python-compat.patch \
+ %D%/packages/patches/vulkan-tools-wayland-1.24.patch \
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
%D%/packages/patches/warzone2100-unbundle-libs.patch \
%D%/packages/patches/wcstools-extend-makefiles.patch \
M gnu/packages/freedesktop.scm => gnu/packages/freedesktop.scm +3 -4
@@ 1363,7 1363,7 @@ in and for C++.")
(define-public wayland
(package
(name "wayland")
- (version "1.23.1")
+ (version "1.24.0")
(source (origin
(method url-fetch)
(uri (string-append "https://gitlab.freedesktop.org/" name
@@ 1371,12 1371,11 @@ in and for C++.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1vg5h6d94hglh7724q6wx9dpg4y0afvxksankp1hwbcy76lb4kw6"))))
+ "0dh5bldg24ajxz7xmylwm01nmj572x1vb0ya9qrppmhsl23j92c2"))))
(build-system meson-build-system)
(outputs '("out" "doc"))
(arguments
- (list #:parallel-tests? #f
- #:phases
+ (list #:phases
#~(modify-phases %standard-phases
(add-after 'install 'move-doc
(lambda _
A gnu/packages/patches/vulkan-tools-wayland-1.24.patch => gnu/packages/patches/vulkan-tools-wayland-1.24.patch +100 -0
@@ 0,0 1,100 @@
+From f546743016f5301c063f2c50af0ea43dd2485ef4 Mon Sep 17 00:00:00 2001
+From: Charles Giessen <charles@lunarg.com>
+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);
+ }
M gnu/packages/vulkan.scm => gnu/packages/vulkan.scm +1 -0
@@ 456,6 456,7 @@ and the ICD.")
;; Disable driver info test since it relies on git branch info
(("ASSERT_EQ\\(std::string\\(driver_properties\\.driverInfo\\)")
"// ASSERT_EQ(std::string(driver_properties.driverInfo)")))
+ (patches (search-patches "vulkan-tools-wayland-1.24.patch"))
(sha256
(base32
"152sl309k2lw38x6r15ddyf55dn1wc26pf1idd73nd5x2ax5bd73"))))