Compiling WSJT-X 1.7.0 on Devuan Jessie

Posted by Nate Bargmann on Fri, Dec 23, 2016

The latest version of WSJT-X, 1.7.0, was released on 19 December, 2016.  I found that the available Debian formatted package would not install as it is built for Ubuntu 16.04.1 (and variants) which has a newer version of Qt5 on it than Devuan Jessie (as Devuan Jessie is mostly a downstream distribution of Debian 8, Jessie, these notes should apply to it as well).

The package that kept WSJT-X from installing was libqt5core5a which depends on Qt5 5.5 while all the other packages depend on Qt5 5.2.  Strange.  Regardless, download the source tarball and off to compiling we go!

In any source package a file named INSTALL is present to provide information on the needed build dependencies.  I found the list to be slightly incorrect.  Minimum package versions are listed in this file and the versions in Jessie are newer so compilation will succeed once all of the proper -dev packages are installed.  On Devuan there is usually a “meta” package that has the latest version of its package as a dependency so that older versions may be installed manually, if needed.

The minimal list of packages that need to be installed are:

build-essential
gcc
g++
gfortran
cmake
git
subversion
asciidoc
asciidoctor
xmlto
libfftw3-dev
libqt5serialport5-dev
qtmultimedia5-dev
libusb-dev
libudev-dev
libqt5multimedia5-plugins

Notes

When your package manager is configured to install recommended packages, some of the packages will install several more packages than are actually needed.  In my case I have that option disabled so I had to install the xmlto package separately to allow the WSJT-X documentation to be built.

There is no one Qt5 development package, so I installed the two Qt development packages shown above which themselves required run time libraries and other development packages needed to build WSJT-X.

On one computer I needed to install the libudev-dev package to resolve a linker error while another computer didn’t require it.  Strange.

Finally, I needed to install the libqt5multimedia5-plugins package so that the sound cards could be found by WSJT-X at run time.

That completes the list of packages needed for compilation.  The rest of the instructions in INSTALL should be followed to configure, build, and install WSJT-X.  The install step will likely require superuser (root) privileges when the default install path is used (/usr/local), though the instructions don’t mention it.

Configuring Pulse Audio

As I use Pulse Audio as an audio routing daemon, it is necessary to modify its configuration slightly as WSJT-X requires 16 bit audio at a 48 kHz sample rate.  The easiest way to handle this is to copy the file /etc/pulse/daemon.conf to $HOME/.pulse/daemon.conf and modify the version in your home directory.

Find the line ; default-sample-rate = 44100 toward the end of the file, delete the leading semicolon and space and then change the value to 48000.  It should now look like this:

default-sample-rate = 48000

Save the file.

As Pulse Audio is started by the desktop environment on Devuan, it’s probably easiest to log out of the desktop environment.  Doing so doesn’t necessarily shut down the Pulse Audio daemon!  What I did was log in to one of the virtual consoles (Ctl-Alt-F1),  use the command ps x -u <username> to see if  the pulseaudio daemon is running and if so, run the killall pulseaudio command to terminate it.  Then I logged back into the desktop environment in the usual way using Alt-F7 to jump to the GUI login screen.

Once the desktop environment was up and running, I used the PulseAudio Manager program to check the properties of the sound device I use for the radio interface to be sure it was showing a sample rate of 48 kHz.  Then I was able to start WSJT-X and it found the sound device and off we went.

While these notes are mostly for my own future reference, perhaps they will assist someone else.