From 897652465e08f1623b4112168ba89e22cb343806 Mon Sep 17 00:00:00 2001 From: Jose Alonso Cardenas Marquez Date: Thu, 26 Aug 2021 23:26:04 -0500 Subject: comms/wsjtz: New port: Clone of WSJT-X software with additional features WSJT ("Weak Signal Communication, by K1JT") offers specific digital protocols optimized for meteor scatter, ionospheric scatter, and EME (moonbounce) at VHF/UHF, as well as HF skywave propagation. The program can decode fraction-of-a-second signals reflected from ionized meteor trails and steady signals 10 dB below the audible threshold. WSJT-Z is a clone of WSJT-X software by Joe Taylor K1JT Features - Modified user interface, including a larger Band Activity window - Extended filtering features - Auto CQ and auto responding - QRZ.COM integration - Audio alerts - DXCC / Continent Filtering WWW: https://sourceforge.net/projects/wsjt-z/ --- comms/Makefile | 1 + comms/wsjtz/Makefile | 55 +++++++++++++++ comms/wsjtz/distinfo | 3 + comms/wsjtz/files/patch-CMakeLists.txt | 78 ++++++++++++++++++++++ .../files/patch-CMake_Modules_Findhamlib.cmake | 11 +++ comms/wsjtz/files/patch-Radio.cpp | 20 ++++++ .../files/patch-widgets_FrequencyDeltaLineEdit.cpp | 13 ++++ .../files/patch-widgets_FrequencyLineEdit.cpp | 11 +++ comms/wsjtz/pkg-descr | 18 +++++ comms/wsjtz/pkg-plist | 44 ++++++++++++ 10 files changed, 254 insertions(+) create mode 100644 comms/wsjtz/Makefile create mode 100644 comms/wsjtz/distinfo create mode 100644 comms/wsjtz/files/patch-CMakeLists.txt create mode 100644 comms/wsjtz/files/patch-CMake_Modules_Findhamlib.cmake create mode 100644 comms/wsjtz/files/patch-Radio.cpp create mode 100644 comms/wsjtz/files/patch-widgets_FrequencyDeltaLineEdit.cpp create mode 100644 comms/wsjtz/files/patch-widgets_FrequencyLineEdit.cpp create mode 100644 comms/wsjtz/pkg-descr create mode 100644 comms/wsjtz/pkg-plist diff --git a/comms/Makefile b/comms/Makefile index 45a8042b822e..c5ddf663d841 100644 --- a/comms/Makefile +++ b/comms/Makefile @@ -201,6 +201,7 @@ SUBDIR += viewfax SUBDIR += vrflash SUBDIR += wsjtx + SUBDIR += wsjtz SUBDIR += wwl SUBDIR += wy60 SUBDIR += xastir diff --git a/comms/wsjtz/Makefile b/comms/wsjtz/Makefile new file mode 100644 index 000000000000..52041f597cc6 --- /dev/null +++ b/comms/wsjtz/Makefile @@ -0,0 +1,55 @@ +PORTNAME= wsjtz +DISTVERSION= 2.3.0-mod-0.81 +CATEGORIES= comms hamradio +MASTER_SITES= SF/wsjt-z/Source + +MAINTAINER= acm@FreeBSD.org +COMMENT= Clone of WSJT-X software with additional features + +CONFLICTS= wsjtx-* + +LICENSE= GPLv3 + +BUILD_DEPENDS= asciidoctor:textproc/rubygem-asciidoctor \ + autoconf>=2.69:devel/autoconf \ + automake>=1.16.1:devel/automake \ + a2x:textproc/asciidoc \ + libtool:devel/libtool \ + ${LOCALBASE}/share/xsl/docbook:textproc/docbook-xsl +LIB_DEPENDS= libfftw3.so:math/fftw3 \ + libfftw3f.so:math/fftw3-float \ + libxslt.so:textproc/libxslt + +USES= cmake compiler:c++11-lib fortran gl \ + makeinfo pkgconfig qt:5 zip +USE_GL= glu +USE_QT= core gui network widgets \ + multimedia concurrent printsupport serialport sql sql-sqlite3 \ + buildtools_build linguisttools_build qmake_build + +CMAKE_ARGS+= -DCMAKE_PREFIX_PATH+=${LOCALBASE}/wsjtx/lib \ + -DLOCALBASE::STRING="${LOCALBASE}" +# for detailed debugging uncomment the next line +#CMAKE_ARGS+= --debug-output --trace +PLIST_SUB+= PORTVERSION="${PORTVERSION}" + +PORTDOCS= * + +DOCSDIR= ${PREFIX}/share/doc/${PORTNAME:S/z/x/} +DATADIR= ${PREFIX}/share/${PORTNAME:S/z/x/} +WRKSRC= ${WRKDIR}/wsjtx + +.include + +.if ${GCC_DEFAULT} >= 10 +# workaround for More actual than formal arguments in procedure call at (1) +FFLAGS+= -fallow-argument-mismatch +.endif + +post-install: +.for f in fcal fmeasure fmtave ft8code jt4code jt65code jt9 jt9code \ + message_aggregator msk144code qra64code qra64sim udp_daemon wsjtx wsprd + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${f} +.endfor + +.include diff --git a/comms/wsjtz/distinfo b/comms/wsjtz/distinfo new file mode 100644 index 000000000000..e0613d6ef2da --- /dev/null +++ b/comms/wsjtz/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1629936087 +SHA256 (wsjtz-2.3.0-mod-0.81.zip) = 7e36e44471c7d6fd4aae37d078d29afd9736cddeecf9e2f930e88298f484c2b3 +SIZE (wsjtz-2.3.0-mod-0.81.zip) = 15490080 diff --git a/comms/wsjtz/files/patch-CMakeLists.txt b/comms/wsjtz/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..7dfab188f567 --- /dev/null +++ b/comms/wsjtz/files/patch-CMakeLists.txt @@ -0,0 +1,78 @@ +--- CMakeLists.txt.orig 2021-02-08 14:51:20 UTC ++++ CMakeLists.txt +@@ -141,6 +141,12 @@ attach a debugger which will then receive the console + # install locations + # + ++if (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++ set (FREEBSD TRUE) ++ link_directories("/usr/lib" "${LOCALBASE}/lib") ++ include_directories("/usr/include" "${LOCALBASE}/include") ++endif() ++ + if (APPLE) + set (CMAKE_INSTALL_BINDIR ${CMAKE_PROJECT_NAME}.app/Contents/MacOS) + set (CMAKE_INSTALL_DATAROOTDIR ${CMAKE_PROJECT_NAME}.app/Contents/Resources) +@@ -847,8 +853,20 @@ find_package (Boost 1.62 REQUIRED COMPONENTS log_setup + # + # OpenMP + # +-find_package (OpenMP) ++# OpenMP_C_FLAGS - flags to add to the C compiler for OpenMP support ++# OpenMP_CXX_FLAGS - flags to add to the CXX compiler for OpenMP support ++# OpenMP_Fortran_FLAGS - flags to add to the Fortran compiler for OpenMP support ++# OPENMP_FOUND - true if openmp is detected + ++if (FREEBSD) ++ set (OpenMP_C_FLAGS "-openmp") ++ set (OpenMP_CXX_FLAGS "-openmp") ++ set (OpenMP_Fortran_FLAGS "-openmp") ++ set (OPENMP_FOUND TRUE) ++else() ++ find_package (OpenMP) ++endif() ++ + # + # fftw3 single precision library + # +@@ -1135,7 +1153,7 @@ add_executable (encode77 lib/77bit/encode77.f90) + target_link_libraries (encode77 wsjt_fort wsjt_cxx) + + add_executable (wsprsim ${wsprsim_CSRCS}) +-target_link_libraries (wsprsim ${LIBM_LIBRARIES}) ++target_link_libraries (wsprsim ${LIBM_LIBRARIES} -lm) + + add_executable (jt4code lib/jt4code.f90) + target_link_libraries (jt4code wsjt_fort wsjt_cxx) +@@ -1177,6 +1195,12 @@ target_link_libraries (ldpcsim240_74 wsjt_fort wsjt_cx + + endif(WSJT_BUILD_UTILS) + ++if(FREEBSD) ++ set (extraLIBS "ltdl" "usb") ++ else() ++ set (extraLIBS "") ++endif() ++ + add_executable (fmtave lib/fmtave.f90) + + add_executable (fcal lib/fcal.f90) +@@ -1561,12 +1585,12 @@ install (PROGRAMS + RENAME rigctld-wsjtx${CMAKE_EXECUTABLE_SUFFIX} + ) + +-install (PROGRAMS +- ${RIGCTLCOM_EXE} +- DESTINATION ${CMAKE_INSTALL_BINDIR} +- #COMPONENT runtime +- RENAME rigctlcom-wsjtx${CMAKE_EXECUTABLE_SUFFIX} +- ) ++#install (PROGRAMS ++# ${RIGCTLCOM_EXE} ++# DESTINATION ${CMAKE_INSTALL_BINDIR} ++# #COMPONENT runtime ++# RENAME rigctlcom-wsjtx${CMAKE_EXECUTABLE_SUFFIX} ++# ) + + install (FILES + README diff --git a/comms/wsjtz/files/patch-CMake_Modules_Findhamlib.cmake b/comms/wsjtz/files/patch-CMake_Modules_Findhamlib.cmake new file mode 100644 index 000000000000..1963cf606c56 --- /dev/null +++ b/comms/wsjtz/files/patch-CMake_Modules_Findhamlib.cmake @@ -0,0 +1,11 @@ +--- CMake/Modules/Findhamlib.cmake.orig 2021-02-01 18:08:30 UTC ++++ CMake/Modules/Findhamlib.cmake +@@ -16,7 +16,7 @@ set (hamlib_LIBRARY_DIRS) + + # pkg-config? + find_path (__hamlib_pc_path NAMES hamlib.pc +- PATH_SUFFIXES lib/pkgconfig lib64/pkgconfig ++ PATH_SUFFIXES libdata/pkgconfig lib64/pkgconfig + ) + if (__hamlib_pc_path) + set (__pc_path $ENV{PKG_CONFIG_PATH}) diff --git a/comms/wsjtz/files/patch-Radio.cpp b/comms/wsjtz/files/patch-Radio.cpp new file mode 100644 index 000000000000..4beb7759b8e8 --- /dev/null +++ b/comms/wsjtz/files/patch-Radio.cpp @@ -0,0 +1,20 @@ +--- Radio.cpp.orig 2021-02-01 18:08:30 UTC ++++ Radio.cpp +@@ -45,7 +45,7 @@ namespace Radio + value *= std::pow (10., scale); + if (ok) + { +- if (value < 0. || value > std::numeric_limits::max ()) ++ if (value < 0. || value > (float)std::numeric_limits::max ()) + { + value = 0.; + *ok = false; +@@ -70,7 +70,7 @@ namespace Radio + if (ok) + { + if (value < -std::numeric_limits::max () +- || value > std::numeric_limits::max ()) ++ || value > (float)std::numeric_limits::max ()) + { + value = 0.; + *ok = false; diff --git a/comms/wsjtz/files/patch-widgets_FrequencyDeltaLineEdit.cpp b/comms/wsjtz/files/patch-widgets_FrequencyDeltaLineEdit.cpp new file mode 100644 index 000000000000..1b677344d795 --- /dev/null +++ b/comms/wsjtz/files/patch-widgets_FrequencyDeltaLineEdit.cpp @@ -0,0 +1,13 @@ +--- widgets/FrequencyDeltaLineEdit.cpp.orig 2021-02-01 18:08:30 UTC ++++ widgets/FrequencyDeltaLineEdit.cpp +@@ -39,8 +39,8 @@ namespace + FrequencyDeltaLineEdit::FrequencyDeltaLineEdit (QWidget * parent) + : QLineEdit (parent) + { +- setValidator (new MHzValidator {-std::numeric_limits::max () / 10.e6, +- std::numeric_limits::max () / 10.e6, this}); ++ setValidator (new MHzValidator {-(float)std::numeric_limits::max () / 10.e6, ++ (float)std::numeric_limits::max () / 10.e6, this}); + } + + auto FrequencyDeltaLineEdit::frequency_delta () const -> FrequencyDelta diff --git a/comms/wsjtz/files/patch-widgets_FrequencyLineEdit.cpp b/comms/wsjtz/files/patch-widgets_FrequencyLineEdit.cpp new file mode 100644 index 000000000000..10b456242781 --- /dev/null +++ b/comms/wsjtz/files/patch-widgets_FrequencyLineEdit.cpp @@ -0,0 +1,11 @@ +--- widgets/FrequencyLineEdit.cpp.orig 2021-02-01 18:08:30 UTC ++++ widgets/FrequencyLineEdit.cpp +@@ -39,7 +39,7 @@ namespace + FrequencyLineEdit::FrequencyLineEdit (QWidget * parent) + : QLineEdit (parent) + { +- setValidator (new MHzValidator {0., std::numeric_limits::max () / 10.e6, this}); ++ setValidator (new MHzValidator {0., (float)std::numeric_limits::max () / 10.e6, this}); + } + + auto FrequencyLineEdit::frequency () const -> Frequency diff --git a/comms/wsjtz/pkg-descr b/comms/wsjtz/pkg-descr new file mode 100644 index 000000000000..fc922eca3852 --- /dev/null +++ b/comms/wsjtz/pkg-descr @@ -0,0 +1,18 @@ +WSJT ("Weak Signal Communication, by K1JT") offers specific digital protocols +optimized for meteor scatter, ionospheric scatter, and EME (moonbounce) +at VHF/UHF, as well as HF skywave propagation. The program can decode +fraction-of-a-second signals reflected from ionized meteor trails and +steady signals 10 dB below the audible threshold. + +WSJT-Z is a clone of WSJT-X software by Joe Taylor K1JT + +Features + +- Modified user interface, including a larger Band Activity window +- Extended filtering features +- Auto CQ and auto responding +- QRZ.COM integration +- Audio alerts +- DXCC / Continent Filtering + +WWW: https://sourceforge.net/projects/wsjt-z/ diff --git a/comms/wsjtz/pkg-plist b/comms/wsjtz/pkg-plist new file mode 100644 index 000000000000..34dc0fcc7d74 --- /dev/null +++ b/comms/wsjtz/pkg-plist @@ -0,0 +1,44 @@ +bin/fcal +bin/fmeasure +bin/fmtave +bin/fst4sim +bin/ft8code +bin/jt4code +bin/jt65code +bin/jt9 +bin/jt9code +bin/message_aggregator +bin/msk144code +bin/qra64code +bin/qra64sim +bin/rigctl-wsjtx +bin/rigctld-wsjtx +bin/udp_daemon +bin/wsjtx +bin/wsjtx_app_version +bin/wsprd +man/man1/fcal.1.gz +man/man1/fmeasure.1.gz +man/man1/fmtave.1.gz +man/man1/fst4sim.1.gz +man/man1/ft8code.1.gz +man/man1/jt4code.1.gz +man/man1/jt65code.1.gz +man/man1/jt9.1.gz +man/man1/jt9code.1.gz +man/man1/message_aggregator.1.gz +man/man1/msk144code.1.gz +man/man1/qra64code.1.gz +man/man1/qra64sim.1.gz +man/man1/rigctl-wsjtx.1.gz +man/man1/rigctlcom-wsjtx.1.gz +man/man1/rigctld-wsjtx.1.gz +man/man1/udp_daemon.1.gz +man/man1/wsjtx.1.gz +man/man1/wsprd.1.gz +share/applications/message_aggregator.desktop +share/applications/wsjtx.desktop +share/pixmaps/wsjtx_icon.png +%%DATADIR%%/JPLEPH +%%DATADIR%%/cty.dat +%%DATADIR%%/cty.dat_copyright.txt -- cgit v1.2.3