[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PAT
From: |
Ludovic Courtès |
Subject: |
[bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH. |
Date: |
Wed, 12 Jun 2024 00:02:14 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hi,
I spoke a bit too fast: given that many packages depend on
‘vulkan-headers’, this should be applied on a branch.
Attached as the updated patches.
John, could you apply them on the ‘mesa-updates’ branch? (I realized
there’s no formal ‘mesa’ team contrary to what I thought; perhaps there
should be one?).
Thanks,
Ludo’.
>From 577a58ac4d23e7fa749fddb3007a3ad14c40f38d Mon Sep 17 00:00:00 2001
Message-ID:
<577a58ac4d23e7fa749fddb3007a3ad14c40f38d.1718143100.git.ludo@gnu.org>
From: nathan <nathan_mail@nborghese.com>
Date: Sat, 1 Jun 2024 21:14:13 -0400
Subject: [PATCH 1/2] gnu: vulkan-headers: Hard-code libvulkan.so file name.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* gnu/packages/vulkan.scm (vulkan-headers): Rename to…
(vulkan-headers/no-loader): … this.
(vulkan-headers): New variable.
(vulkan-loader): Depend on ‘vulkan-headers/no-loader’.
Change-Id: Ic674a4d965d8049e388d75137111ed0253ca3b18
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
---
gnu/packages/vulkan.scm | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 25542c1e064..5ff47be92e2 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -246,7 +246,8 @@ (define-public glslang
;; include/SPIRV/{bitutils,hex_float}.h are Apache 2.0.
license:asl2.0))))
-(define-public vulkan-headers
+;; vulkan-headers, but without the path to vulkan-loader patched in.
+(define-public vulkan-headers/no-loader
(package
(name "vulkan-headers")
(version "1.3.280.0")
@@ -263,6 +264,7 @@ (define-public vulkan-headers
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; No tests.
+ (properties '((hidden? . #t)))
(home-page
"https://github.com/KhronosGroup/Vulkan-Headers")
(synopsis "Vulkan Header files and API registry")
@@ -270,6 +272,25 @@ (define-public vulkan-headers
"Vulkan-Headers contains header files and API registry for Vulkan.")
(license (list license:asl2.0)))) ;LICENSE.txt
+(define-public vulkan-headers
+ (package
+ (inherit vulkan-headers/no-loader)
+ (arguments
+ (substitute-keyword-arguments (package-arguments vulkan-headers/no-loader)
+ ((#:phases phases #~%standard-phases)
+ #~(modify-phases #$phases
+ (add-after 'unpack 'patch-libvulkan-file-name
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "include/vulkan/vulkan.hpp"
+ (("dlopen\\( \"libvulkan.so")
+ (string-append "dlopen(\""
+ (search-input-file
+ inputs "/lib/libvulkan.so"))))))))))
+ (inputs
+ (modify-inputs (package-inputs vulkan-headers/no-loader)
+ (prepend vulkan-loader)))
+ (properties '())))
+
(define-public vulkan-loader
(package
(name "vulkan-loader")
@@ -326,7 +347,7 @@ (define-public vulkan-loader
python
wayland))
(inputs
- (list vulkan-headers libxrandr))
+ (list vulkan-headers/no-loader libxrandr))
(native-search-paths
(list (search-path-specification
(variable "XDG_DATA_DIRS")
base-commit: 7daf9328921f9f7d4fe4839d8e16091bd9f06072
--
2.45.1
>From 2cb9899209d1807cd18e9ed68a634faca48c6d89 Mon Sep 17 00:00:00 2001
Message-ID:
<2cb9899209d1807cd18e9ed68a634faca48c6d89.1718143100.git.ludo@gnu.org>
In-Reply-To:
<577a58ac4d23e7fa749fddb3007a3ad14c40f38d.1718143100.git.ludo@gnu.org>
References:
<577a58ac4d23e7fa749fddb3007a3ad14c40f38d.1718143100.git.ludo@gnu.org>
From: nathan <nathan_mail@nborghese.com>
Date: Sat, 1 Jun 2024 19:55:24 -0400
Subject: [PATCH 2/2] gnu: volk: Hard-code path of vulkan-loader for dynamic
loading
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Until now, we’d get:
$ guix shell vulkan-tools -- vulkaninfo
ERROR at
/tmp/guix-build-vulkan-tools-1.3.280.0.drv-0/source/vulkaninfo/./vulkaninfo.h:412:
Failed to initialize: Vulkan loader is not installed, not found, or failed to
load.
This patch fixes it and potentially for other programs as well.
* gnu/packages/vulkan.scm (volk)[arguments]: use gexp.
<#:phases>: Patch dlopen with libvulkan.so.
[input]: Add vulkan-loader.
Change-Id: I5ef0eb13d35e517b8947faddace641882a775b80
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
---
gnu/packages/vulkan.scm | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 5ff47be92e2..5d322f3ddb9 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -597,9 +597,19 @@ (define-public volk
"0x4jhc8n9c4k8svmmcaxxs613xbsav7wam94gacddlm738cwp13v"))))
(build-system cmake-build-system)
(arguments
- '(#:tests? #f ;no test
- #:configure-flags '("-DVOLK_INSTALL=ON" "-DVOLK_PULL_IN_VULKAN=ON")))
- (inputs (list vulkan-headers))
+ (list
+ #:tests? #f ;no test
+ #:configure-flags #~(list "-DVOLK_INSTALL=ON" "-DVOLK_PULL_IN_VULKAN=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-loader-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "volk.c"
+ (("dlopen\\(\"libvulkan.so")
+ (string-append "dlopen(\""
+ (search-input-file
+ inputs "/lib/libvulkan.so")))))))))
+ (inputs (list vulkan-headers vulkan-loader))
(synopsis "Meta loader for Vulkan API")
(description
"Volk is a meta-loader for Vulkan. It allows you to dynamically load
--
2.45.1