nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 stdenv,
3 lib,
4 python3Packages,
5 fetchFromGitHub,
6 pkg-config,
7 cmake,
8 libsamplerate,
9 fftwFloat,
10 rtl-sdr,
11 soapysdr-with-plugins,
12 csdr,
13 direwolf,
14 sox,
15 wsjtx,
16 codecserver,
17 versionCheckHook,
18}:
19
20let
21
22 js8py = python3Packages.buildPythonPackage rec {
23 pname = "js8py";
24 version = "0.1.1";
25 format = "setuptools";
26
27 src = fetchFromGitHub {
28 owner = "jketterl";
29 repo = "js8py";
30 tag = version;
31 hash = "sha256-nAj8fI4MkAKr+LjvJQbz7Px8TVAYA9AwZYWy8Cj7AMk=";
32 };
33
34 pythonImportsCheck = [
35 "js8py"
36 "test"
37 ];
38
39 meta = {
40 homepage = "https://github.com/jketterl/js8py";
41 description = "Library to decode the output of the js8 binary of JS8Call";
42 license = lib.licenses.gpl3Only;
43 };
44 };
45
46 owrx_connector = stdenv.mkDerivation rec {
47 pname = "owrx_connector";
48 version = "0.6.0";
49
50 src = fetchFromGitHub {
51 owner = "jketterl";
52 repo = "owrx_connector";
53 tag = version;
54 hash = "sha256-1H0TJ8QN3b6Lof5TWvyokhCeN+dN7ITwzRvEo2X8OWc=";
55 };
56
57 postPatch = ''
58 substituteInPlace CMakeLists.txt --replace-fail \
59 "cmake_minimum_required (VERSION 3.0)" \
60 "cmake_minimum_required (VERSION 3.10)"
61 '';
62
63 nativeBuildInputs = [
64 cmake
65 pkg-config
66 ];
67
68 buildInputs = [
69 libsamplerate
70 fftwFloat
71 csdr
72 rtl-sdr
73 soapysdr-with-plugins
74 ];
75
76 nativeInstallCheckInputs = [ versionCheckHook ];
77 versionCheckProgram = "${placeholder "out"}/bin/rtl_connector";
78 doInstallCheck = true;
79
80 meta = {
81 homepage = "https://github.com/jketterl/owrx_connector";
82 description = "Set of connectors that are used by OpenWebRX to interface with SDR hardware";
83 license = lib.licenses.gpl3Only;
84 platforms = lib.platforms.unix;
85 };
86 };
87
88in
89python3Packages.buildPythonApplication rec {
90 pname = "openwebrx";
91 version = "1.2.2";
92 format = "setuptools";
93
94 src = fetchFromGitHub {
95 owner = "jketterl";
96 repo = "openwebrx";
97 tag = version;
98 hash = "sha256-i3Znp5Sxs/KtJazHh2v9/2P+3cEocWB5wIpF7E4pK9s=";
99 };
100
101 dependencies =
102 with python3Packages;
103 [
104 setuptools
105 csdr
106 pycsdr
107 pydigiham
108 ]
109 ++ [
110 js8py
111 soapysdr-with-plugins
112 owrx_connector
113 direwolf
114 sox
115 wsjtx
116 codecserver
117 ];
118
119 pythonImportsCheck = [
120 "csdr"
121 "owrx"
122 "test"
123 ];
124
125 nativeInstallCheckInputs = [ versionCheckHook ];
126 doInstallCheck = true;
127
128 passthru = {
129 inherit js8py owrx_connector;
130 };
131
132 meta = {
133 homepage = "https://github.com/jketterl/openwebrx";
134 description = "Simple DSP library and command-line tool for Software Defined Radio";
135 mainProgram = "openwebrx";
136 license = lib.licenses.gpl3Only;
137 };
138}