guix/gnu/packages/patches/qtbase-patch-libvulkan.patch
Efraim Flashner 4a2281923a
gnu: qtbase: Always find libvulkan.
Fixes: guix/guix#3330

* gnu/packages/qt.scm (qtbase)[source]: Add patch.
[arguments]: Adjust a phase to substitute the location for libvulkan.so.
* gnu/packages/patches/qtbase-patch-libvulkan.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Co-authored-by: kestrelwx <kestrel.w@proton.me>
Change-Id: I39f1be5a30c5c17a4e4ea6c853b475f20ba8272c
Signed-off-by: Andreas Enge <andreas@enge.fr>
2025-12-15 10:13:25 +01:00

28 lines
1.3 KiB
Diff

Add the full name for libvulkan.so.1 so that we can patch it in the 'build phase.
Not sent upstream.
diff --git a/src/gui/vulkan/qbasicvulkanplatforminstance.cpp b/src/gui/vulkan/qbasicvulkanplatforminstance.cpp
index 47d9a7e9..80c929e5 100644
--- a/src/gui/vulkan/qbasicvulkanplatforminstance.cpp
+++ b/src/gui/vulkan/qbasicvulkanplatforminstance.cpp
@@ -45,7 +45,7 @@ QBasicPlatformVulkanInstance::~QBasicPlatformVulkanInstance()
void QBasicPlatformVulkanInstance::loadVulkanLibrary(const QString &defaultLibraryName, int defaultLibraryVersion)
{
- QVarLengthArray<std::pair<QString, int>, 3> loadList;
+ QVarLengthArray<std::pair<QString, int>, 4> loadList;
// First in the list of libraries to try is the manual override, relevant on
// embedded systems without a Vulkan loader and possibly with custom vendor
@@ -63,6 +63,11 @@ void QBasicPlatformVulkanInstance::loadVulkanLibrary(const QString &defaultLibra
if (defaultLibraryVersion >= 0)
loadList.append({ defaultLibraryName, -1 });
+#ifdef __linux__
+ // As a fallback we append to the list the full default name of libvulkan.
+ loadList.append({ QString::fromUtf8("libvulkan.so.1"), -1 });
+#endif
+
bool ok = false;
for (const auto &lib : loadList) {
m_vulkanLib.reset(new QLibrary);