gnu: wsjtx: Fix undefined symbol error when starting the program.
authorGuillaume Le Vaillant <glv@posteo.net>
Thu, 14 May 2020 14:57:42 +0000 (16:57 +0200)
committerGuillaume Le Vaillant <glv@posteo.net>
Thu, 14 May 2020 15:17:47 +0000 (17:17 +0200)
* gnu/packages/radio.scm (wsjtx)[arguments]: Add 'work-around-runtime-bug'
  phase.

gnu/packages/radio.scm

index 6a91954..2eb0a82 100644 (file)
@@ -845,7 +845,20 @@ users.")
        ("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,