summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/qt.scm13
1 files changed, 13 insertions, 0 deletions
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 361bcf6b6e..4cf1ed5735 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -999,6 +999,19 @@ compositor libraries.")))
     (inputs
      `(("qtbase" ,qtbase)
        ("eudev" ,eudev)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments qtsvg)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'patch-dlopen-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/serialport/qtudev_p.h"
+               ;; Use the absolute paths for dynamically loaded libs,
+               ;; otherwise the lib will be searched in LD_LIBRARY_PATH which
+               ;; typically is not set in guix.
+               (("^\\s*(udevLibrary->setFileNameAndVersion\\(QStringLiteral\\(\")(udev\"\\),\\s*[0-9]+\\);)" _ a b)
+                (string-append a (assoc-ref inputs "eudev") "/lib/lib" b)))
+             #t))))))
     (synopsis "Qt Serial Port module")
     (description "The Qt Serial Port module provides the library for
 interacting with serial ports from within Qt.")))