Subject: Re: [bug#69898] [PATCH] gnu: qtserialport: Update to 6.5.2

From: Maxim Cournoyer <[email-masked]>
Date: Sat, 06 Apr 2024 12:20:16 -0400

Hi,

Zac Berkowitz <[email-masked]> writes:

> Renames Qt5-based qtserialport to qtserialport-5 and updates qtserialport
> to Qt6 branch.  All existing packages pulling qtserialport have been
> redirected to qtserialport-5
>
> * gnu/packages/qt.scm (qtserialport): Update to 6.5.2
> * gnu/packages/qt.scm (qtserialport-5): Rename variable for Qt5
> * gnu/packages/engineering.scm (fritzing, candle): Use qtserialport-5
> definition
> * gnu/packages/geo.scm (qgis): Use qtserialport-5
> * gnu/packages/kde-utils.scm (atelier, libatcore): Use qtserialport-5
> * gnu/packages/qt.scm (qtserialbus, qtlocation, python-pyqt): Use
> qtserialport-5
> * gnu/packages/radio.scm (wsjtx, jtdx, js8call, sdrangel, wfview, qdmr): Use
> qtserialport-5

I've merged this change, with the following diff:

modified   gnu/packages/astronomy.scm
@@ -1368,7 +1368,7 @@ (define-public stellarium
               "-DENABLE_QT6=0"
               "-DENABLE_TESTING=0"
               (string-append "-DCMAKE_CXX_FLAGS=-isystem "
-                             #$(this-package-input "qtserialport-5") "/include/qt5"))
+                             #$(this-package-input "qtserialport") "/include/qt5"))

(the label is derived from the package name, not its variable name).

       #:phases
       #~(modify-phases %standard-phases
           (add-before 'check 'set-offscreen-display
modified   gnu/packages/qt.scm
@@ -2097,6 +2097,19 @@ (define-public qtserialport
        (sha256
         (base32 "0dywalgafvxi2jgdv9dk22hwwd8qsgk5xfybh75n3njmwmwnarg1"))))
     (build-system cmake-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-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.
+                     (("setFileNameAndVersion\\(QStringLiteral\\(\"udev\")")
+                      (format #f "setFileNameAndVersion(QStringLiteral(~s))"
+                              (string-append #$(this-package-input "eudev")
+                                             "/lib/libudev")))))))))

The source hasn't changed from Qt 5, so the same phase is still
relevant.

Alos dd some cosmetic adjustments to the change log commit message.

Thanks a lot for your contribution!

-- 
Maxim