all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH.
@ 2024-05-22  9:36 Sughosha via Guix-patches via
  2024-05-26 18:51 ` Kaelyn via Guix-patches via
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Sughosha via Guix-patches via @ 2024-05-22  9:36 UTC (permalink / raw)
  To: 71109; +Cc: Sughosha

This fixes not finding vulkan-loader.

* gnu/packages/vulkan.scm (vulkan-tools)[arguments]<#:phases>:
Wrap-binaries with LD_LIBRARY_PATH.

Change-Id: I9aaf1cf04f70f1da976fa84d2189ca2c01b9520f
---
 gnu/packages/vulkan.scm | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 4c53a19aba..dcf97e98dd 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -368,7 +368,16 @@ (define-public vulkan-tools
                   (replace 'check
                     (lambda* (#:key tests? #:allow-other-keys)
                       (when tests?
-                        (invoke "./tests/vulkan_tools_tests")))))))
+                        (invoke "./tests/vulkan_tools_tests"))))
+                  (add-after 'install 'wrap-binaries
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (for-each
+                        (lambda (file)
+                          (wrap-program file
+                            `("LD_LIBRARY_PATH" ":" =
+                               (,(getenv "LIBRARY_PATH")))))
+                        (find-files (string-append (assoc-ref outputs "out")
+                                                   "/bin"))))))))
     (home-page
      "https://github.com/KhronosGroup/Vulkan-Tools")
     (synopsis "Tools and utilities for Vulkan")

base-commit: e9b25a6c6c626a560d28a1f732e6e5d362d584a4
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH.
  2024-05-22  9:36 [bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH Sughosha via Guix-patches via
@ 2024-05-26 18:51 ` Kaelyn via Guix-patches via
  2024-05-31 10:38 ` Ludovic Courtès
  2024-06-02  1:19 ` nathan via Guix-patches via
  2 siblings, 0 replies; 8+ messages in thread
From: Kaelyn via Guix-patches via @ 2024-05-26 18:51 UTC (permalink / raw)
  To: 71109@debbugs.gnu.org

Hi,

This patch looks good to me, and I've confirmed it fixes the issue with vulkaninfo not running.

I am curious though as to what caused vulkaninfo to need LD_LIBRARY_PATH, as before the the vulkan updates a couple of months ago (at least as of gitish 4d79a9c from early April), vulkaninfo worked fine without needing LD_LIBRARY_PATH set. The new need does have me a bit concerned that other vulkan apps which used to work may need a similar workaround to keep functioning as expected.

Cheers,
Kaelyn




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH.
  2024-05-22  9:36 [bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH Sughosha via Guix-patches via
  2024-05-26 18:51 ` Kaelyn via Guix-patches via
@ 2024-05-31 10:38 ` Ludovic Courtès
  2024-05-31 15:21   ` Sughosha via Guix-patches via
  2024-05-31 16:47   ` Kaelyn via Guix-patches via
  2024-06-02  1:19 ` nathan via Guix-patches via
  2 siblings, 2 replies; 8+ messages in thread
From: Ludovic Courtès @ 2024-05-31 10:38 UTC (permalink / raw)
  To: Sughosha; +Cc: 71109, Kaelyn

Hi,

Sughosha <sughosha@disroot.org> skribis:

> This fixes not finding vulkan-loader.

Could you show how to test it?

> +                          (wrap-program file
> +                            `("LD_LIBRARY_PATH" ":" =
> +                               (,(getenv "LIBRARY_PATH")))))

This is probably a bit too broad because LIBRARY_PATH includes
build-time-only dependencies (python, gawk, binutils, bzip2, etc.).

Could we explicitly list what needs to be there instead?

Also maybe change ‘=’ to ‘suffix’ so users can still override
LD_LIBRARY_PATH.

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH.
  2024-05-31 10:38 ` Ludovic Courtès
@ 2024-05-31 15:21   ` Sughosha via Guix-patches via
  2024-05-31 16:47   ` Kaelyn via Guix-patches via
  1 sibling, 0 replies; 8+ messages in thread
From: Sughosha via Guix-patches via @ 2024-05-31 15:21 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 71109, Kaelyn

On Friday, May 31, 2024 4:08:53 PM IST Ludovic Courtès wrote:
> Hi,
> 
> Sughosha <sughosha@disroot.org> skribis:
> > This fixes not finding vulkan-loader.
> 
> Could you show how to test it?
> 
> > +                          (wrap-program file
> > +                            `("LD_LIBRARY_PATH" ":" =
> > +                               (,(getenv "LIBRARY_PATH")))))
> 
> This is probably a bit too broad because LIBRARY_PATH includes
> build-time-only dependencies (python, gawk, binutils, bzip2, etc.).
> 
> Could we explicitly list what needs to be there instead?
> 
> Also maybe change ‘=’ to ‘suffix’ so users can still override
> LD_LIBRARY_PATH.
> 
> Thanks,
> Ludo’.
Hi,
Thanks for your review!

> Could you show how to test it?
Currently if I just run `vulkaninfo`, this error appears:
```
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.
```
I don't know if something should be patched before building itself.
But if I run: `LD_LIBRARY_PATH=$(guix build vulkan-loader)/lib vulkaninfo`, 
the program will be executed without any error.

> This is probably a bit too broad because LIBRARY_PATH includes
> build-time-only dependencies (python, gawk, binutils, bzip2, etc.).
If I wrap only with vulkan-loader's library path also, it works. But would it 
be a "right" way of wrapping a program.

> Also maybe change ‘=’ to ‘suffix’ so users can still override
Yes, you are right. I will change it.

-- 
Sughosha






^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH.
  2024-05-31 10:38 ` Ludovic Courtès
  2024-05-31 15:21   ` Sughosha via Guix-patches via
@ 2024-05-31 16:47   ` Kaelyn via Guix-patches via
  1 sibling, 0 replies; 8+ messages in thread
From: Kaelyn via Guix-patches via @ 2024-05-31 16:47 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 71109, Sughosha

Hi,

On Friday, May 31st, 2024 at 3:38 AM, Ludovic Courtès <ludo@gnu.org> wrote:

> 
> 
> Hi,
> 
> Sughosha sughosha@disroot.org skribis:
> 
> > This fixes not finding vulkan-loader.
> 
> 
> Could you show how to test it?

At least for me, the problem shows up simply with vulkan-tools installed (or using "guix shell vulkan-tools") using a guix commit after the latest (1.3.280) vulkan updates. Simply running "vulkaninfo" results in the error:

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.

> 
> > + (wrap-program file
> > + `("LD_LIBRARY_PATH" ":" =
> > + (,(getenv "LIBRARY_PATH")))))
> 
> 
> This is probably a bit too broad because LIBRARY_PATH includes
> build-time-only dependencies (python, gawk, binutils, bzip2, etc.).
> 
> Could we explicitly list what needs to be there instead?

A bit of local testing just now suggests setting LD_LIBRARY_PATH to the vulkan-loader package's lib dir should be enough to resolve the error.

Cheers,
Kaelyn

> Also maybe change ‘=’ to ‘suffix’ so users can still override
> LD_LIBRARY_PATH.
> 
> Thanks,
> Ludo’.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH.
  2024-05-22  9:36 [bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH Sughosha via Guix-patches via
  2024-05-26 18:51 ` Kaelyn via Guix-patches via
  2024-05-31 10:38 ` Ludovic Courtès
@ 2024-06-02  1:19 ` nathan via Guix-patches via
  2024-06-11 21:27   ` bug#71109: " Ludovic Courtès
  2024-06-11 22:02   ` [bug#71109] " Ludovic Courtès
  2 siblings, 2 replies; 8+ messages in thread
From: nathan via Guix-patches via @ 2024-06-02  1:19 UTC (permalink / raw)
  To: sughosha, 71109

[-- Attachment #1: Type: text/plain, Size: 533 bytes --]

commit e156996c478a8e5d040ccf199437bcdbdbab63ed in vulkan-tools makes it 
use volk to load vulkan instead of a bunch of custom code in the repo.
volk uses dlopen("libvulkan.so.1").
i dont remember volk ever working, so this just propagated the bug to 
another program.
attached is a patch to hard-code the libvulkan.so path into volk.

vulkan-headers also has dlopen for libvulkan.so.
i dont know which programs use it, but next time we have to rebuild 
everything we may as well patch it.
i attached a patch that shows how to do it.

[-- Attachment #2: 0001-example-of-how-to-patch-patch-of-vulkan-loader-into-.patch --]
[-- Type: text/x-patch, Size: 2709 bytes --]

From 811d7567098e00711ee4c9c80afbe544ebe1c08e Mon Sep 17 00:00:00 2001
Message-ID: <811d7567098e00711ee4c9c80afbe544ebe1c08e.1717290934.git.nathan_mail@nborghese.com>
From: nathan <nathan_mail@nborghese.com>
Date: Sat, 1 Jun 2024 21:14:13 -0400
Subject: [PATCH] example of how to patch patch of vulkan-loader into
 vulkan-headers

Change-Id: Ic674a4d965d8049e388d75137111ed0253ca3b18
---
 gnu/packages/vulkan.scm | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 4c53a19aba..2fc2feeeba 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -238,7 +238,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 vulkan-headers/no-loader
   (package
     (name "vulkan-headers")
     (version "1.3.280.0")
@@ -255,6 +256,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")
@@ -262,6 +264,24 @@ (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-loader-path
+              (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "include/vulkan/vulkan.hpp"
+                  (("dlopen\\( \"libvulkan.so")
+                   (string-append "dlopen(\"" (assoc-ref inputs "vulkan-loader")
+                                  "/lib/libvulkan.so")))))))))
+    (inputs
+     (modify-inputs (package-inputs vulkan-headers/no-loader)
+       (prepend vulkan-loader)))
+    (properties '())))
+
 (define-public vulkan-loader
   (package
     (name "vulkan-loader")
@@ -318,7 +338,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: fa7906d64881ee12e0c418136b44c73766e3d169
-- 
2.45.1


[-- Attachment #3: 0001-gnu-volk-Hard-code-path-of-vulkan-loader-for-dynamic.patch --]
[-- Type: text/x-patch, Size: 1944 bytes --]

From ee4581690b6486a65bf0e4faed3f2c88cac70d9e Mon Sep 17 00:00:00 2001
Message-ID: <ee4581690b6486a65bf0e4faed3f2c88cac70d9e.1717286310.git.nathan_mail@nborghese.com>
From: nathan <nathan_mail@nborghese.com>
Date: Sat, 1 Jun 2024 19:55:24 -0400
Subject: [PATCH] gnu: volk: Hard-code path of vulkan-loader for dynamic
 loading

* gnu/packages/vulkan.scm (volk):
[arguments]: use gexp.
<#:phases>: patch dlopen with libvulkan.so. fixes vulkan-tools and potentially
other programs too.
[input]: add vulkan-loader

Change-Id: I5ef0eb13d35e517b8947faddace641882a775b80
---
 gnu/packages/vulkan.scm | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 4c53a19aba..215a592266 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -568,9 +568,18 @@ (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(\"" (assoc-ref inputs "vulkan-loader")
+                                "/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

base-commit: fa7906d64881ee12e0c418136b44c73766e3d169
-- 
2.45.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* bug#71109: [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH.
  2024-06-02  1:19 ` nathan via Guix-patches via
@ 2024-06-11 21:27   ` Ludovic Courtès
  2024-06-11 22:02   ` [bug#71109] " Ludovic Courtès
  1 sibling, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2024-06-11 21:27 UTC (permalink / raw)
  To: nathan; +Cc: 71109-done, sughosha

Hi nathan and all,

nathan <nathan_mail@nborghese.com> skribis:

> From 811d7567098e00711ee4c9c80afbe544ebe1c08e Mon Sep 17 00:00:00 2001
> Message-ID: <811d7567098e00711ee4c9c80afbe544ebe1c08e.1717290934.git.nathan_mail@nborghese.com>
> From: nathan <nathan_mail@nborghese.com>
> Date: Sat, 1 Jun 2024 21:14:13 -0400
> Subject: [PATCH] example of how to patch patch of vulkan-loader into
>  vulkan-headers
>
> Change-Id: Ic674a4d965d8049e388d75137111ed0253ca3b18

[...]

> From ee4581690b6486a65bf0e4faed3f2c88cac70d9e Mon Sep 17 00:00:00 2001
> Message-ID: <ee4581690b6486a65bf0e4faed3f2c88cac70d9e.1717286310.git.nathan_mail@nborghese.com>
> From: nathan <nathan_mail@nborghese.com>
> Date: Sat, 1 Jun 2024 19:55:24 -0400
> Subject: [PATCH] gnu: volk: Hard-code path of vulkan-loader for dynamic
>  loading
>
> * gnu/packages/vulkan.scm (volk):
> [arguments]: use gexp.
> <#:phases>: patch dlopen with libvulkan.so. fixes vulkan-tools and potentially
> other programs too.
> [input]: add vulkan-loader
>
> Change-Id: I5ef0eb13d35e517b8947faddace641882a775b80

These two patches make sense to me.

I applied them with minor tweaks: using ‘search-input-file’ rather than
‘assoc-ref’ in build phases, and commit log modifications to match our
conventions.

Thank you!

Ludo’.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH.
  2024-06-02  1:19 ` nathan via Guix-patches via
  2024-06-11 21:27   ` bug#71109: " Ludovic Courtès
@ 2024-06-11 22:02   ` Ludovic Courtès
  1 sibling, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2024-06-11 22:02 UTC (permalink / raw)
  To: nathan; +Cc: John Kehayias, 71109, sughosha

[-- Attachment #1: Type: text/plain, Size: 359 bytes --]

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’.


[-- Attachment #2: 0001-gnu-vulkan-headers-Hard-code-libvulkan.so-file-name.patch --]
[-- Type: text/x-patch, Size: 3140 bytes --]

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


[-- Attachment #3: 0002-gnu-volk-Hard-code-path-of-vulkan-loader-for-dynamic.patch --]
[-- Type: text/x-patch, Size: 2527 bytes --]

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


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-06-11 22:03 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-22  9:36 [bug#71109] [PATCH] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH Sughosha via Guix-patches via
2024-05-26 18:51 ` Kaelyn via Guix-patches via
2024-05-31 10:38 ` Ludovic Courtès
2024-05-31 15:21   ` Sughosha via Guix-patches via
2024-05-31 16:47   ` Kaelyn via Guix-patches via
2024-06-02  1:19 ` nathan via Guix-patches via
2024-06-11 21:27   ` bug#71109: " Ludovic Courtès
2024-06-11 22:02   ` [bug#71109] " Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.