From b79794a7630a04668d2769aee50ebc25e0d7c3d2 Mon Sep 17 00:00:00 2001
From: Guillaume Le Vaillant <glv@posteo.net>
Date: Thu, 14 May 2020 16:57:42 +0200
Subject: [PATCH] gnu: wsjtx: Fix undefined symbol error when starting the
 program.

* gnu/packages/radio.scm (wsjtx)[arguments]: Add 'work-around-runtime-bug'
  phase.
---
 gnu/packages/radio.scm | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 6a919548f08..2eb0a82415d 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -845,7 +845,20 @@ (define-public wsjtx
        ("qtmultimedia" ,qtmultimedia)
        ("qtserialport" ,qtserialport)))
     (arguments
-     `(#:tests? #f)) ; No test suite
+     `(#:tests? #f ; No test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'work-around-runtime-bug
+           (lambda _
+             ;; Some of the programs in this package fail to find symbols
+             ;; in libm at runtime. Adding libm manually at the end of the
+             ;; library lists when linking the programs seems to help.
+             ;; TODO: find exactly what is wrong in the way the programs
+             ;; are built.
+             (substitute* "CMakeLists.txt"
+               (("target_link_libraries \\((.*)\\)" all libs)
+                (string-append "target_link_libraries (" libs " m)")))
+             #t)))))
     (synopsis "Weak-signal ham radio communication program")
     (description
      "WSJT-X implements communication protocols or modes called FT4, FT8,
-- 
GitLab