From d7a3b4008fa7e40bc1f5e29af9e6f1f6757ed0f1 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Thu, 13 Apr 2023 23:27:14 +0100 Subject: [PATCH] gnu: js8call: Improve package style. * gnu/packages/radio.scm (js8call): Use Gexp and shift order of components. [tests]: Enable them. [arguments]: In fix-paths phase add more steps to modify test script. Replace check phase with in-project script. [native-inputs]: Remove labels. [inputs]: As above. Signed-off-by: Guillaume Le Vaillant --- gnu/packages/radio.scm | 83 +++++++++++++++++++++++++----------------- 1 file changed, 49 insertions(+), 34 deletions(-) diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index c589f95954..6f8b2ec9f7 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2022 Sheng Yang ;;; Copyright © 2022 Greg Hogan ;;; Copyright © 2022 Ryan Tolboom +;;; Copyright © 2023 Sharlatan Hellseher ;;; ;;; This file is part of GNU Guix. ;;; @@ -1603,49 +1604,63 @@ (define-public js8call (base32 "149sjwc4zg6ckgq26af93p4fxappa4k9dh7rdy67g8ajfjad4cd8")) (modules '((guix build utils))) (snippet - '(begin - ;; Delete bundled boost to use the shared one. - (delete-file-recursively "boost") - #t)))) + #~(begin + ;; Delete bundled boost to use the shared one. + (delete-file-recursively "boost"))))) (build-system qt-build-system) - (native-inputs - (list asciidoc gfortran pkg-config qttools-5 ruby-asciidoctor)) - (inputs - `(("boost" ,boost) - ("fftw" ,fftw) - ("fftwf" ,fftwf) - ("hamlib" ,wsjtx-hamlib) - ("libusb" ,libusb) - ("qtbase" ,qtbase-5) - ("qtmultimedia-5" ,qtmultimedia-5) - ("qtserialport" ,qtserialport))) (arguments - `(#:tests? #f ; No test suite - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "CMakeLists.txt" - (("DESTINATION /usr/share") - (string-append "DESTINATION " - (assoc-ref outputs "out") - "/share"))))) - (add-after 'unpack 'fix-hamlib - (lambda _ - (substitute* "CMake/Modules/Findhamlib.cmake" - (("set \\(ENV\\{PKG_CONFIG_PATH\\}.*\\)") - "set (__pc_path $ENV{PKG_CONFIG_PATH}) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda _ + ;; XXX: How to get the /tmp/.drv- path? Use + ;; output path for after install check phase instead. + (substitute* "media/tests/test" + (("~/js8call-prefix/build/js8") + (string-append #$output "/bin/js8")) + (("/opt/js8call/bin/js8") + (string-append #$output "/bin/js8"))) + (substitute* "CMakeLists.txt" + (("DESTINATION /usr/share") + (string-append "DESTINATION " #$output "/share"))))) + (add-after 'unpack 'fix-hamlib + (lambda _ + (substitute* "CMake/Modules/Findhamlib.cmake" + (("set \\(ENV\\{PKG_CONFIG_PATH\\}.*\\)") + "set (__pc_path $ENV{PKG_CONFIG_PATH}) list (APPEND __pc_path \"${__hamlib_pc_path}\") set (ENV{PKG_CONFIG_PATH} \"${__pc_path}\")")) - (substitute* "HamlibTransceiver.hpp" - (("#ifdef JS8_USE_LEGACY_HAMLIB") - "#if 1"))))))) + (substitute* "HamlibTransceiver.hpp" + (("#ifdef JS8_USE_LEGACY_HAMLIB") + "#if 1")))) + (delete 'check) + (add-after 'install 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "../js8call/media/tests" + (invoke "./test")))))))) + (native-inputs + (list asciidoc + gfortran + pkg-config + qttools-5 + ruby-asciidoctor)) + (inputs + (list boost + fftw + fftwf + libusb + qtbase-5 + qtmultimedia-5 + qtserialport + wsjtx-hamlib)) + (home-page "http://js8call.com/") (synopsis "Weak-signal ham radio communication program") (description "JS8Call is a software using the JS8 digital mode (a derivative of the FT8 mode) providing weak signal keyboard to keyboard messaging to amateur radio operators.") - (home-page "http://js8call.com/") (license license:gpl3))) (define-public xnec2c