2016. október 27., csütörtök

Building WSJT-X 1.7.0-rc1 from sources on Ubuntu 16.04.1 Xenial

WSJT-X is a great desktop application for communicating via radio using various weak signal modes. I use it on the HF bands to contact amateur radio operators literally all over the world.

The new 1.7.0-rc1 alpha release features a new algorithm for decoding, and it is quite a bit more effective than the previous 1.6.x versions. One of the most important parts is decoding Reed-Solomon codes. The previous versions used a proprietary decoder, this one uses a new, open-source method.

Since I work a lot in JT65 and JT9 on short wave, building the new version definitely worth the struggle.

I've set up an LXC container to start fresh. Repeating the commands below will get you a fresh and crispy wsjtx binary (and others), along with the documentation.

Let's start with creating a new empty directory. I use a directory named "install" to download and build various packages.

$ mkdir install
$ cd install

We'll put everything there. Before we start, let's install packages necessary for building hamlib and wsjt-x. This command will download and install quite a lot of packages. Go grab a coffee.

$ sudo apt install man git subversion ca-certificates build-essential autoconf automake libtool texinfo gfortran asciidoctor libfftw3-dev pkg-config qtbase5-dev qtmultimedia5-dev libqt5serialport5-dev asciidoc

Install a recent version of hamlib from github:

$ git clone https://github.com/N0NB/hamlib.git
$ cd hamlib
$ git branch for-wsjtx
$ git checkout for-wsjtx
$ git reset --hard f778fe1677bffed68d52f04a440e887f249da56b
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ cd ..

Fetch WSJTX 1.7.0rc1 sources from SourceForge:

$ svn co svn://svn.code.sf.net/p/wsjt/wsjt/tags/wsjtx-1.7.0-rc1

Create a directory for the release and build the software:

$ cd wsjtx-1.7.0-rc1
$ mkdir release
$ cd release
$ cmake ..
$ sudo cmake --build . --target install

The binaries will be installed into /usr/local/bin. This is normally in the $PATH environment variable, so wsjtx can be launched with:

$ wsjtx