1{
2 lib,
3 stdenv,
4 fetchFromBitbucket,
5 wrapQtAppsHook,
6 pkg-config,
7 hamlib,
8 libusb1,
9 cmake,
10 gfortran,
11 fftw,
12 fftwFloat,
13 qtbase,
14 qtmultimedia,
15 qtserialport,
16}:
17
18stdenv.mkDerivation rec {
19 pname = "js8call";
20 version = "2.2.0";
21
22 src = fetchFromBitbucket {
23 owner = "widefido";
24 repo = pname;
25 rev = "v${version}-ga";
26 sha256 = "sha256-mFPhiAAibCiAkLrysAmIQalVCGd9ips2lqbAsowYprY=";
27 };
28
29 nativeBuildInputs = [
30 wrapQtAppsHook
31 gfortran
32 pkg-config
33 cmake
34 ];
35
36 buildInputs = [
37 hamlib
38 libusb1
39 fftw
40 fftwFloat
41 qtbase
42 qtmultimedia
43 qtserialport
44 ];
45
46 prePatch = ''
47 substituteInPlace CMakeLists.txt \
48 --replace "/usr/share/applications" "$out/share/applications" \
49 --replace "/usr/share/pixmaps" "$out/share/pixmaps" \
50 --replace "/usr/bin/" "$out/bin"
51 '';
52
53 patches = [ ./cmake.patch ];
54
55 meta = with lib; {
56 description = "Weak-signal keyboard messaging for amateur radio";
57 longDescription = ''
58 JS8Call is software using the JS8 Digital Mode providing weak signal
59 keyboard to keyboard messaging to Amateur Radio Operators.
60 '';
61 homepage = "http://js8call.com/";
62 license = licenses.gpl3Plus;
63 platforms = platforms.linux;
64 maintainers = with maintainers; [ melling ];
65 };
66}