mshv¶
Multi-mode weak-signal application with multi-stream FT8 decoding
- Version recorded: 2.76.5
- Categories:
weak-signal - Upstream: http://lz2hv.org/node/10
What it does¶
Decodes and transmits FT8, JT65, JT9, MSK144 and other weak-signal modes, with multi-stream decoding that lets one instance work several callers at once — useful for contest and DXpedition operating.
Why you would want it¶
Where WSJT-X handles one exchange at a time, MSHV can run several in parallel, which matters when you are the rare station being called.
Before it will work¶
CAT rig control and sound-card audio routing.
How it installs¶
- source (qmake) from https://sourceforge.net/projects/mshv/files/MSHV_2765_Full_Source_Code.zip/download — arch aarch64
- build dependencies:
libqt5websockets5-dev,libasound2-dev,libpulse-dev,libfftw3-dev,qt5-qmake - the project's build system has no install rule; the binaries listed below are copied into the prefix instead
- source (qmake) from https://sourceforge.net/projects/mshv/files/MSHV_2765_Full_Source_Code.zip/download — arch x86_64
- build dependencies:
libqt5websockets5-dev,libasound2-dev,libpulse-dev,libfftw3-dev,qt5-qmake - the project's build system has no install rule; the binaries listed below are copied into the prefix instead
- Closed 2026-08-30 by install_tree (source-build-gaps #6). The history, kept because it dates the evidence: Every MSHV .pro file sets
DESTDIR = binand declares noINSTALLStarget — checked in MSHV_2765_Full_Source_Code.zip on 2026-08-28, all eight .pro files — so there is no install rule for the qmake path's third command to run. The schema now carriesprovides_install_target: falsefor exactly this, and MSHV cannot use it yet: it reads settings, resources and logs from directories beside the binary inbin/, so copying the executable alone into a prefix produces a program that starts and cannot find its own data. AHRL's answer is a launcher thatcds into the build tree, which is why the launcher below carries a working directory. Installing the tree and generating that launcher is M3's launcher-generation work, and MSHV is one of its 14 units. Coil64 is the clean case the new flag does serve.
What it changes on your machine¶
- installed tree —
/usr/local/share/hammunition/mshvis created and handed to the operator who ran the install by an explicitchownstep in the plan (D-043): the software keeps settings, logs or data beside its executable, so the tree has to be writable by whoever runs it. On a shared machine that means anyone who can act as that user can change what the launcher runs. /usr/local/share/hammunitionstays root-owned; the tree itself is replaced whole on every install, so anything the software wrote inside it is lost then- undo:
hammunition uninstall mshvremoves the tree
Known problems¶
Ships a separate qmake project file per architecture and must run from its build directory, so a generated launcher is required. Still on Qt5 with no published port plan.
Toolkit risk¶
qt5: unknown, checked 2026-08-25 — libqt5websockets5-dev. No published Qt6 plan.
Keeping it current¶
- probe: none
- strategy: manual
- Upstream posts numbered zips; re-pin by hand. Note the DOWNLOAD moved: the lz2hv.org/files/ URL this manifest carried returns 404 (checked 2026-08-28), and MSHV publishes its source on SourceForge. The recorded sha256 was already correct — the file fetched from SourceForge hashes to exactly the a20eb945… this manifest carries — so only the location was wrong, and the digest is what made that provable rather than a guess.
Source: catalog/packages/mshv.yaml