diff options
Diffstat (limited to 'pkgs/applications/radio/gnuradio')
-rw-r--r-- | pkgs/applications/radio/gnuradio/3.8.nix | 50 | ||||
-rw-r--r-- | pkgs/applications/radio/gnuradio/3.9.nix | 44 | ||||
-rw-r--r-- | pkgs/applications/radio/gnuradio/default.nix | 37 | ||||
-rw-r--r-- | pkgs/applications/radio/gnuradio/shared.nix | 38 |
4 files changed, 86 insertions, 83 deletions
diff --git a/pkgs/applications/radio/gnuradio/3.8.nix b/pkgs/applications/radio/gnuradio/3.8.nix index e10d3df374e..3113915bce8 100644 --- a/pkgs/applications/radio/gnuradio/3.8.nix +++ b/pkgs/applications/radio/gnuradio/3.8.nix @@ -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 @@ -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 { @@ -214,7 +215,7 @@ let removeReferencesTo featuresInfo features - versionAttr + version sourceSha256 overrideSrc fetchFromGitHub @@ -222,23 +223,28 @@ let 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 @@ -291,4 +297,4 @@ stdenv.mkDerivation { ${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake '' ; -} +})) diff --git a/pkgs/applications/radio/gnuradio/3.9.nix b/pkgs/applications/radio/gnuradio/3.9.nix index a393cd5528d..4d10851b7e1 100644 --- a/pkgs/applications/radio/gnuradio/3.9.nix +++ b/pkgs/applications/radio/gnuradio/3.9.nix @@ -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 @@ -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"; @@ -250,7 +251,7 @@ let removeReferencesTo featuresInfo features - versionAttr + version sourceSha256 overrideSrc fetchFromGitHub @@ -258,24 +259,21 @@ let 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 @@ -303,4 +301,4 @@ stdenv.mkDerivation { ${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake '' ; -} +})) diff --git a/pkgs/applications/radio/gnuradio/default.nix b/pkgs/applications/radio/gnuradio/default.nix index a443aec5367..d1f0a3fd6fb 100644 --- a/pkgs/applications/radio/gnuradio/default.nix +++ b/pkgs/applications/radio/gnuradio/default.nix @@ -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 @@ -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"; @@ -271,7 +272,7 @@ let removeReferencesTo featuresInfo features - versionAttr + version sourceSha256 overrideSrc fetchFromGitHub @@ -279,24 +280,14 @@ let 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 @@ -332,4 +323,4 @@ stdenv.mkDerivation { ${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake '' ; -} +})) diff --git a/pkgs/applications/radio/gnuradio/shared.nix b/pkgs/applications/radio/gnuradio/shared.nix index bdbc22cb787..fbb4960dc8f 100644 --- a/pkgs/applications/radio/gnuradio/shared.nix +++ b/pkgs/applications/radio/gnuradio/shared.nix @@ -5,7 +5,7 @@ , removeReferencesTo , featuresInfo , features -, versionAttr +, version , sourceSha256 # If overridden. No need to set default values, as they are given defaults in # the main expressions @@ -13,10 +13,21 @@ , 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 @@ -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) ( @@ -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"; |