Subject: [PATCH 4/6] gnu: qtserialport: Use the store paths for dynamically loaded libs.

From: Hartmut Goebel <[email-masked]>
Date: Sat, 3 Feb 2018 20:25:03 +0100

Adobt the NixOS patches as of 2018-01-19 for qtserialport.

* gnu/packages/qt.scm(qtserialport)[#:phases]<patch-dlopen-paths>:
  New phase.
---
 gnu/packages/qt.scm | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 45495dd6c..4fc108dac 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1002,6 +1002,18 @@ 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 path, otherwise the lib will be searched in
+               ;; the actual executable's RUNPATH, which may not include libudev.
+               (("^\\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.")))
-- 
2.13.6