From 35098479d1a771878d4e8bde9ef8aaa92802a430 Mon Sep 17 00:00:00 2001 From: Astro Date: Wed, 22 Sep 2021 20:33:41 +0200 Subject: [PATCH] overlay/openwebrx: init --- flake.nix | 2 +- overlay/default.nix | 2 + overlay/openwebrx.nix | 109 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 overlay/openwebrx.nix diff --git a/flake.nix b/flake.nix index dc8b9f88..38aec483 100644 --- a/flake.nix +++ b/flake.nix @@ -104,7 +104,7 @@ # TODO: check if the ethernet address is reachable and if not, # execute wol on a machine in HQ. in { - inherit (pkgs) bmxd; + inherit (pkgs) bmxd openwebrx; list-upgradable = pkgs.writeScriptBin "list-upgradable" '' #! ${pkgs.runtimeShell} diff --git a/overlay/default.nix b/overlay/default.nix index d3c9cbf8..7984c3f0 100644 --- a/overlay/default.nix +++ b/overlay/default.nix @@ -4,4 +4,6 @@ final: prev: bmxd = prev.callPackage ./bmxd.nix { }; pile = prev.callPackage ./pile.nix { }; + + openwebrx = prev.python3Packages.callPackage ./openwebrx.nix { }; } diff --git a/overlay/openwebrx.nix b/overlay/openwebrx.nix new file mode 100644 index 00000000..10070d8d --- /dev/null +++ b/overlay/openwebrx.nix @@ -0,0 +1,109 @@ +{ stdenv, buildPythonPackage, buildPythonApplication, fetchFromGitHub +, autoreconfHook, pkg-config, fftw, libsamplerate +, cmake, rtl-sdr, soapysdr-with-plugins, alsa-lib +, setuptools +}: + +let + csdr = stdenv.mkDerivation rec { + pname = "csdr"; + version = "0.17.1"; + + src = fetchFromGitHub { + owner = "jketterl"; + repo = pname; + rev = version; + sha256 = "1vip5a3xgskcwba3xi66zfr986xrsch9na7my818cm8vw345y57b"; + }; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + buildInputs = [ + (fftw.overrideAttrs (oa: { + configureFlags = oa.configureFlags ++ [ + "--enable-float" + ]; + })) + libsamplerate + ]; + }; + + js8py = buildPythonPackage rec { + pname = "js8py"; + version = "0.1.1"; + + src = fetchFromGitHub { + owner = "jketterl"; + repo = pname; + rev = version; + sha256 = "1j80zclg1cl5clqd00qqa16prz7cyc32bvxqz2mh540cirygq24w"; + }; + }; + + owrx_connector = stdenv.mkDerivation rec { + pname = "owrx_connector"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "jketterl"; + repo = pname; + rev = version; + sha256 = "0gz4nf2frrkx1mpjfjpz2j919fkc99g5lxd8lhva3lgqyisvf4yj"; + }; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + buildInputs = [ + rtl-sdr + soapysdr-with-plugins + ]; + }; + + direwolf = stdenv.mkDerivation rec { + pname = "direwolf"; + version = "1.6"; + + src = fetchFromGitHub { + owner = "wb2osz"; + repo = pname; + rev = version; + sha256 = "0xmz64m02knbrpasfij4rrq53ksxna5idxwgabcw4n2b1ig7pyx5"; + }; + patchPhase = '' + substituteInPlace conf/CMakeLists.txt \ + --replace /etc/udev/ $out/etc/udev/ + ''; + + nativeBuildInputs = [ + cmake + ]; + buildInputs = [ + alsa-lib + ]; + }; + +in +buildPythonApplication rec { + pname = "openwebrx"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "jketterl"; + repo = pname; + rev = version; + sha256 = "0maxs07yx235xknvkbmhi2zds3vfkd66l6wz6kspz3jzl4c0v1f9"; + }; + + propagatedBuildInputs = [ + setuptools + csdr + js8py + soapysdr-with-plugins + owrx_connector + direwolf + ]; +}