Add serial-studio

  • Open
  • quality assurance status badge
Details
2 participants
  • Maxim Cournoyer
  • phodina
Owner
unassigned
Submitted by
phodina
Severity
normal
P
P
phodina wrote on 2 Dec 2022 06:29
(name . Guix Patches)(address . guix-patches@gnu.org)
FdB-RhExef-IOU04kHFAgSyRYyFcI76Ucn3z4Yt_-DmYQlFfBtgJClhjBbedMiC0spsbCItfpkC0oygW5EVNeu8BNx--m-JB5X30JsfWV8E=@protonmail.com
Hi,

this adds a nice GUI program to monitor communication on serial interfaces (e.g. UART).

----
Petr
Attachment: file
From 367d7da4a143949d11fbc76495f935dff7a3f25c Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Sun, 16 Jan 2022 17:59:22 +0100
Subject: [PATCH 1/4] gnu: Add qmqtt.

* gnu/packages/qt.scm (qmqtt): New variable.

Toggle diff (75 lines)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 30bf429897..6aaa9c47c2 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3363,6 +3363,68 @@ (define-public python-qt.py
bindings (PySide, PySide2, PyQt4 and PyQt5).")
(license license:expat)))
+(define-public qmqtt
+ (package
+ (name "qmqtt")
+ (version "1.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alex-spataru/qmqtt")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (modules '((guix build utils) (ice-9 ftw)
+ (srfi srfi-1)))
+ (snippet `(begin
+ (delete-file-recursively "tests/gtest/gtest")))
+ (sha256
+ (base32
+ "1l96cssa9hjmabds9k9nzisxnzr3ndi3r82m3lgwq9ip94kz05nw"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "qmake")))
+ (replace 'install
+ (lambda* (#:key outputs source #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")) (lib (string-append
+ out "/lib"))
+ (include (string-append out "/include")))
+ (mkdir-p lib)
+ (mkdir-p include)
+ (chdir "..") ;we were in dir tests
+ (copy-recursively "lib" lib)
+ (chdir "src/mqtt")
+ (for-each (lambda (file)
+ (install-file (string-append file) include))
+ '("qmqtt_client.h" "qmqtt_frame.h"
+ "qmqtt_global.h"
+ "qmqtt.h"
+ "qmqtt_message.h"
+ "qmqtt_networkinterface.h"
+ "qmqtt_routedmessage.h"
+ "qmqtt_router.h"
+ "qmqtt_routesubscription.h"
+ "qmqtt_socketinterface.h"
+ "qmqtt_timerinterface.h"
+ "qmqtt_message.h")))))
+ (replace 'check
+ (lambda* (#:key tests? test-options parallel- +
+ #:allow-other-keys)
+ +
+ (when tests?
+ (chdir "tests")
+ (substitute* "gtest/gtest.pro"
+ (("gtest") ""))
+ (invoke "qmake")))))))
+ (native-inputs (list googletest perl python))
+ (inputs (list qtbase-5 openssl qtwebsockets))
+ (home-page "https://github.com/alex-spataru/qmqtt")
+ (synopsis "MQTT Client")
+ (description "Provides an MQTT Client with SSL support and Websockets.")
+ (license license:expat)))
+
(define-public qscintilla
(package
(name "qscintilla")
--
2.38.1
From d4846647b80f28f71f9a0e779a98716f7e582f56 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 21 Jan 2022 06:31:23 +0100
Subject: [PATCH 3/4] gnu: qwt: Update to 6.2.0.

* gnu/packages/qt.scm (qwt): Update to 6.2.0.

Toggle diff (24 lines)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 71c8aafe3c..4621de0dad 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3731,7 +3731,7 @@ (define-public qtsolutions
(define-public qwt
(package
(name "qwt")
- (version "6.1.5")
+ (version "6.2.0")
(source
(origin
(method url-fetch)
@@ -3739,7 +3739,7 @@ (define-public qwt
(string-append "mirror://sourceforge/qwt/qwt/"
version "/qwt-" version ".tar.bz2"))
(sha256
- (base32 "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0"))))
+ (base32 "0c0mnyqa8rvs2bx946mbmfbh2ik4a0bmhwgn01rzvl2m758zd54i"))))
(build-system gnu-build-system)
(inputs
(list qtbase-5 qtsvg-5 qttools-5))
--
2.38.1
From 6b25d088bd158ad2c5baa7548c49a04bd0f09664 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 19 Jan 2022 12:01:22 +0100
Subject: [PATCH 2/4] gnu: Add qtcsv.

* gnu/packages/qt.scm (qtcsv): New variable.

Toggle diff (65 lines)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 6aaa9c47c2..71c8aafe3c 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1283,6 +1283,58 @@ (define-public qtconnectivity
(description "The Qt Connectivity modules provides modules for interacting
with Bluetooth and NFC.")))
+(define-public qtcsv
+ (package
+ (name "qtcsv")
+ (version "1.6")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/iamantony/qtcsv")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "109nbspnhaczm85wp1fqazmamdj2bh9wfv3anlslvll606lrfgir"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "qmake")))
+ (add-after 'unpack 'fix-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (substitute* "qtcsv.pro"
+ (("/usr") out)
+ (("\\$\\$PWD") out)))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")) (lib (string-append
+ out "/lib"))
+ (include (string-append out "/include")))
+ (mkdir-p include)
+ (mkdir-p lib)
+ (chdir "..") ;we were in dir tests
+ (copy-recursively "include" include)
+ (for-each (lambda (file)
+ (install-file (string-append file) lib))
+ '("libqtcsv.so" "libqtcsv.so.1"
+ "libqtcsv.so.1.6" "libqtcsv.so.1.6.0")))))
+ (replace 'check
+ (lambda* (#:key tests? test-options parallel-tests?
+ #:allow-other-keys)
+ (when tests?
+ (chdir "tests")
+ (invoke "qmake")))))))
+ (native-inputs (list perl python))
+ (inputs (list qtbase-5))
+ (home-page "https://github.com/iamantony/qtcsv")
+ (synopsis "Library for reading and writing CSV files")
+ (description "This package provides library for reading and writing CSV
+files.")
+ (license license:expat)))
+
(define-public qtwebsockets-5
(package (inherit qtsvg-5)
(name "qtwebsockets")
--
2.38.1
M
M
Maxim Cournoyer wrote on 16 Jan 2023 15:25
(name . phodina)(address . phodina@protonmail.com)(address . 59762@debbugs.gnu.org)
874jsqblp4.fsf@gmail.com
Hi Petr,

phodina <phodina@protonmail.com> writes:

Toggle quote (27 lines)
> Hi,
>
> this adds a nice GUI program to monitor communication on serial interfaces (e.g. UART).
>
> ----
> Petr
> From b134cf1d200c867c6b6c8a729a4ad212687a101d Mon Sep 17 00:00:00 2001
> From: Petr Hodina <phodina@protonmail.com>
> Date: Fri, 21 Jan 2022 06:30:28 +0100
> Subject: [PATCH 4/4] gnu: Add serial-studio.
>
> * gnu/packages/qt.scm (serial-studio): New variable.
> * gnu/local.mk: Add patch.
> * gnu/packages/patches/serial-studio-remove-qsimple-updater.patch: New file.
>
> diff --git a/gnu/packages/patches/serial-studio-remove-qsimple-updater.patch b/gnu/packages/patches/serial-studio-remove-qsimple-updater.patch
> new file mode 100644
> index 0000000000..f8f93364d6
> --- /dev/null
> +++ b/gnu/packages/patches/serial-studio-remove-qsimple-updater.patch
> @@ -0,0 +1,80 @@
> +From 22b0b5014be7911406b262aeb0864d36f1fbbab5 Mon Sep 17 00:00:00 2001
> +From: Petr Hodina <phodina@protonmail.com>
> +Date: Wed, 19 Jan 2022 14:52:08 +0100
> +Subject: [PATCH] Remove code dependent on QSimpleUpdater. Don't include
> + qwt.pri, qtcsv.pri and qmqtt.pri.

Ideally, the disabling of QSimpleUpdater would be configurable at build
time and upstreamed. The patch is not registered in gnu/local.mk in
this commit, although the commit log says it should be.

[...]

Toggle quote (23 lines)
> diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
> index 4621de0dad..d0521b4894 100644
> --- a/gnu/packages/qt.scm
> +++ b/gnu/packages/qt.scm
> @@ -3017,6 +3017,78 @@ (define (delete-unwanted-files child stat flag base level)
> system libraries.")
> (license license:lgpl2.1+)))
>
> +(define-public serial-studio
> + (package
> + (name "serial-studio")
> + (version "1.1.4")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/Serial-Studio/Serial-Studio")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (patches (search-patches
> + "serial-studio-remove-qsimple-updater.patch"))
> + (modules '((guix build utils) (ice-9 ftw)
> + (srfi srfi-1)))

I think the only module you require in your snippet is (guix build
utils).

Toggle quote (13 lines)
> + (snippet '(begin
> + (with-directory-excursion "libs"
> + (for-each
> + delete-file-recursively
> + '("qwt" "qtcsv" "qmqtt"
> + "QSimpleUpdater")))))
> + (sha256
> + (base32
> + "0qww2pmbvmq3cjx3xk8rxq0zf54y0b0j8bykn4aq3d2dii44m85y"))))
> + (build-system qt-build-system)
> + (arguments
> + `(#:tests? #f ;no test suite

Please use (list #:tests? #f #:phases #~(modify-phases %standard-phases
[...] for new packages definitions.

Toggle quote (30 lines)
> + #:phases
> + (modify-phases %standard-phases
> + (replace 'configure
> + (lambda* (#:key outputs inputs #:allow-other-keys)
> + (substitute* "Serial-Studio.pro"
> + (("/usr") (assoc-ref outputs "out"))
> + (("INCLUDEPATH \\+= src") (string-append "INCLUDEPATH += src
> +INCLUDEPATH += "
> + (assoc-ref inputs
> + "qwt")
> + "/include/qwt
> +"
> + "LIBS += -L"
> + (assoc-ref inputs
> + "qwt")
> + "/lib"
> + " -lqwt
> +"
> + "LIBS += -L"
> + (assoc-ref inputs
> + "qtcsv")
> + "/lib"
> + " -lqtcsv
> +"
> + "LIBS += -L"
> + (assoc-ref inputs
> + "qmqtt")
> + "/lib"
> + " -lQt5Qmqtt")))

The above indentation appears squashed right :-). I'd bring the
(string-append "INCLUDEPATH += src [...] on a new line, which will help
the rest fit more nicely.

Toggle quote (3 lines)
> + (invoke "qmake"))))))
> + (native-inputs (list qwt qttools pkg-config))

Please sort inputs.

Toggle quote (9 lines)
> + (inputs (list qtcsv
> + qmqtt
> + qwt
> + qtbase-5
> + qtserialport
> + qtsvg-5
> + qtdeclarative-5
> + qtquickcontrols2-5))

Ditto.

Toggle quote (4 lines)
> + (synopsis "Multi-purpose serial data visualization & processing
> program")

Replace "&" with "and".

Toggle quote (4 lines)
> + (description
> + "This package provides multi-purpose serial data visualization
> +and processing GUI program.")

This leaves me wanting to know a bit more, but upstream doesn't provide
much help, so OK.

Toggle quote (6 lines)
> + (license license:expat)))
> +
> (define-public single-application-qt5
> ;; Change in function signature, nheko requires at least this commit
> (let ((commit "dc8042b5db58f36e06ba54f16f38b16c5eea9053"))

--
Thanks,
Maxim
M
M
Maxim Cournoyer wrote on 16 Jan 2023 15:33
(name . phodina)(address . phodina@protonmail.com)(address . 59762@debbugs.gnu.org)
87y1q2a6r7.fsf@gmail.com
Hello!

Reviewing patch 2/4.

phodina <phodina@protonmail.com> writes:

Toggle quote (35 lines)
> Hi,
>
> this adds a nice GUI program to monitor communication on serial interfaces (e.g. UART).
>
> ----
> Petr
>
> From 367d7da4a143949d11fbc76495f935dff7a3f25c Mon Sep 17 00:00:00 2001
> From: Petr Hodina <phodina@protonmail.com>
> Date: Sun, 16 Jan 2022 17:59:22 +0100
> Subject: [PATCH 1/4] gnu: Add qmqtt.
>
> * gnu/packages/qt.scm (qmqtt): New variable.
>
> diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
> index 30bf429897..6aaa9c47c2 100644
> --- a/gnu/packages/qt.scm
> +++ b/gnu/packages/qt.scm
> @@ -3363,6 +3363,68 @@ (define-public python-qt.py
> bindings (PySide, PySide2, PyQt4 and PyQt5).")
> (license license:expat)))
>
> +(define-public qmqtt
> + (package
> + (name "qmqtt")
> + (version "1.0.0")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/alex-spataru/qmqtt")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (modules '((guix build utils) (ice-9 ftw)
> + (srfi srfi-1)))

Only (guix build utils) is needed.

Toggle quote (3 lines)
> + (snippet `(begin
> + (delete-file-recursively "tests/gtest/gtest")))

Extraneous 'begin' directive.

Toggle quote (7 lines)
> + (sha256
> + (base32
> + "1l96cssa9hjmabds9k9nzisxnzr3ndi3r82m3lgwq9ip94kz05nw"))))
> + (build-system cmake-build-system)
> + (arguments
> + `(#:phases (modify-phases %standard-phases

Please use plain list + gexps for new packages.

Toggle quote (4 lines)
> + (replace 'configure
> + (lambda* (#:key outputs #:allow-other-keys)
> + (invoke "qmake")))

Extraneous OUTPUTS argument.

Toggle quote (6 lines)
> + (replace 'install
> + (lambda* (#:key outputs source #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out")) (lib (string-append
> + out "/lib"))
> + (include (string-append out "/include")))

After switching to gexps, use gexp variables such as #$output.
Extraneous SOURCE argument.

Toggle quote (4 lines)
> + (mkdir-p lib)
> + (mkdir-p include)
> + (chdir "..") ;we were in dir tests

Prefer active tense (;navigate up from test directore), avoid 'we' as
much as possible.

Toggle quote (19 lines)
> + (copy-recursively "lib" lib)
> + (chdir "src/mqtt")
> + (for-each (lambda (file)
> + (install-file (string-append file) include))
> + '("qmqtt_client.h" "qmqtt_frame.h"
> + "qmqtt_global.h"
> + "qmqtt.h"
> + "qmqtt_message.h"
> + "qmqtt_networkinterface.h"
> + "qmqtt_routedmessage.h"
> + "qmqtt_router.h"
> + "qmqtt_routesubscription.h"
> + "qmqtt_socketinterface.h"
> + "qmqtt_timerinterface.h"
> + "qmqtt_message.h")))))
> + (replace 'check
> + (lambda* (#:key tests? test-options parallel- +
> + #:allow-other-keys)

Remove extraneous arguments (test-options, parallel-).

Toggle quote (10 lines)
> + (when tests?
> + (chdir "tests")
> + (substitute* "gtest/gtest.pro"
> + (("gtest") ""))
> + (invoke "qmake")))))))
> + (native-inputs (list googletest perl python))
> + (inputs (list qtbase-5 openssl qtwebsockets))
> + (home-page "https://github.com/alex-spataru/qmqtt")
> + (synopsis "MQTT Client")

"MQTT client"

Toggle quote (3 lines)
> + (description "Provides an MQTT Client with SSL support and Websockets.")
> + (license license:expat)))

Please use make it a full sentence starting with a subject, e.g. "This
package provides an MQTT client with [...]".

--
Thanks,
Maxim
M
M
Maxim Cournoyer wrote on 16 Jan 2023 15:37
(name . phodina)(address . phodina@protonmail.com)(address . 59762@debbugs.gnu.org)
87tu0qa6l8.fsf@gmail.com
Hello,

Reviewing patch 3 out of 4!

phodina <phodina@protonmail.com> writes:

Toggle quote (38 lines)
> Hi,
>
> this adds a nice GUI program to monitor communication on serial interfaces (e.g. UART).
>
> ----
> Petr
>
>
> From d4846647b80f28f71f9a0e779a98716f7e582f56 Mon Sep 17 00:00:00 2001
> From: Petr Hodina <phodina@protonmail.com>
> Date: Fri, 21 Jan 2022 06:31:23 +0100
> Subject: [PATCH 3/4] gnu: qwt: Update to 6.2.0.
>
> * gnu/packages/qt.scm (qwt): Update to 6.2.0.
>
> diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
> index 71c8aafe3c..4621de0dad 100644
> --- a/gnu/packages/qt.scm
> +++ b/gnu/packages/qt.scm
> @@ -3731,7 +3731,7 @@ (define-public qtsolutions
> (define-public qwt
> (package
> (name "qwt")
> - (version "6.1.5")
> + (version "6.2.0")
> (source
> (origin
> (method url-fetch)
> @@ -3739,7 +3739,7 @@ (define-public qwt
> (string-append "mirror://sourceforge/qwt/qwt/"
> version "/qwt-" version ".tar.bz2"))
> (sha256
> - (base32 "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0"))))
> + (base32 "0c0mnyqa8rvs2bx946mbmfbh2ik4a0bmhwgn01rzvl2m758zd54i"))))
> (build-system gnu-build-system)
> (inputs
> (list qtbase-5 qtsvg-5 qttools-5))

LGTM (you can push this one already), if you've verified it doesn't
break dependent packages.

--
Thanks,
Maxim
M
M
Maxim Cournoyer wrote on 16 Jan 2023 15:42
(name . phodina)(address . phodina@protonmail.com)(address . 59762@debbugs.gnu.org)
87pmbea6cn.fsf@gmail.com
Hi again!

phodina <phodina@protonmail.com> writes:

Toggle quote (41 lines)
> Hi,
>
> this adds a nice GUI program to monitor communication on serial interfaces (e.g. UART).
>
> ----
> Petr
>
>
>
> From 6b25d088bd158ad2c5baa7548c49a04bd0f09664 Mon Sep 17 00:00:00 2001
> From: Petr Hodina <phodina@protonmail.com>
> Date: Wed, 19 Jan 2022 12:01:22 +0100
> Subject: [PATCH 2/4] gnu: Add qtcsv.
>
> * gnu/packages/qt.scm (qtcsv): New variable.
>
> diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
> index 6aaa9c47c2..71c8aafe3c 100644
> --- a/gnu/packages/qt.scm
> +++ b/gnu/packages/qt.scm
> @@ -1283,6 +1283,58 @@ (define-public qtconnectivity
> (description "The Qt Connectivity modules provides modules for interacting
> with Bluetooth and NFC.")))
>
> +(define-public qtcsv
> + (package
> + (name "qtcsv")
> + (version "1.6")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/iamantony/qtcsv")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "109nbspnhaczm85wp1fqazmamdj2bh9wfv3anlslvll606lrfgir"))))
> + (build-system cmake-build-system)
> + (arguments
> + `(#:phases (modify-phases %standard-phases

Please switch to list + gexps.

Toggle quote (4 lines)
> + (replace 'configure
> + (lambda* (#:key outputs #:allow-other-keys)
> + (invoke "qmake")))

Use plain lambda without arguments (lambda _).

Toggle quote (3 lines)
> + (add-after 'unpack 'fix-install
> + (lambda* (#:key outputs #:allow-other-keys)

Ditto.
Toggle quote (3 lines)
> + (let* ((out (assoc-ref outputs "out")))
>

Use gexps variables.

Toggle quote (8 lines)
> + (substitute* "qtcsv.pro"
> + (("/usr") out)
> + (("\\$\\$PWD") out)))))
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out")) (lib (string-append
> + out "/lib"))

Ditto :-).

Toggle quote (5 lines)
> + (include (string-append out "/include")))
> + (mkdir-p include)
> + (mkdir-p lib)
> + (chdir "..") ;we were in dir tests

Same comment bout active tense as earlier... but it seems that'd no
longer be needed with the next comment implemented?

Toggle quote (12 lines)
> + (copy-recursively "include" include)
> + (for-each (lambda (file)
> + (install-file (string-append file) lib))
> + '("libqtcsv.so" "libqtcsv.so.1"
> + "libqtcsv.so.1.6" "libqtcsv.so.1.6.0")))))
> + (replace 'check
> + (lambda* (#:key tests? test-options parallel-tests?
> + #:allow-other-keys)
> + (when tests?
> + (chdir "tests")
> + (invoke "qmake")))))))

If qmake has a switch like make to change directory, e.g. -C, that'd be
preferable, else "with-directory-excursion" to avoid keeping state in
other phases.

Otherwise, this patch LGTM.

--
Thanks,
Maxim
M
M
Maxim Cournoyer wrote on 21 Mar 2023 14:53
(name . phodina)(address . phodina@protonmail.com)(address . 59762@debbugs.gnu.org)
87lejqqkhs.fsf_-_@gmail.com
Hello,

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

Toggle quote (98 lines)
> Hi again!
>
> phodina <phodina@protonmail.com> writes:
>
>> Hi,
>>
>> this adds a nice GUI program to monitor communication on serial interfaces (e.g. UART).
>>
>> ----
>> Petr
>>
>>
>>
>> From 6b25d088bd158ad2c5baa7548c49a04bd0f09664 Mon Sep 17 00:00:00 2001
>> From: Petr Hodina <phodina@protonmail.com>
>> Date: Wed, 19 Jan 2022 12:01:22 +0100
>> Subject: [PATCH 2/4] gnu: Add qtcsv.
>>
>> * gnu/packages/qt.scm (qtcsv): New variable.
>>
>> diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
>> index 6aaa9c47c2..71c8aafe3c 100644
>> --- a/gnu/packages/qt.scm
>> +++ b/gnu/packages/qt.scm
>> @@ -1283,6 +1283,58 @@ (define-public qtconnectivity
>> (description "The Qt Connectivity modules provides modules for interacting
>> with Bluetooth and NFC.")))
>>
>> +(define-public qtcsv
>> + (package
>> + (name "qtcsv")
>> + (version "1.6")
>> + (source (origin
>> + (method git-fetch)
>> + (uri (git-reference
>> + (url "https://github.com/iamantony/qtcsv")
>> + (commit (string-append "v" version))))
>> + (file-name (git-file-name name version))
>> + (sha256
>> + (base32
>> + "109nbspnhaczm85wp1fqazmamdj2bh9wfv3anlslvll606lrfgir"))))
>> + (build-system cmake-build-system)
>> + (arguments
>> + `(#:phases (modify-phases %standard-phases
>
> Please switch to list + gexps.
>
>> + (replace 'configure
>> + (lambda* (#:key outputs #:allow-other-keys)
>> + (invoke "qmake")))
>
> Use plain lambda without arguments (lambda _).
>
>> + (add-after 'unpack 'fix-install
>> + (lambda* (#:key outputs #:allow-other-keys)
>
> Ditto.
>> + (let* ((out (assoc-ref outputs "out")))
>>
>
> Use gexps variables.
>
>> + (substitute* "qtcsv.pro"
>> + (("/usr") out)
>> + (("\\$\\$PWD") out)))))
>> + (replace 'install
>> + (lambda* (#:key outputs #:allow-other-keys)
>> + (let* ((out (assoc-ref outputs "out")) (lib (string-append
>> + out "/lib"))
>
> Ditto :-).
>
>> + (include (string-append out "/include")))
>> + (mkdir-p include)
>> + (mkdir-p lib)
>> + (chdir "..") ;we were in dir tests
>
> Same comment bout active tense as earlier... but it seems that'd no
> longer be needed with the next comment implemented?
>
>> + (copy-recursively "include" include)
>> + (for-each (lambda (file)
>> + (install-file (string-append file) lib))
>> + '("libqtcsv.so" "libqtcsv.so.1"
>> + "libqtcsv.so.1.6" "libqtcsv.so.1.6.0")))))
>> + (replace 'check
>> + (lambda* (#:key tests? test-options parallel-tests?
>> + #:allow-other-keys)
>> + (when tests?
>> + (chdir "tests")
>> + (invoke "qmake")))))))
>
> If qmake has a switch like make to change directory, e.g. -C, that'd be
> preferable, else "with-directory-excursion" to avoid keeping state in
> other phases.
>
> Otherwise, this patch LGTM.

Gently ping :-). There are also other review comments up-thread.

--
Thanks,
Maxim
?