diff options
author | Doron Behar <doron.behar@gmail.com> | 2020-10-05 12:04:49 +0300 |
---|---|---|
committer | Doron Behar <doron.behar@gmail.com> | 2020-12-05 13:23:00 +0200 |
commit | 3becac02f894b4f29ade13318b9297d827d84525 (patch) | |
tree | ba5234d532394fe260f5ed1101469df2e0fb4178 /pkgs/top-level | |
parent | 7e96d9ee61cbe72dfe72d522dbed2d0c89b500d4 (diff) | |
download | nixpkgs-3becac02f894b4f29ade13318b9297d827d84525.tar nixpkgs-3becac02f894b4f29ade13318b9297d827d84525.tar.gz nixpkgs-3becac02f894b4f29ade13318b9297d827d84525.tar.bz2 nixpkgs-3becac02f894b4f29ade13318b9297d827d84525.tar.lz nixpkgs-3becac02f894b4f29ade13318b9297d827d84525.tar.xz nixpkgs-3becac02f894b4f29ade13318b9297d827d84525.tar.zst nixpkgs-3becac02f894b4f29ade13318b9297d827d84525.zip |
gnuradio: rewrite
Write (similar) expressions for GNURadio 3.7 and 3.8 and make 3.8 available as `gnuradio`, and `gnuradio3_7` point to the 3.7 build. Teach both 3.7 & 3.8 expressions accept a `features` attribute set, that tells them what features to compile. There are dependencies within the different features, and we rely on upstream's cmake scripts to make sure the `configurePhase` will fail if a feature is not enabled and needed by another feature. All features are enabled by default. Put shared Nix functions and attributes for both 3.7 and 3.8 in: pkgs/applications/radio/gnuradio/shared.nix Add 2 patches accepted upstream, that don't install some python related examples if python-support is not enabled. Remove cmake python reference in 3.8 with removeReferencesTo, if python-support is turned off. Update gqrx (reverse dependency) to use a build of gnuradio3_7 without gui components and for it's gr-osmosdr as well. Write an external, `wrapper.nix` (shared for both 3.7 and 3.8). Teach it to handle extra `gr-` packages via `GRC_BLOCKS_PATH`. Likely enable it to accept extra python packages. Wrap the executables with env vars wrapGAppsHook and wrapQtAppsHook would have likely given them (hence, fix #87510). Point `gnuradio` to the wrapped 3.8 derivation. Add @doronbehar to maintainers of both 3.8 and 3.7. dirty: use upstreamed patches
Diffstat (limited to 'pkgs/top-level')
-rw-r--r-- | pkgs/top-level/aliases.nix | 4 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 98 |
2 files changed, 83 insertions, 19 deletions
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 28b5614a80c..d9ec9bdca97 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -189,6 +189,10 @@ mapAliases ({ gnuradio-limesdr = gr-limesdr; # added 2019-05-27 gnuradio-rds = gr-rds; # added 2019-05-27 gnuradio-osmosdr = gr-osmosdr; # added 2019-05-27 + # added 20-10-2020 + gnuradio-with-packages = gnuradio3_7.override { + extraPackages = [ gr-nacl gr-gsm gr-ais gr-limesdr gr-rds gr-osmosdr ]; + }; gnustep-make = gnustep.make; # added 2016-7-6 gnupg20 = throw "gnupg20 has been removed from nixpkgs as upstream dropped support on 2017-12-31";# added 2020-07-12 go_1_12 = throw "go_1_12 has been removed"; # added 2020-04-26 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9a0051b5bf9..67bed0dedb2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15743,7 +15743,13 @@ in qm-dsp = callPackage ../development/libraries/audio/qm-dsp { }; - qradiolink = callPackage ../applications/radio/qradiolink { }; + qradiolink = callPackage ../applications/radio/qradiolink { + # 3.8 support is not ready yet: + # https://github.com/qradiolink/qradiolink/issues/67#issuecomment-703222573 + # The non minimal build is used because the 'qtgui' component is needed. + # gr-osmosdr is using the same gnuradio as of now. + gnuradio = gnuradio3_7-unwrapped; + }; qrupdate = callPackage ../development/libraries/qrupdate { }; @@ -21154,34 +21160,80 @@ in gksu = callPackage ../applications/misc/gksu { }; - gnss-sdr = callPackage ../applications/radio/gnss-sdr { boost=boost166; }; + gnss-sdr = callPackage ../applications/radio/gnss-sdr { + boost = boost166; + gnuradio = gnuradio3_7-unwrapped; + }; - gnuradio = callPackage ../applications/radio/gnuradio { - inherit (python2Packages) cheetah lxml Mako matplotlib numpy python pyopengl pyqt4 scipy wxPython pygtk; + gnuradio-unwrapped = callPackage ../applications/radio/gnuradio { inherit (darwin.apple_sdk.frameworks) CoreAudio; - fftw = fftwFloat; - qwt = qwt6_qt4; + python = python3; }; - - gnuradio-with-packages = callPackage ../applications/radio/gnuradio/wrapper.nix { - inherit (python2Packages) python; - extraPackages = [ gr-nacl gr-osmosdr gr-ais gr-rds ] - ++ lib.optionals stdenv.isLinux [ gr-gsm gr-limesdr ]; + # A build without gui components and other utilites not needed for end user + # libraries + gnuradioMinimal = gnuradio-unwrapped.override { + features = { + gnuradio-companion = false; + python-support = false; + gr-ctrlport = false; + examples = false; + gr-qtgui = false; + gr-utils = false; + gr-modtool = false; + sphinx = false; + doxygen = false; + }; + }; + gnuradio = callPackage ../applications/radio/gnuradio/wrapper.nix { + unwrapped = gnuradio-unwrapped; + }; + gnuradio3_7-unwrapped = callPackage ../applications/radio/gnuradio/3.7.nix { + inherit (darwin.apple_sdk.frameworks) CoreAudio; + python = python2; + }; + # A build without gui components and other utilites not needed if gnuradio is + # used as a c++ library. + gnuradio3_7Minimal = gnuradio3_7-unwrapped.override { + features = { + gnuradio-companion = false; + python-support = false; + gr-ctrlport = false; + gr-qtgui = false; + gr-utils = false; + sphinx = false; + doxygen = false; + gr-wxgui = false; + }; + }; + gnuradio3_7 = callPackage ../applications/radio/gnuradio/wrapper.nix { + unwrapped = gnuradio3_7-unwrapped; }; grandorgue = callPackage ../applications/audio/grandorgue { }; - gr-nacl = callPackage ../applications/radio/gnuradio/nacl.nix { }; + gr-nacl = callPackage ../applications/radio/gnuradio/nacl.nix { + gnuradio = gnuradio3_7-unwrapped; + }; - gr-gsm = callPackage ../applications/radio/gnuradio/gsm.nix { }; + gr-gsm = callPackage ../applications/radio/gnuradio/gsm.nix { + gnuradio = gnuradio3_7-unwrapped; + }; - gr-ais = callPackage ../applications/radio/gnuradio/ais.nix { }; + gr-ais = callPackage ../applications/radio/gnuradio/ais.nix { + gnuradio = gnuradio3_7-unwrapped; + }; - gr-limesdr = callPackage ../applications/radio/gnuradio/limesdr.nix { }; + gr-limesdr = callPackage ../applications/radio/gnuradio/limesdr.nix { + gnuradio = gnuradio3_7-unwrapped; + }; - gr-rds = callPackage ../applications/radio/gnuradio/rds.nix { }; + gr-rds = callPackage ../applications/radio/gnuradio/rds.nix { + gnuradio = gnuradio3_7-unwrapped; + }; - gr-osmosdr = callPackage ../applications/radio/gnuradio/osmosdr.nix { }; + gr-osmosdr = callPackage ../applications/radio/gnuradio/osmosdr.nix { + gnuradio = gnuradio3_7-unwrapped; + }; goldendict = libsForQt514.callPackage ../applications/misc/goldendict { inherit (darwin) libiconv; @@ -21220,7 +21272,13 @@ in gpx = callPackage ../applications/misc/gpx { }; - gqrx = libsForQt514.callPackage ../applications/radio/gqrx { }; + gqrx = libsForQt514.callPackage ../applications/radio/gqrx { + gnuradio = gnuradio3_7Minimal; + # Use the same gnuradio for gr-osmosdr as well + gr-osmosdr = gr-osmosdr.override { + gnuradio = gnuradio3_7Minimal; + }; + }; gpx-viewer = callPackage ../applications/misc/gpx-viewer { }; @@ -21986,7 +22044,9 @@ in inkscape-extensions = recurseIntoAttrs (callPackages ../applications/graphics/inkscape/extensions.nix {}); - inspectrum = libsForQt514.callPackage ../applications/radio/inspectrum { }; + inspectrum = libsForQt514.callPackage ../applications/radio/inspectrum { + gnuradio = gnuradioMinimal; + }; ion3 = callPackage ../applications/window-managers/ion-3 { lua = lua5_1; |