summary refs log tree commit diff
path: root/pkgs/applications/radio
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/radio')
-rw-r--r--pkgs/applications/radio/cubicsdr/default.nix9
-rw-r--r--pkgs/applications/radio/direwolf/default.nix2
-rw-r--r--pkgs/applications/radio/flex-ncat/default.nix6
-rw-r--r--pkgs/applications/radio/flex-ndax/default.nix6
-rw-r--r--pkgs/applications/radio/freedv/default.nix8
-rw-r--r--pkgs/applications/radio/hackrf/default.nix4
-rw-r--r--pkgs/applications/radio/klog/default.nix2
-rw-r--r--pkgs/applications/radio/limesuite/default.nix9
-rw-r--r--pkgs/applications/radio/rtl-ais/default.nix3
-rw-r--r--pkgs/applications/radio/sigdigger/default.nix59
-rw-r--r--pkgs/applications/radio/sigutils/default.nix40
-rw-r--r--pkgs/applications/radio/soapyairspy/default.nix6
-rw-r--r--pkgs/applications/radio/soapyaudio/default.nix7
-rw-r--r--pkgs/applications/radio/soapybladerf/default.nix6
-rw-r--r--pkgs/applications/radio/soapyhackrf/default.nix6
-rw-r--r--pkgs/applications/radio/soapyremote/default.nix4
-rw-r--r--pkgs/applications/radio/soapyuhd/default.nix6
-rw-r--r--pkgs/applications/radio/suscan/default.nix50
-rw-r--r--pkgs/applications/radio/suwidgets/default.nix51
-rw-r--r--pkgs/applications/radio/unixcw/default.nix3
-rw-r--r--pkgs/applications/radio/xlog/default.nix3
21 files changed, 258 insertions, 32 deletions
diff --git a/pkgs/applications/radio/cubicsdr/default.nix b/pkgs/applications/radio/cubicsdr/default.nix
index 23b64e124c553..400927aed4d7a 100644
--- a/pkgs/applications/radio/cubicsdr/default.nix
+++ b/pkgs/applications/radio/cubicsdr/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, fftw, hamlib, libpulseaudio, libGL, libX11, liquid-dsp,
-  pkg-config, soapysdr-with-plugins, wxGTK31-gtk3, enableDigitalLab ? false }:
+  pkg-config, soapysdr-with-plugins, wxGTK32, enableDigitalLab ? false,
+  Cocoa, WebKit }:
 
 stdenv.mkDerivation rec {
   pname = "cubicsdr";
@@ -14,7 +15,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ fftw hamlib libpulseaudio libGL libX11 liquid-dsp soapysdr-with-plugins wxGTK31-gtk3 ];
+  buildInputs = [ fftw hamlib liquid-dsp soapysdr-with-plugins wxGTK32 ]
+    ++ lib.optionals stdenv.isLinux [ libpulseaudio libGL libX11 ]
+    ++ lib.optionals stdenv.isDarwin [ Cocoa WebKit ];
 
   cmakeFlags = [ "-DUSE_HAMLIB=ON" ]
     ++ lib.optional enableDigitalLab "-DENABLE_DIGITAL_LAB=ON";
@@ -24,6 +27,6 @@ stdenv.mkDerivation rec {
     description = "Software Defined Radio application";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ lasandell ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/radio/direwolf/default.nix b/pkgs/applications/radio/direwolf/default.nix
index ffd608edf7ff0..46303d9c92abf 100644
--- a/pkgs/applications/radio/direwolf/default.nix
+++ b/pkgs/applications/radio/direwolf/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, alsa-lib, espeak, glibc, gpsd
+{ lib, stdenv, fetchFromGitHub, cmake, alsa-lib, espeak, gpsd
 , hamlib, perl, python3, udev }:
 
 with lib;
diff --git a/pkgs/applications/radio/flex-ncat/default.nix b/pkgs/applications/radio/flex-ncat/default.nix
index 24c2e08f5525f..e06b241905d3a 100644
--- a/pkgs/applications/radio/flex-ncat/default.nix
+++ b/pkgs/applications/radio/flex-ncat/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "flex-ncat";
-  version = "0.1-20220505.0";
+  version = "0.1-20221007.1";
 
   src = fetchFromGitHub {
     owner = "kc2g-flex-tools";
     repo = "nCAT";
     rev = "v${version}";
-    hash = "sha256-Jqoqy+W5sKfg7U/F2OpK1jAVM8rm1Tbr4RHG/mMVE0g=";
+    hash = "sha256-9rxI3wsqjhaH7DD1Go/8s0r6jXaE15Z9PPtbsnsfrM0=";
   };
 
-  vendorSha256 = "sha256-mWZRaPbmSPBUhTCWSkU33zOOq79ylEbnjPG3gLkWeQY=";
+  vendorSha256 = "sha256-lnJtFixgv4ke4Knavb+XKFPzHCiAPhNtfZS3SRVvY2g=";
 
   meta = with lib; {
     homepage = "https://github.com/kc2g-flex-tools/nCAT";
diff --git a/pkgs/applications/radio/flex-ndax/default.nix b/pkgs/applications/radio/flex-ndax/default.nix
index 6900e1eb4ed25..477953ab26fde 100644
--- a/pkgs/applications/radio/flex-ndax/default.nix
+++ b/pkgs/applications/radio/flex-ndax/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "flex-ndax";
-  version = "0.2-20220427";
+  version = "0.2-20221007.1";
 
   src = fetchFromGitHub {
     owner = "kc2g-flex-tools";
     repo = "nDAX";
     rev = "v${version}";
-    hash = "sha256-KmvTLfGC6xzXcWYAzmBYiYSF65lqMdsdMQjUEk3siqc=";
+    hash = "sha256-QldbiJnCjWrlXEPvyAqV5Xwz9YvsnVobVy/E/OB0A1k=";
   };
 
   buildInputs = [ libpulseaudio ];
 
-  vendorSha256 = "sha256-u/5LiVo/ZOefprEKr/L1+3+OfYb0a4wq+CWoUjYNvzg=";
+  vendorSha256 = "sha256-eHy8oFYicVONQr31LQQ9b5auzeBoIzbszw2buKaBQbQ=";
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/applications/radio/freedv/default.nix b/pkgs/applications/radio/freedv/default.nix
index 9e400a11bee5f..ba86468854822 100644
--- a/pkgs/applications/radio/freedv/default.nix
+++ b/pkgs/applications/radio/freedv/default.nix
@@ -11,7 +11,7 @@
 , portaudio
 , speexdsp
 , hamlib
-, wxGTK31-gtk3
+, wxGTK32
 , pulseSupport ? config.pulseaudio or stdenv.isLinux
 , AppKit
 , AVFoundation
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     lpcnetfreedv
     speexdsp
     hamlib
-    wxGTK31-gtk3
+    wxGTK32
   ] ++ (if pulseSupport then [ libpulseaudio ] else [ portaudio ])
   ++ lib.optionals stdenv.isDarwin [
     AppKit
@@ -60,6 +60,10 @@ stdenv.mkDerivation rec {
     "-DUSE_STATIC_DEPS:BOOL=FALSE"
   ] ++ lib.optionals pulseSupport [ "-DUSE_PULSEAUDIO:BOOL=TRUE" ];
 
+  NIX_CFLAGS_COMPILE = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+    "-DAPPLE_OLD_XCODE"
+  ];
+
   meta = with lib; {
     homepage = "https://freedv.org/";
     description = "Digital voice for HF radio";
diff --git a/pkgs/applications/radio/hackrf/default.nix b/pkgs/applications/radio/hackrf/default.nix
index a81227ddd46d8..1180f5a941ae7 100644
--- a/pkgs/applications/radio/hackrf/default.nix
+++ b/pkgs/applications/radio/hackrf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hackrf";
-  version = "2021.03.1";
+  version = "2022.09.1";
 
   src = fetchFromGitHub {
     owner = "greatscottgadgets";
     repo = "hackrf";
     rev = "v${version}";
-    sha256 = "sha256-2kEfTco95I9YLz/18nfjJSd7U/HE5sBCEioWL2t804k=";
+    sha256 = "sha256-c+9DEMxioIbEDNTdLSOnxX1zpFk07K9rlGP9goEJMlU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/klog/default.nix b/pkgs/applications/radio/klog/default.nix
index 080011e167e63..248561b3ee139 100644
--- a/pkgs/applications/radio/klog/default.nix
+++ b/pkgs/applications/radio/klog/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, hamlib, pkg-config, qt5, qtbase, qttools, qtserialport, qtcharts, qmake, wrapQtAppsHook }:
+{ lib, stdenv, fetchurl, hamlib, pkg-config, qtbase, qttools, qtserialport, qtcharts, qmake, wrapQtAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "klog";
diff --git a/pkgs/applications/radio/limesuite/default.nix b/pkgs/applications/radio/limesuite/default.nix
index 072d2d15b7ef3..f98eb7639c1ac 100644
--- a/pkgs/applications/radio/limesuite/default.nix
+++ b/pkgs/applications/radio/limesuite/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, fetchFromGitHub, cmake
-, sqlite, wxGTK30-gtk3, libusb1, soapysdr
+, sqlite, wxGTK32, libusb1, soapysdr
 , mesa_glu, libX11, gnuplot, fltk
+, GLUT
 } :
 
 stdenv.mkDerivation rec {
@@ -23,13 +24,15 @@ stdenv.mkDerivation rec {
   buildInputs = [
     libusb1
     sqlite
-    wxGTK30-gtk3
+    wxGTK32
     fltk
     gnuplot
     libusb1
     soapysdr
     mesa_glu
     libX11
+  ] ++ lib.optionals stdenv.isDarwin [
+    GLUT
   ];
 
   postInstall = ''
@@ -42,7 +45,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/myriadrf/LimeSuite";
     license = licenses.asl20;
     maintainers = with maintainers; [ markuskowa ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
 
diff --git a/pkgs/applications/radio/rtl-ais/default.nix b/pkgs/applications/radio/rtl-ais/default.nix
index c244868f65d89..407c18c1a0adc 100644
--- a/pkgs/applications/radio/rtl-ais/default.nix
+++ b/pkgs/applications/radio/rtl-ais/default.nix
@@ -3,7 +3,8 @@
 stdenv.mkDerivation {
   pname = "rtl-ais";
   version = "0.8.1";
-  buildInputs = [ pkg-config rtl-sdr libusb1 ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ rtl-sdr libusb1 ];
 
   src = fetchFromGitHub {
     owner = "dgiardini";
diff --git a/pkgs/applications/radio/sigdigger/default.nix b/pkgs/applications/radio/sigdigger/default.nix
new file mode 100644
index 0000000000000..4273d148ce280
--- /dev/null
+++ b/pkgs/applications/radio/sigdigger/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, qmake
+, qtbase
+, pkg-config
+, sigutils
+, fftwSinglePrec
+, suwidgets
+, wrapQtAppsHook
+, suscan
+, libsndfile
+, soapysdr-with-plugins
+, libxml2
+, volk
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sigdigger";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "BatchDrake";
+    repo = "SigDigger";
+    rev = "v${version}";
+    sha256 = "sha256-dS+Fc0iQz7GIlGaR556Ur/EQh3Uzhqm9uBW42IuEqoE=";
+  };
+
+  nativeBuildInputs = [
+    qmake
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase
+    sigutils
+    fftwSinglePrec
+    suwidgets
+    suscan
+    libsndfile
+    libxml2
+    volk
+    soapysdr-with-plugins
+  ];
+
+  qmakeFlags = [
+    "SUWIDGETS_PREFIX=${suwidgets}"
+    "SigDigger.pro"
+  ];
+
+  meta = with lib; {
+    description = "Qt-based digital signal analyzer, using Suscan core and Sigutils DSP library";
+    homepage = "https://github.com/BatchDrake/SigDigger";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ polygon oxapentane ];
+  };
+}
diff --git a/pkgs/applications/radio/sigutils/default.nix b/pkgs/applications/radio/sigutils/default.nix
new file mode 100644
index 0000000000000..8b384af02270d
--- /dev/null
+++ b/pkgs/applications/radio/sigutils/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, fftwSinglePrec
+, libsndfile
+, volk
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sigutils";
+  version = "unstable-2022-07-05";
+
+  src = fetchFromGitHub {
+    owner = "BatchDrake";
+    repo = "sigutils";
+    rev = "1d7559d427aadd253dd825eef26bf15e54860c5f";
+    sha256 = "sha256-wvd6sixwGmR9R4x+swLVqXre4Dqnj10jZIXUfaJcmBw=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    fftwSinglePrec
+    libsndfile
+    volk
+  ];
+
+  meta = with lib; {
+    description = "Small signal processing utility library";
+    homepage = "https://github.com/BatchDrake/sigutils";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ polygon oxapentane ];
+  };
+}
diff --git a/pkgs/applications/radio/soapyairspy/default.nix b/pkgs/applications/radio/soapyairspy/default.nix
index 7e8a09d67b987..289a20d281ccb 100644
--- a/pkgs/applications/radio/soapyairspy/default.nix
+++ b/pkgs/applications/radio/soapyairspy/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake
 , airspy, soapysdr
+, libobjc, IOKit, Security
 } :
 
 stdenv.mkDerivation rec {
@@ -14,7 +15,8 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ airspy soapysdr ];
+  buildInputs = [ airspy soapysdr ]
+    ++ lib.optionals stdenv.isDarwin [ libobjc IOKit Security ];
 
   cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
 
@@ -23,6 +25,6 @@ stdenv.mkDerivation rec {
     description = "SoapySDR plugin for Airspy devices";
     license = licenses.mit;
     maintainers = with maintainers; [ markuskowa ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/radio/soapyaudio/default.nix b/pkgs/applications/radio/soapyaudio/default.nix
index 74924de241d32..7434791b69f0b 100644
--- a/pkgs/applications/radio/soapyaudio/default.nix
+++ b/pkgs/applications/radio/soapyaudio/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config
 , hamlib, rtaudio, alsa-lib, libpulseaudio, libjack2, libusb1, soapysdr
+, Accelerate, CoreAudio
 } :
 
 stdenv.mkDerivation rec {
@@ -14,7 +15,9 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ hamlib rtaudio alsa-lib libpulseaudio libjack2 libusb1 soapysdr ];
+  buildInputs = [ hamlib rtaudio libjack2 libusb1 soapysdr ]
+    ++ lib.optionals stdenv.isLinux [ alsa-lib libpulseaudio ]
+    ++ lib.optionals stdenv.isDarwin [ Accelerate CoreAudio ];
 
   cmakeFlags = [
     "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/"
@@ -26,6 +29,6 @@ stdenv.mkDerivation rec {
     description = "SoapySDR plugin for amateur radio and audio devices";
     license = licenses.mit;
     maintainers = with maintainers; [ numinit ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/radio/soapybladerf/default.nix b/pkgs/applications/radio/soapybladerf/default.nix
index dca5b7702c31d..0f2b445b960e5 100644
--- a/pkgs/applications/radio/soapybladerf/default.nix
+++ b/pkgs/applications/radio/soapybladerf/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config
 , libbladeRF, soapysdr
+, libobjc, IOKit, Security
 } :
 
 let
@@ -17,7 +18,8 @@ in stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ libbladeRF soapysdr ];
+  buildInputs = [ libbladeRF soapysdr ]
+    ++ lib.optionals stdenv.isDarwin [ libobjc IOKit Security ];
 
   cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
 
@@ -27,6 +29,6 @@ in stdenv.mkDerivation {
     description = "SoapySDR plugin for BladeRF devices";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ markuskowa ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/radio/soapyhackrf/default.nix b/pkgs/applications/radio/soapyhackrf/default.nix
index 1d2aaca9362bb..be621c0d3135e 100644
--- a/pkgs/applications/radio/soapyhackrf/default.nix
+++ b/pkgs/applications/radio/soapyhackrf/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config
 , hackrf, soapysdr
+, libobjc, IOKit, Security
 } :
 
 let
@@ -17,7 +18,8 @@ in stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ hackrf soapysdr ];
+  buildInputs = [ hackrf soapysdr ]
+    ++ lib.optionals stdenv.isDarwin [ libobjc IOKit Security ];
 
   cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
 
@@ -26,6 +28,6 @@ in stdenv.mkDerivation {
     description = "SoapySDR plugin for HackRF devices";
     license = licenses.mit;
     maintainers = with maintainers; [ markuskowa ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/radio/soapyremote/default.nix b/pkgs/applications/radio/soapyremote/default.nix
index 1433b1e9abba8..95f429aef43e0 100644
--- a/pkgs/applications/radio/soapyremote/default.nix
+++ b/pkgs/applications/radio/soapyremote/default.nix
@@ -19,11 +19,13 @@ in stdenv.mkDerivation {
 
   cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
 
+  NIX_CFLAGS_COMPILE = lib.optionals stdenv.isDarwin [ "-include sys/select.h" ];
+
   meta = with lib; {
     homepage = "https://github.com/pothosware/SoapyRemote";
     description = "SoapySDR plugin for remote access to SDRs";
     license = licenses.boost;
     maintainers = with maintainers; [ markuskowa ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/radio/soapyuhd/default.nix b/pkgs/applications/radio/soapyuhd/default.nix
index 864ceff4e1ddb..9220df3f5f946 100644
--- a/pkgs/applications/radio/soapyuhd/default.nix
+++ b/pkgs/applications/radio/soapyuhd/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config
 , uhd, boost, soapysdr
+, libobjc, IOKit, Security
 } :
 
 stdenv.mkDerivation rec {
@@ -14,7 +15,8 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ uhd boost soapysdr ];
+  buildInputs = [ uhd boost soapysdr ]
+    ++ lib.optionals stdenv.isDarwin [ libobjc IOKit Security ];
 
   cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
 
@@ -27,6 +29,6 @@ stdenv.mkDerivation rec {
     description = "SoapySDR plugin for UHD devices";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ markuskowa ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/radio/suscan/default.nix b/pkgs/applications/radio/suscan/default.nix
new file mode 100644
index 0000000000000..d2b13784a72cf
--- /dev/null
+++ b/pkgs/applications/radio/suscan/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, fftwSinglePrec
+, libsndfile
+, sigutils
+, soapysdr-with-plugins
+, libxml2
+, volk
+}:
+
+stdenv.mkDerivation rec {
+  pname = "suscan";
+  version = "unstable-2022-07-05";
+
+  src = fetchFromGitHub {
+    owner = "BatchDrake";
+    repo = "suscan";
+    rev = "37dad542b97aff24654f0bb80fb8e85af7cb84ab";
+    sha256 = "sha256-h1ogtYjkqiHb1/NAJfJ0HQIvGnZM2K/PSP5nqLXUf9M=";
+  };
+
+  postPatch = ''
+    sed -i 's/fftw3 >= 3.0/fftw3f >= 3.0/' suscan.pc.in
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    fftwSinglePrec
+    libsndfile
+    sigutils
+    soapysdr-with-plugins
+    libxml2
+    volk
+  ];
+
+  meta = with lib; {
+    description = "Channel scanner based on sigutils library";
+    homepage = "https://github.com/BatchDrake/suscan";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ polygon oxapentane ];
+  };
+}
diff --git a/pkgs/applications/radio/suwidgets/default.nix b/pkgs/applications/radio/suwidgets/default.nix
new file mode 100644
index 0000000000000..05f6cf12d6cdc
--- /dev/null
+++ b/pkgs/applications/radio/suwidgets/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, qmake
+, qtbase
+, pkg-config
+, sigutils
+, fftwSinglePrec
+}:
+
+stdenv.mkDerivation rec {
+  pname = "suwidgets";
+  version = "unstable-2022-04-03";
+
+  src = fetchFromGitHub {
+    owner = "BatchDrake";
+    repo = "SuWidgets";
+    rev = "826b3eeae5b682dc063f53b427caa9c7c48131ea";
+    sha256 = "sha256-cyFLsP+8GbALdlgEnVX4201Qq/KAxb/Vv+sJqbFpvUk=";
+  };
+
+  dontWrapQtApps = true;
+
+  postPatch = ''
+    substituteInPlace SuWidgets.pri \
+      --replace "PKGCONFIG += sigutils fftw3" "PKGCONFIG += sigutils fftw3f"
+  '';
+
+  nativeBuildInputs = [
+    qmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    qtbase
+    sigutils
+    fftwSinglePrec
+  ];
+
+  qmakeFlags = [
+    "SuWidgetsLib.pro"
+  ];
+
+  meta = with lib; {
+    description = "Sigutils-related widgets";
+    homepage = "https://github.com/BatchDrake/SuWidgets";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ polygon oxapentane ];
+  };
+}
diff --git a/pkgs/applications/radio/unixcw/default.nix b/pkgs/applications/radio/unixcw/default.nix
index 0d352609cf0dd..3fd066ec7b7bb 100644
--- a/pkgs/applications/radio/unixcw/default.nix
+++ b/pkgs/applications/radio/unixcw/default.nix
@@ -10,7 +10,8 @@ mkDerivation rec {
   patches = [
     ./remove-use-of-dlopen.patch
   ];
-  buildInputs = [ libpulseaudio alsa-lib pkg-config qtbase ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ libpulseaudio alsa-lib qtbase ];
   CFLAGS   ="-lasound -lpulse-simple";
 
   meta = with lib; {
diff --git a/pkgs/applications/radio/xlog/default.nix b/pkgs/applications/radio/xlog/default.nix
index 59af9a94d96b4..d47bd418f513d 100644
--- a/pkgs/applications/radio/xlog/default.nix
+++ b/pkgs/applications/radio/xlog/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
   # glib-2.62 deprecations
   NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
 
-  buildInputs = [ glib pkg-config gtk2 hamlib ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ glib gtk2 hamlib ];
 
   meta = with lib; {
     description = "An amateur radio logging program";