diff mbox series

[bug#71109] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH.

Message ID 66f9f6e2-434b-08e7-b5d5-c9d1cfd99b50@nborghese.com
State New
Headers show
Series [bug#71109] gnu: vulkan-tools: Wrap binaries with LD_LIBRARY_PATH. | expand

Commit Message

nathan June 2, 2024, 1:19 a.m. UTC
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.

Comments

Ludovic Courtès June 11, 2024, 9:27 p.m. UTC | #1
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’.
diff mbox series

Patch

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