Unverified Commit 639edf98 authored by Doron Behar's avatar Doron Behar Committed by GitHub
Browse files

Merge pull request #257809 from doronbehar/pkg/gnuradio

gnuradio: general improvements
parents a3fbffbe 937a6594
Loading
Loading
Loading
Loading
+28 −22
Original line number Diff line number Diff line
@@ -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
    ''
  ;
}
}))
+21 −23
Original line number Diff line number Diff line
@@ -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
    ''
  ;
}
}))
+14 −23
Original line number Diff line number Diff line
@@ -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
    ''
  ;
}
}))
+23 −15
Original line number Diff line number Diff line
@@ -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";
+2 −3
Original line number Diff line number Diff line
@@ -20,8 +20,10 @@ let
      boost
      volk
      logLib
      python
    ;
    inherit mkDerivationWith mkDerivation;
    inherit gnuradio;
  } // lib.optionalAttrs (gnuradio.hasFeature "gr-uhd") {
    inherit (gnuradio) uhd;
  });
@@ -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 { };