Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 28 additions & 22 deletions pkgs/applications/radio/gnuradio/3.8.nix
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,7 @@
# If one wishes to use a different src or name for a very custom build
, overrideSrc ? {}
, pname ? "gnuradio"
, versionAttr ? {
major = "3.8";
minor = "5";
patch = "0";
}
, version ? "3.8.5.0"
}:

let
Expand Down Expand Up @@ -204,6 +200,11 @@ let
gr-zeromq = {
runtime = [ cppzmq ];
cmakeEnableFlag = "GR_ZEROMQ";
pythonRuntime = [
# Will compile without this, but it is required by tests, and by some
# gr blocks.
python.pkgs.pyzmq
];
};
};
shared = (import ./shared.nix {
Expand All @@ -214,31 +215,36 @@ let
removeReferencesTo
featuresInfo
features
versionAttr
version
sourceSha256
overrideSrc
fetchFromGitHub
;
qt = qt5;
gtk = gtk3;
});
inherit (shared) hasFeature; # function
inherit (shared.passthru) hasFeature; # function
in

stdenv.mkDerivation {
inherit pname;
inherit (shared)
version
src
nativeBuildInputs
buildInputs
disallowedReferences
stripDebugList
doCheck
dontWrapPythonPrograms
dontWrapQtApps
meta
;
stdenv.mkDerivation (finalAttrs: (shared // {
inherit pname version;
# Will still evaluate correctly if not used here. It only helps nix-update
# find the right file in which version is defined.
inherit (shared) src;
# Remove failing tests
preConfigure = (shared.preConfigure or "") + ''
# https://github.com/gnuradio/gnuradio/issues/3801
rm gr-blocks/python/blocks/qa_cpp_py_binding.py
rm gr-blocks/python/blocks/qa_cpp_py_binding_set.py
rm gr-blocks/python/blocks/qa_ctrlport_probes.py
# Tests that fail due to numpy deprecations upstream hasn't accomodated to yet.
rm gr-fec/python/fec/qa_polar_decoder_sc.py
rm gr-fec/python/fec/qa_polar_decoder_sc_list.py
rm gr-fec/python/fec/qa_polar_decoder_sc_systematic.py
rm gr-fec/python/fec/qa_polar_encoder.py
rm gr-fec/python/fec/qa_polar_encoder_systematic.py
rm gr-filter/python/filter/qa_freq_xlating_fft_filter.py
'';
patches = [
# Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
./modtool-newmod-permissions.3_8.patch
Expand Down Expand Up @@ -291,4 +297,4 @@ stdenv.mkDerivation {
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
''
;
}
}))
44 changes: 21 additions & 23 deletions pkgs/applications/radio/gnuradio/3.9.nix
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,7 @@
# If one wishes to use a different src or name for a very custom build
, overrideSrc ? {}
, pname ? "gnuradio"
, versionAttr ? {
major = "3.9";
minor = "8";
patch = "0";
}
, version ? "3.9.8.0"
}:

let
Expand Down Expand Up @@ -231,6 +227,11 @@ let
gr-zeromq = {
runtime = [ cppzmq ];
cmakeEnableFlag = "GR_ZEROMQ";
pythonRuntime = [
# Will compile without this, but it is required by tests, and by some
# gr blocks.
python.pkgs.pyzmq
];
};
gr-network = {
cmakeEnableFlag = "GR_NETWORK";
Expand All @@ -250,32 +251,29 @@ let
removeReferencesTo
featuresInfo
features
versionAttr
version
sourceSha256
overrideSrc
fetchFromGitHub
;
qt = qt5;
gtk = gtk3;
});
inherit (shared) hasFeature; # function
inherit (shared.passthru) hasFeature; # function
in

stdenv.mkDerivation {
inherit pname;
inherit (shared)
version
src
nativeBuildInputs
buildInputs
cmakeFlags
disallowedReferences
stripDebugList
doCheck
dontWrapPythonPrograms
dontWrapQtApps
meta
;
stdenv.mkDerivation (finalAttrs: (shared // {
inherit pname version;
# Will still evaluate correctly if not used here. It only helps nix-update
# find the right file in which version is defined.
inherit (shared) src;
# Remove failing tests
preConfigure = (shared.preConfigure or "") + ''
# https://github.com/gnuradio/gnuradio/issues/3801
rm gr-blocks/python/blocks/qa_cpp_py_binding.py
rm gr-blocks/python/blocks/qa_cpp_py_binding_set.py
rm gr-blocks/python/blocks/qa_ctrlport_probes.py
'';
patches = [
# Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
./modtool-newmod-permissions.patch
Expand Down Expand Up @@ -303,4 +301,4 @@ stdenv.mkDerivation {
${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake
''
;
}
}))
37 changes: 14 additions & 23 deletions pkgs/applications/radio/gnuradio/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,7 @@
# If one wishes to use a different src or name for a very custom build
, overrideSrc ? {}
, pname ? "gnuradio"
, versionAttr ? {
major = "3.10";
minor = "7";
patch = "0";
}
, version ? "3.10.7.0"
}:

let
Expand Down Expand Up @@ -252,6 +248,11 @@ let
gr-zeromq = {
runtime = [ cppzmq ];
cmakeEnableFlag = "GR_ZEROMQ";
pythonRuntime = [
# Will compile without this, but it is required by tests, and by some
# gr blocks.
python.pkgs.pyzmq
];
};
gr-network = {
cmakeEnableFlag = "GR_NETWORK";
Expand All @@ -271,32 +272,22 @@ let
removeReferencesTo
featuresInfo
features
versionAttr
version
sourceSha256
overrideSrc
fetchFromGitHub
;
qt = qt5;
gtk = gtk3;
});
inherit (shared) hasFeature; # function
inherit (shared.passthru) hasFeature; # function
in

stdenv.mkDerivation {
inherit pname;
inherit (shared)
version
src
nativeBuildInputs
buildInputs
cmakeFlags
disallowedReferences
stripDebugList
doCheck
dontWrapPythonPrograms
dontWrapQtApps
meta
;
stdenv.mkDerivation (finalAttrs: (shared // {
inherit pname version;
# Will still evaluate correctly if not used here. It only helps nix-update
# find the right file in which version is defined.
inherit (shared) src;
patches = [
# Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
./modtool-newmod-permissions.patch
Expand Down Expand Up @@ -332,4 +323,4 @@ stdenv.mkDerivation {
${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake
''
;
}
}))
38 changes: 23 additions & 15 deletions pkgs/applications/radio/gnuradio/shared.nix
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,29 @@
, removeReferencesTo
, featuresInfo
, features
, versionAttr
, version
, sourceSha256
# If overridden. No need to set default values, as they are given defaults in
# the main expressions
, overrideSrc
, fetchFromGitHub
}:

rec {
version = builtins.concatStringsSep "." (
lib.attrVals [ "major" "minor" "patch" ] versionAttr
let
# Check if a feature is enabled, while defaulting to true if feat is not
# specified.
hasFeature = feat: (
if builtins.hasAttr feat features then
features.${feat}
else
true
);
versionAttr = {
major = builtins.concatStringsSep "." (lib.take 2 (lib.splitVersion version));
minor = builtins.elemAt (lib.splitVersion version) 2;
patch = builtins.elemAt (lib.splitVersion version) 3;
};
in {
src = if overrideSrc != {} then
overrideSrc
else
Expand All @@ -27,14 +38,6 @@ rec {
sha256 = sourceSha256;
}
;
# Check if a feature is enabled, while defaulting to true if feat is not
# specified.
hasFeature = feat: (
if builtins.hasAttr feat features then
features.${feat}
else
true
);
nativeBuildInputs = lib.flatten (lib.mapAttrsToList (
feat: info: (
lib.optionals (hasFeature feat) (
Expand Down Expand Up @@ -109,9 +112,14 @@ rec {
# Wrapping is done with an external wrapper
dontWrapPythonPrograms = true;
dontWrapQtApps = true;
# Tests should succeed, but it's hard to get LD_LIBRARY_PATH right in order
# for it to happen.
doCheck = false;
# On darwin, it requires playing with DYLD_FALLBACK_LIBRARY_PATH to make if
# find libgnuradio-runtim.3.*.dylib .
doCheck = !stdenv.isDarwin;
preCheck = ''
export HOME=$(mktemp -d)
export QT_QPA_PLATFORM=offscreen
export QT_PLUGIN_PATH="${qt.qtbase.bin}/${qt.qtbase.qtPluginPrefix}"
'';

meta = with lib; {
description = "Software Defined Radio (SDR) software";
Expand Down
5 changes: 2 additions & 3 deletions pkgs/top-level/gnuradio-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ let
boost
volk
logLib
python
;
inherit mkDerivationWith mkDerivation;
inherit gnuradio;
} // lib.optionalAttrs (gnuradio.hasFeature "gr-uhd") {
inherit (gnuradio) uhd;
});
Expand All @@ -31,9 +33,6 @@ in {

### Packages

inherit gnuradio;
inherit (gnuradio) python;

osmosdr = callPackage ../development/gnuradio-modules/osmosdr/default.nix { };

ais = callPackage ../development/gnuradio-modules/ais/default.nix { };
Expand Down