~ruther/guix-local

d7a3b4008fa7e40bc1f5e29af9e6f1f6757ed0f1 — Sharlatan Hellseher 3 years ago a6b3bdb
gnu: js8call: Improve package style.

* gnu/packages/radio.scm (js8call):
  Use Gexp and shift order of components.
  [tests]: Enable them.
  [arguments]<phases>: 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 <glv@posteo.net>
1 files changed, 49 insertions(+), 34 deletions(-)

M gnu/packages/radio.scm
M gnu/packages/radio.scm => gnu/packages/radio.scm +49 -34
@@ 12,6 12,7 @@
;;; Copyright © 2022 Sheng Yang <styang@fastmail.com>
;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 Ryan Tolboom <ryan@using.tech>
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 1603,49 1604,63 @@ focused on DXing and being shaped by community of DXers.JTDX")
        (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/<build-name>.drv-<num> 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