diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 697cb475dc1b..d9d7970c751c 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -10181,6 +10181,15 @@ fingerprint = "F90F FD6D 585C 2BA1 F13D E8A9 7571 654C F88E 31C2"; }]; }; + oxapentane = { + email = "blame@oxapentane.com"; + github = "oxapentane"; + githubId = 1297357; + name = "Grigory Shipunov"; + keys = [{ + fingerprint = "DD09 98E6 CDF2 9453 7FC6 04F9 91FA 5E5B F9AA 901C"; + }]; + }; oxij = { email = "oxij@oxij.org"; github = "oxij"; diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index a8e66897a683..35e184b43991 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -110,6 +110,7 @@ with lib.maintainers; { astro SuperSandro2000 revol-xut + oxapentane ]; scope = "Maintain packages used in the C3D2 hackspace"; shortName = "c3d2"; diff --git a/pkgs/applications/radio/sigdigger/default.nix b/pkgs/applications/radio/sigdigger/default.nix new file mode 100644 index 000000000000..4273d148ce28 --- /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 000000000000..8b384af02270 --- /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/suscan/default.nix b/pkgs/applications/radio/suscan/default.nix new file mode 100644 index 000000000000..d2b13784a72c --- /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 000000000000..05f6cf12d6cd --- /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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 33ca400bbb81..252b293edaa0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21819,6 +21819,10 @@ with pkgs; inherit (darwin.apple_sdk.frameworks) AppKit; }; + sigdigger = libsForQt5.callPackage ../applications/radio/sigdigger { }; + + sigutils = callPackage ../applications/radio/sigutils { }; + sblim-sfcc = callPackage ../development/libraries/sblim-sfcc {}; selinux-sandbox = callPackage ../os-specific/linux/selinux-sandbox { }; @@ -22051,6 +22055,10 @@ with pkgs; splat = callPackage ../applications/radio/splat { }; + suscan = callPackage ../applications/radio/suscan { }; + + suwidgets = libsForQt5.callPackage ../applications/radio/suwidgets { }; + sratom = callPackage ../development/libraries/audio/sratom { }; srm = callPackage ../tools/security/srm { };