From c99e564f1ee185c10e0a69f6775e12e94d377100 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 20 Apr 2014 02:39:48 +0000 Subject: [PATCH] Several improvements related to packaging on Linux. Added a manpages sub-project to generate man pages for wsjtx from AsciiDoc source. Add items required by Debian packaging and Free Desktop Standards. Add better command line processing to wsjtx including version and help options. Add a new command line option 'test-mode' that invokes the Qt test mode where all writable file locations are moved to a common directory. This is to allow application testing from a repeatable start point rather than have the test application sharing files with normal operations. See QStandardPaths::setTestModeEnabled() for details of the test location. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4046 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- CMakeCPackOptions.cmake.in | 10 +++- CMakeLists.txt | 88 +++++++++++++++++++-------- artwork/make_graphics.sh | 0 debian/CMakeLists.txt | 38 ++++++++++++ debian/changelog.in | 6 ++ debian/copyright.in | 10 ++++ main.cpp | 48 +++++++++++---- manpages/CMakeLists.txt | 59 ++++++++++++++++++ manpages/man1/wsjtx.1.txt | 120 +++++++++++++++++++++++++++++++++++++ wsjtx.desktop | 4 +- 10 files changed, 342 insertions(+), 41 deletions(-) mode change 100644 => 100755 artwork/make_graphics.sh create mode 100644 debian/CMakeLists.txt create mode 100644 debian/changelog.in create mode 100644 debian/copyright.in create mode 100644 manpages/CMakeLists.txt create mode 100644 manpages/man1/wsjtx.1.txt diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in index f30e6cd9c..2946ad647 100644 --- a/CMakeCPackOptions.cmake.in +++ b/CMakeCPackOptions.cmake.in @@ -2,10 +2,10 @@ # To pass variables to cpack from cmake, they must be configured # in this file. -set (CPACK_PACKAGE_VENDOR "Joe Taylor, K1JT") -set (CPACK_PACKAGE_CONTACT "k1jt@arrl.net") +set (CPACK_PACKAGE_VENDOR "@PROJECT_VENDOR@") +set (CPACK_PACKAGE_CONTACT "@PROJECT_CONTACT@") set (CPACK_PACKAGE_DESCRIPTION_FILE "@PROJECT_SOURCE_DIR@/Copyright.txt") -set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "WSJT-X - JT9 and JT65 Modes for LF, MF and HF Amateur Radio") +set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "@PROJECT_SUMMARY_DESCRIPTION@") set (CPACK_RESOURCE_FILE_LICENSE "@PROJECT_SOURCE_DIR@/license.txt") set (CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME}) set (CPACK_PACKAGE_EXECUTABLES wsjtx "WSJT-X") @@ -15,6 +15,7 @@ set (CPACK_STRIP_FILES TRUE) # # components # +set (CPACK_COMPONENTS_ALL Runtime) #set (CPACK_COMPONENT_APPLICATIONS_DISPLAY_NAME "WSJT-X Application") #set (CPACK_COMPONENT_APPLICATIONS_DESCRIPTION "@WSJTX_DESCRIPTION_SUMMARY@") @@ -74,8 +75,11 @@ if ("${CPACK_GENERATOR}" STREQUAL "WIX") endif () if ("${CPACK_GENERATOR}" STREQUAL "DEB") + set (CPACK_DEBIAN_PACKAGE_DESCRIPTION "@PROJECT_DESCRIPTION@") set (CPACK_PACKAGE_FILE_NAME "@DEBIAN_PACKAGE_FILE_NAME@") set (CPACK_DEBIAN_PACKAGE_HOMEPAGE "@PROJECT_HOMEPAGE@") + set (CPACK_DEBIAN_PACKAGE_DEPENDS "libgfortran3 (>=4.8.2), libqt5multimedia5-plugins (>=5), libqt5widgets5 (>=5), libc6 (>=2.19)") + set (CPACK_COMPONENTS_ALL ${CPACK_COMPONENTS_ALL} Debian) endif ("${CPACK_GENERATOR}" STREQUAL "DEB") message (STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") diff --git a/CMakeLists.txt b/CMakeLists.txt index 56fbac20e..7acd62d3d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,38 @@ cmake_minimum_required (VERSION 2.8.9 FATAL_ERROR) project (wsjtx C CXX Fortran) -set (WSJTX_COPYRIGHT "Copyright (C) 2001-2014 by Joe Taylor, K1JT") +# +# project information +# +set (PROJECT_VENDOR "Joe Taylor, K1JT") +set (PROJECT_CONTACT "Joe Taylor ") +set (PROJECT_COPYRIGHT "Copyright (C) 2001-2014 by Joe Taylor, K1JT") +set (PROJECT_HOMEPAGE "http://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html") +set (PROJECT_MANUAL "http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjtx-main-toc2.html") +set (PROJECT_SUMMARY_DESCRIPTION "WSJT-X - JT9 and JT65 Modes for LF, MF and HF Amateur Radio.") +set (PROJECT_DESCRIPTION "${PROJECT_SUMMARY_DESCRIPTION} + WSJT-X implements JT9, a new mode designed especially for the LF, MF, + and HF bands, as well as the popular mode JT65. Both modes were + designed for making reliable, confirmed QSOs under extreme weak-signal + conditions. They use nearly identical message structure and source + encoding. JT65 was designed for EME (“moonbounce”) on the VHF/UHF + bands and has also proved very effective for worldwide QRP + communication at HF; in contrast, JT9 is optimized for HF and lower + frequencies. JT9 is about 2 dB more sensitive than JT65A while using + less than 10% of the bandwidth. World-wide QSOs are possible with + power levels of a few watts and compromise antennas. A 2 kHz slice of + spectrum is essentially full when occupied by ten JT65 signals. As + many as 100 JT9 signals can fit into the same space, without overlap. + . + WSJT-X offers a “bi-lingual“ operating mode in which you can transmit + and receive JT65 and JT9 signals, switching between modes + automatically as needed. Displayed bandwidth can be as large as 5 + kHz. If your receiver has as upper-sideband filter at least 4 kHz + wide, you can have all the typical JT65 and JT9 activity on screen at + once, available for making QSOs with a click of the mouse. Even with + standard SSB-width IF filters, switching between JT65 and JT9 modes is + quick and convenient. Be sure to read the online WSJT-X User's + Guide.") set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMake/Modules) @@ -34,18 +65,12 @@ option (WSJT_SOFT_KEYING "Apply a ramp to CW keying envelope to reduce transient set (WSJT_BIN_DESTINATION bin) set (WSJT_LIB_DESTINATION lib) set (WSJT_SHARE_DESTINATION share/wsjtx) -set (WSJT_DOC_DESTINATION share/wsjtx/doc) +set (WSJT_DOC_DESTINATION share/doc/wsjtx) +set (WSJT_MANPAGE_DESTINATION share) set (WSJT_PLUGIN_DESTINATION lib/plugins) set (WSJT_QT_CONF_DESTINATION bin) -# -# project information -# -set (PROJECT_HOMEPAGE "http://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html") -set (PROJECT_MANUAL "http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjtx-main-toc2.html") - - # # Project sources # @@ -349,14 +374,10 @@ if (APPLE) set (WSJT_PLUGIN_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/PlugIns) set (WSJT_QT_CONF_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/Resources) set (WSJT_SHARE_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/Resources) + set (WSJT_DOC_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/Resources) set (WSJT_BIN_DESTINATION ${CMAKE_PROJECT_NAME}.app/Contents/MacOS) endif (APPLE) -#set (QT_NEED_RPATH FALSE) -#if (NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib64" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib64") -# set (QT_NEED_RPATH TRUE) -#endif () - # # C & C++ setup @@ -430,7 +451,7 @@ set (CMAKE_SKIP_BUILD_RPATH FALSE) # later on in the install phase set (CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) -set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${WSJT_LIB_DESTINATION}") +# set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${WSJT_LIB_DESTINATION}") # add the automaticaly determined parts of the RPATH which point to # directories outside of the build tree to the install RPATH @@ -438,10 +459,15 @@ set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) # the RPATH to be used when installing, but only if it's not a system # directory -list (FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${WSJT_LIB_DESTINATION}" isSystemDir) -if ("${isSystemDir}" STREQUAL "-1") - set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${WSJT_LIB_DESTINATION}") -endif ("${isSystemDir}" STREQUAL "-1") +# list (FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${WSJT_LIB_DESTINATION}" isSystemDir) +# if ("${isSystemDir}" STREQUAL "-1") +# set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${WSJT_LIB_DESTINATION}") +# endif ("${isSystemDir}" STREQUAL "-1") + +set (QT_NEED_RPATH FALSE) +if (NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/lib64" AND NOT "${QT_LIBRARY_DIR}" STREQUAL "/usr/lib64") + set (QT_NEED_RPATH TRUE) +endif () # @@ -450,6 +476,7 @@ endif ("${isSystemDir}" STREQUAL "-1") find_package (FFTW3 COMPONENTS single REQUIRED) include_directories (${FFTW3_INCLUDE_DIRS}) + # # libhamlib setup # @@ -584,9 +611,22 @@ qt5_use_modules (jt9 Core) #qt5_use_modules (ConfigTest Widgets OpenGL Network Multimedia) # build the main application -add_executable (wsjtx WIN32 MACOSX_BUNDLE ${wsjtx_CXXSRCS} ${wsjtx_GENUISRCS} wsjtx.rc ${WSJTX_ICON_FILE} ${wsjtx_RESOURCES_RCC} contrib/kvasd${CMAKE_EXECUTABLE_SUFFIX}) +add_executable (wsjtx WIN32 MACOSX_BUNDLE + ${wsjtx_CXXSRCS} + ${wsjtx_GENUISRCS} + wsjtx.rc + ${WSJTX_ICON_FILE} + ${wsjtx_RESOURCES_RCC} + contrib/kvasd${CMAKE_EXECUTABLE_SUFFIX} + ) qt5_use_modules (wsjtx Widgets OpenGL Network Multimedia) +if (UNIX) + add_subdirectory (manpages) + add_subdirectory (debian) + add_dependencies (wsjtx manpages debian) +endif (UNIX) + set_target_properties (wsjtx PROPERTIES MACOSX_BUNDLE_INFO_STRING "${WSJTX_DESCRIPTION_SUMMARY}" MACOSX_BUNDLE_ICON_FILE "${WSJTX_ICON_FILE}" @@ -594,7 +634,7 @@ set_target_properties (wsjtx PROPERTIES MACOSX_BUNDLE_SHORT_VERSION_STRING "v${wsjtx_VERSION}" MACOSX_BUNDLE_LONG_VERSION_STRING "Version ${wsjtx_VERSION}" MACOSX_BUNDLE_BUNDLE_NAME "WSJT-X" - MACOSX_BUNDLE_COPYRIGHT "${WSJTX_COPYRIGHT}" + MACOSX_BUNDLE_COPYRIGHT "${PROJECT_COPYRIGHT}" ) target_link_libraries (wsjtx wsjt wsjt_qt ${hamlib_LIBRARIES} ${FFTW3_LIBRARIES}) @@ -615,20 +655,20 @@ install (TARGETS wsjtx RUNTIME DESTINATION ${WSJT_BIN_DESTINATION} LIBRARY DESTINATION ${WSJT_LIB_DESTINATION} BUNDLE DESTINATION . - # COMPONENT Runtime + COMPONENT Runtime ) install (TARGETS jt9 RUNTIME DESTINATION ${WSJT_BIN_DESTINATION} LIBRARY DESTINATION ${WSJT_LIB_DESTINATION} BUNDLE DESTINATION ${WSJT_BIN_DESTINATION} - # COMPONENT Runtime + COMPONENT Runtime ) install (PROGRAMS ${CMAKE_BINARY_DIR}/contrib/kvasd${CMAKE_EXECUTABLE_SUFFIX} DESTINATION ${WSJT_BIN_DESTINATION} - # COMPONENT Runtime + COMPONENT Runtime ) diff --git a/artwork/make_graphics.sh b/artwork/make_graphics.sh old mode 100644 new mode 100755 diff --git a/debian/CMakeLists.txt b/debian/CMakeLists.txt new file mode 100644 index 000000000..ceccb7664 --- /dev/null +++ b/debian/CMakeLists.txt @@ -0,0 +1,38 @@ +find_program (GZIP_EXECUTABLE NAMES gzip) + +string (TIMESTAMP ts "%w, %d [%m] %Y %H:%M:%S +0000" UTC) + +set (__days Sun Mon Tue Wed Thu Fri Sat) +string (SUBSTRING ${ts} 0 1 __index) +list (GET __days ${__index} __day) +string (REPLACE "${__index}," "${__day}," ts ${ts}) + +set (__months Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec) +string (SUBSTRING ${ts} 9 2 __month_index) +math (EXPR __index "${__month_index} - 1") +list (GET __months "${__index}" __month) +string (REPLACE "[${__month_index}]" "${__month}" ts ${ts}) + +configure_file ( + "${CMAKE_CURRENT_SOURCE_DIR}/changelog.in" + "${CMAKE_CURRENT_BINARY_DIR}/changelog" + @ONLY) + +add_custom_target (debian + COMMAND ${GZIP_EXECUTABLE} --keep --best --force changelog + DEPENDS changelog.in + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Compressing Debian changelog" + ) + +configure_file ( + "${CMAKE_CURRENT_SOURCE_DIR}/copyright.in" + "${CMAKE_CURRENT_BINARY_DIR}/copyright" + @ONLY) + +install (FILES + ${CMAKE_CURRENT_BINARY_DIR}/changelog.gz + ${CMAKE_CURRENT_BINARY_DIR}/copyright + DESTINATION ${WSJT_DOC_DESTINATION} + COMPONENT Debian + ) diff --git a/debian/changelog.in b/debian/changelog.in new file mode 100644 index 000000000..c0016242f --- /dev/null +++ b/debian/changelog.in @@ -0,0 +1,6 @@ +@CMAKE_PROJECT_NAME@ (@wsjtx_VERSION@) experimental; urgency=low + + * wsjtx Debian maintainer and upstream author are identical. + Therefore see also normal changelog file for Debian changes. + + -- @PROJECT_CONTACT@ @ts@ diff --git a/debian/copyright.in b/debian/copyright.in new file mode 100644 index 000000000..110219a91 --- /dev/null +++ b/debian/copyright.in @@ -0,0 +1,10 @@ +Format-Specification: http://wiki.debian.org/Proposals/CopyrightFormat +Upstream-Name: @CMAKE_PROJECT_NAME@ +Upstream-Maintainer: @PROJECT_CONTACT@ +Upstream-Source: @PROJECT_HOMEPAGE@ + +Files: * +Copyright: @PROJECT_COPYRIGHT@. +License: GPL v3 + The full text of the GPL is distributed in + /usr/share/common-licenses/GPL-3 on Debian systems. diff --git a/main.cpp b/main.cpp index eee2c5a38..7f84ec182 100644 --- a/main.cpp +++ b/main.cpp @@ -18,6 +18,9 @@ #include #include #include +#include +#include +#include #include "revision_utils.hpp" @@ -35,29 +38,50 @@ int main(int argc, char *argv[]) try { setlocale (LC_NUMERIC, "C"); // ensure number forms are in - // consistent format, do this after - // instantiating QApplication so - // that GUI has correct l18n - + // consistent format, do this after + // instantiating QApplication so + // that GUI has correct l18n + // Override programs executable basename as application name. a.setApplicationName ("WSJT-X"); + a.setApplicationVersion (WSJTX_STRINGIZE (WSJTX_VERSION_MAJOR) + "." WSJTX_STRINGIZE (WSJTX_VERSION_MINOR) + "." WSJTX_STRINGIZE (WSJTX_VERSION_PATCH) " " + revision ()); + + QCommandLineParser parser; + parser.setApplicationDescription ("\nJT65A & JT9 Weak Signal Communications Program."); + parser.addHelpOption (); + parser.addVersionOption (); + +#if WSJT_STANDARD_FILE_LOCATIONS + // support for multiple instances running from a single installation + QCommandLineOption rig_option (QStringList {} << "r" << "rig-name" + , a.translate ("main", "Where is for multi-instance support.") + , a.translate ("main", "rig-name")); + parser.addOption (rig_option); +#endif + + QCommandLineOption test_option (QStringList {} << "test-mode" + , a.translate ("main", "Writable files in test location. Use with caution, for testing only.")); + parser.addOption (test_option); + + parser.process (a); + + QStandardPaths::setTestModeEnabled (parser.isSet (test_option)); bool multiple {false}; #if WSJT_STANDARD_FILE_LOCATIONS // support for multiple instances running from a single installation - auto args = a.arguments (); - auto rig_arg_index = args.lastIndexOf (QRegularExpression {R"((-r)|(--r(i?(g?))))"}); - if (rig_arg_index > 0 // not interested if somehow the exe is called -r or --rig - && rig_arg_index + 1 < args.size ()) + if (parser.isSet (rig_option)) { - auto temp_name = args.at (rig_arg_index + 1); - if ('-' != temp_name[0] - && !temp_name.isEmpty ()) + auto temp_name = parser.value (rig_option); + if (!temp_name.isEmpty ()) { if (temp_name.contains (QRegularExpression {R"([\\/])"})) { - throw std::runtime_error (QObject::tr ("Invalid rig name - \\ & / not allowed").toLocal8Bit ().data ()); + std::cerr << QObject::tr ("Invalid rig name - \\ & / not allowed").toLocal8Bit ().data () << std::endl; + parser.showHelp (-1); } a.setApplicationName (a.applicationName () + " - " + temp_name); diff --git a/manpages/CMakeLists.txt b/manpages/CMakeLists.txt new file mode 100644 index 000000000..3e45208fd --- /dev/null +++ b/manpages/CMakeLists.txt @@ -0,0 +1,59 @@ +set (ASCIIDOC_MANS + man1/wsjtx.1.txt + ) + +find_program (A2X_EXECUTABLE NAMES a2x a2x.py) +if (NOT A2X_EXECUTABLE) + message (SEND_ERROR "Failed to find a2x.") +endif () +find_program (GZIP_EXECUTABLE NAMES gzip) +if (NOT GZIP_EXECUTABLE) + message (SEND_ERROR "Failed to find gzip.") +endif () +find_program (SED_EXECUTABLE NAMES sed) +if (NOT SED_EXECUTABLE) + message (SEND_ERROR "Failed to find sed.") +endif () + +set (XSLTPROC_OPTS + "-param man.endnotes.list.enabled 0 -param man.endnotes.are.numbered 0" + ) +set (A2X_OPTS + --format=manpage + --xsltproc-opts=${XSLTPROC_OPTS} + --doctype=manpage + --no-xmllint + ) + +set (MANPAGES) +if (A2X_EXECUTABLE AND GZIP_EXECUTABLE) + file (MAKE_DIRECTORY man) + foreach (f IN LISTS ASCIIDOC_MANS) + get_filename_component (d "${f}" PATH) + string (SUBSTRING "${d}" 3 -1 section) + if (NOT section MATCHES "[1-9]") + message (SEND_ERROR "Invalid man section ${section} in ${f}") + endif (NOT section MATCHES "[1-9]") + get_filename_component (filename "${f}" NAME_WE) + set (f "${CMAKE_CURRENT_SOURCE_DIR}/${f}") + set (d "man/${d}") + set (o "${d}/${filename}.${section}") + add_custom_command (OUTPUT "${o}.gz" + COMMAND ${CMAKE_COMMAND} ARGS -E make_directory "${d}" + COMMAND ${A2X_EXECUTABLE} ARGS ${A2X_OPTS} -D "${d}" "${f}" + COMMAND ${GZIP_EXECUTABLE} ARGS -r --force --best "${o}" + COMMAND ${SED_EXECUTABLE} ARGS --in-place "s@.so @.so man${section}/@" "${d}/*.${section}" + COMMAND ${GZIP_EXECUTABLE} ARGS -r --force --best "${d}/*.${section}" + DEPENDS "${f}" + COMMENT "Generating ${o}.gz" + ) + list (APPEND MANPAGES "${o}.gz") + endforeach () + + install ( + DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man + DESTINATION ${WSJT_MANPAGE_DESTINATION} + ) +endif (A2X_EXECUTABLE AND GZIP_EXECUTABLE) + +add_custom_target (manpages DEPENDS ${MANPAGES}) diff --git a/manpages/man1/wsjtx.1.txt b/manpages/man1/wsjtx.1.txt new file mode 100644 index 000000000..6fb99f8a0 --- /dev/null +++ b/manpages/man1/wsjtx.1.txt @@ -0,0 +1,120 @@ +:doctype: manpage +:man source: AsciiDoc +:man version: {revnumber} +:man manual: WSJT-X Manual += wsjtx(1) + +== NAME + +wsjtx, jt9 - Weak signal communications program. + +== SYNOPSIS + +*wsjtx* [OPTIONS] + +== DESCRIPTION + +*wsjtx* is a weak signal communications program supporting two operating +modes: JT65 and JT9 (*wsjtx* version 1 supported JT9 only). + +WSJT-X home page:: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html + +WSJT-X User's Guide:: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjtx-main-toc2.html + +An alternative JT65 decoder executable *kvasd* for i386 Ubuntu is +available at http://www.physics.princeton.edu/pulsar/K1JT/kvasd . +This decoder is not open-source, is not included in the wsjtx package, +and is not required for JT65 decoding. + +== OPTIONS +*-r, --rig-name*[=RIGNAME]:: + +Enable multiple instances of the wsjtx(1) application to run +concurrently. Each RIGNAME must be unique. One instance may use no +RIGNAME. If this option is not supplied then only one instance of +wsjtx(1) may be run at any time. + +*-v, --version*:: Display the application version. + +*-h,--help*:: Display usage information. + +*--test-mode*:: + +When this option is provided all writable files will be placed in a +special test location (~/.qttest). This option is only for +application testing and is not designed for normal operations. **Use +with caution**. + +== FILES + +Most of the following files are in a directory path containing the +directory name *WSJT-X[ - RIGNAME]* which indicates the value of the +command line option *--rig=RIGNAME* to indicate multiple instances of +*wsjtx* running concurrently. All writable files listed below are +therefore unique to each concurrent instance of *wsjtx*. If the +*--rig* command line option is not supplied or the *RIGNAME* argument +is not supplied then the directory paths below will have the directory +*WSJT-X*. + +~/.config/WSJT-X[ - RIGNAME].ini:: + +This file stores the application +configuration settings. + +~/.local/share/WSJT-X[ - RIGNAME]/ALL.txt:: + +*ALL.txt* contains a record of transmitted and received messages and +other activity such as frequency or band changes. + +~/.local/share/WSJT-X[ - RIGNAME]/save/:: + +Is the default location for saved .WAV files recorded by the +application. The .WAV file save location may be changed in the +applications settings dialog. + +~/.local/share/WSJT-X[ - RIGNAME]/save/samples/:: + +Sample .WAV files suppied with the application are found in this +directory, they may be played back in the application and are referred +to in the user guide tutorial sections. + +~/.local/share/WSJT-X[ -RIGNAME]/timer.out:: + +This is a diagnostic file that records decode performance profiling +information. + +~/.local/share/WSJT-X[ - RIGNAME]/cty.dat:: + +This file is not required as a version of it is embedded in the +application, but if you wish an updated version can be placed here. +If present that version will be used in preference to the embedded +version. + +~/.local/share/WSJT-X[ - RIGNAME]/wsjtx.log:: + +This is a plain text CSV record of logged QSOs. + +~/.local/share/WSJT-X[ - RIGNAME]/wsjtx_log.adi:: + +This is a record of QSOs logged in the ADIF format which is suitable +for import into many Ham Radio logging programs. + +== AUTHOR + +Joe Taylor, K1JT. + +== COPYING + +*wsjtx* is Copyright (C) 2001 - 2014 by Joseph H. Taylor, Jr., K1JT, +with contributions from additional authors. WSJT-X is Open Source +software, licensed under the GNU General Public License (GPLv3). + +*wsjtx* includes the ``**Hamlib - Ham Radio Control Libraries**'' +software which is licensed under the GNU Lesser General Public License +(LGPL). Home page https://sourceforge.net/apps/mediawiki/hamlib, +sources from https://sourceforge.net/p/hamlib/code/ci/master/tree/. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. diff --git a/wsjtx.desktop b/wsjtx.desktop index dd663036f..147fc7cee 100644 --- a/wsjtx.desktop +++ b/wsjtx.desktop @@ -3,9 +3,9 @@ Version=1.0 Name=wsjtx Comment=Amateur Radio Weak Signal Operating Exec=wsjtx -Icon=wsjtx_icon.png +Icon=wsjtx_icon Terminal=false X-MultipleArgs=false Type=Application -Categories=Amateur Radio; +Categories=AudioVideo;Audio;HamRadio; StartupNotify=true