[bug#53820] gnu: Add jtdx
Commit Message
JTDX is a popular fork of WSJT-X, commonly used by ham radio operators for FT8 and other modes.
This is the first time I am submitting a patch to Guix. I have tried my best to format and test it, with the help of a few friends familiar with Guix. Feel free to modify the patch if I did something incorrectly.
Comments
Sheng Yang schreef op zo 06-02-2022 om 08:14 [-0600]:
> + (url "https://github.com/Hamlib/Hamlib.git")
That looks like a location of upstream to me, not the fork.
Greetings,
Maxime.
My fault. I somehow misunderstood the lines in the release note.
> JTDX 2.2.158 builds made with modified Hamlib, based on Hamlib commit https://github.com/Hamlib/Hamlib/commit/954d70c143a9a0293371d8def3a7300ce3ca68c4 as of December 30th, 2021
Found the true location of their fork of hamlib (https://github.com/jtdx-project/jtdxhamlib). Will update the patch when I managed to pack it.
On Sun, Feb 6, 2022, at 08:56, Maxime Devos wrote:
> Sheng Yang schreef op zo 06-02-2022 om 08:14 [-0600]:
> > + (url "https://github.com/Hamlib/Hamlib.git")
>
> That looks like a location of upstream to me, not the fork.
>
> Greetings,
> Maxime.
>
>
> *Attachments:*
> * signature.asc
Sheng Yang schreef op zo 06-02-2022 om 08:14 [-0600]:
> +(define jtdx-hamlib
> + ;; Fork of hamlib with custom patches used by jtdx.
Have these patches been submitted upstream? If so, can we
add a link to a web page tracking upstreaming progress,
such that we can determine when 'jdtx-hamlib' can be removed
in favour of 'hamlib'?
Given that it is a fork, doesn't the home page, synopsis and
description need to be tweaked?
Why define and not define-public?
Greetings,
Maxime.
> Have these patches been submitted upstream? If so, can we
> add a link to a web page tracking upstreaming progress,
> such that we can determine when 'jdtx-hamlib' can be removed
> in favour of 'hamlib'?
I don't think those patches are submitted upstream. I checked diff between jtdx-hamlib's master with commit 954d70c143a9a0293371d8def3a7300ce3ca68c4 <https://github.com/Hamlib/Hamlib/commit/954d70c143a9a0293371d8def3a7300ce3ca68c4>, which has quite some differences. I am not a developer of either package, so I cannot tell which one/ones is necessary. As it turns out, the configure options seem a lot different from the official one. The following is in the README of jtdx-hamlib:
> $ ../src/configure --prefix=$HOME/hamlib-prefix
> --disable-shared --enable-static
> --without-cxx-binding --disable-winradio
> CFLAGS="-g -O2 -fdata-sections -ffunction-sections"
> LDFLAGS="-Wl,--gc-sections"
While in hamlib and wsjtx-hamlib, the build configuration is:
> (arguments
> `(#:configure-flags '("--disable-static"
> "--with-lua-binding"
> "--with-python-binding"
> "--with-tcl-binding"
> "--with-xml-support")))
> Given that it is a fork, doesn't the home page, synopsis and
> description need to be tweaked?
>
> Why define and not define-public?
I basically followed the existing package wsjtx-hamlib.
From 187f08de9656d4d0beb489585dcb8ec8323a3789 Mon Sep 17 00:00:00 2001
From: Sheng Yang <styang@fastmail.com>
Date: Sun, 23 Jan 2022 21:46:27 -0600
Subject: [PATCH] gnu: Add jtdx
* gnu/packages/radio.scm (jtdx-hamlib): New variable.
(jtdx): New variable.
---
gnu/packages/radio.scm | 67 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
@@ -8,6 +8,7 @@
;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 João Pedro Simas <jpsimas@gmail.com>
;;; Copyright © 2021 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2022 Sheng Yang <styang@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1113,6 +1114,31 @@ (define wsjtx-hamlib
"--with-tcl-binding"
"--with-xml-support")))))
+(define jtdx-hamlib
+ ;; Fork of hamlib with custom patches used by jtdx.
+ (package
+ (inherit hamlib)
+ (name "jtdx-hamlib")
+ (version "2.2.158")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hamlib/Hamlib.git")
+ (commit "954d70c143a9a0293371d8def3a7300ce3ca68c4")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0z89krk2vnbm7narf9kkng5cxf6wqkijz06brzcg6vazf944x4ci"))))
+ (native-inputs
+ (modify-inputs (package-native-inputs hamlib)
+ (prepend autoconf automake libtool texinfo)))
+ (arguments
+ `(#:configure-flags '("--disable-static"
+ "--with-lua-binding"
+ "--with-python-binding"
+ "--with-tcl-binding"
+ "--with-xml-support")))))
+
(define-public tlf
(package
(name "tlf")
@@ -1206,6 +1232,47 @@ (define-public wsjtx
(home-page "https://www.physics.princeton.edu/pulsar/k1jt/wsjtx.html")
(license license:gpl3)))
+(define-public jtdx
+ (package
+ (name "jtdx")
+ (version "2.2.158")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jtdx-project/jtdx")
+ (commit "158")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1lw9q7ggh2jlasipl3v5pkbabysjr6baw15lnmg664ah3fwdrvnx"))))
+ (build-system qt-build-system)
+ (native-inputs
+ (list asciidoc gfortran pkg-config qttools ruby-asciidoctor))
+ (inputs
+ (list
+ boost
+ fftw
+ fftwf
+ jtdx-hamlib
+ libusb
+ qtbase-5
+ qtwebsockets
+ qtmultimedia
+ qtserialport))
+ (arguments
+ `(#:tests? #f)) ; No test suite
+ (synopsis "Weak-signal ham radio communication program, forked from WSJTX")
+ (description
+ "JTDX means \"JT,T10 and FT8 and FT4 modes for DXing\", it is being
+developed with main focus on the sensitivity and decoding efficiency, both, in
+overcrowded and half empty HF band conditions.
+
+It is modified WSJT-X software forked from WSJT-X r6462. JTDX supports JT9,
+JT65, T10, FT8 and FT4 © digital modes for HF amateur radio communication,
+focused on DXing and being shaped by community of DXers.JTDX")
+ (home-page "https://www.jtdx.tech/en/")
+ (license license:gpl3)))
+
(define-public js8call
(package
(inherit wsjtx)
--
2.34.1