gnuradio3_9{,Minimal}: remove

This commit is contained in:
Doron Behar 2024-07-28 10:31:02 +03:00
parent d15b7226b3
commit 47fa6173fc
4 changed files with 3 additions and 354 deletions

View File

@ -1,306 +0,0 @@
{ lib, stdenv
, fetchpatch
, fetchFromGitHub
, cmake
# Remove gcc and python references
, removeReferencesTo
, pkg-config
, volk
, cppunit
, orc
, boost
, log4cpp
, mpir
, python
, codec2
, gsm
, fftwFloat
, alsa-lib
, libjack2
, CoreAudio
, uhd
, SDL
, gsl
, soapysdr
, libsodium
, libsndfile
, libunwind
, thrift
, cppzmq
# Needed only if qt-gui is disabled, from some reason
, icu
# GUI related
, gtk3
, pango
, gobject-introspection
, cairo
, qt5
, libsForQt5
# Features available to override, the list of them is in featuresInfo. They
# are all turned on by default.
, features ? {}
# If one wishes to use a different src or name for a very custom build
, overrideSrc ? {}
, pname ? "gnuradio"
, version ? "3.9.8.0"
}:
let
sourceSha256 = "sha256-0umGUOjD5l84CBBeDy1uFgUyEDpI9o9/SEQ8BZm22j4=";
featuresInfo = {
# Needed always
basic = {
native = [
cmake
pkg-config
orc
];
runtime = [
volk
boost
log4cpp
mpir
]
# when gr-qtgui is disabled, icu needs to be included, otherwise
# building with boost 1.7x fails
++ lib.optionals (!(hasFeature "gr-qtgui")) [ icu ];
pythonNative = with python.pkgs; [
mako
six
];
};
man-pages = {
cmakeEnableFlag = "MANPAGES";
};
python-support = {
pythonRuntime = [ python.pkgs.six ];
native = [
python
];
cmakeEnableFlag = "PYTHON";
};
testing-support = {
native = [ cppunit ];
cmakeEnableFlag = "TESTING";
};
post-install = {
cmakeEnableFlag = "POSTINSTALL";
};
gnuradio-runtime = {
cmakeEnableFlag = "GNURADIO_RUNTIME";
pythonRuntime = [
python.pkgs.pybind11
];
};
gr-ctrlport = {
runtime = [
libunwind
thrift
];
pythonRuntime = [
python.pkgs.thrift
# For gr-perf-monitorx
python.pkgs.matplotlib
python.pkgs.networkx
];
cmakeEnableFlag = "GR_CTRLPORT";
};
gnuradio-companion = {
pythonRuntime = with python.pkgs; [
pyyaml
mako
numpy
pygobject3
];
native = [
python.pkgs.pytest
];
runtime = [
gtk3
pango
gobject-introspection
cairo
libsndfile
];
cmakeEnableFlag = "GRC";
};
jsonyaml_blocks = {
pythonRuntime = [
python.pkgs.jsonschema
];
cmakeEnableFlag = "JSONYAML_BLOCKS";
};
gr-blocks = {
cmakeEnableFlag = "GR_BLOCKS";
runtime = [
libsndfile
];
};
gr-fec = {
cmakeEnableFlag = "GR_FEC";
};
gr-fft = {
runtime = [ fftwFloat ];
cmakeEnableFlag = "GR_FFT";
};
gr-filter = {
runtime = [ fftwFloat ];
cmakeEnableFlag = "GR_FILTER";
pythonRuntime = with python.pkgs; [
scipy
pyqtgraph
pyqt5
];
};
gr-analog = {
cmakeEnableFlag = "GR_ANALOG";
};
gr-digital = {
cmakeEnableFlag = "GR_DIGITAL";
};
gr-dtv = {
cmakeEnableFlag = "GR_DTV";
};
gr-audio = {
runtime = []
++ lib.optionals stdenv.isLinux [ alsa-lib libjack2 ]
++ lib.optionals stdenv.isDarwin [ CoreAudio ]
;
cmakeEnableFlag = "GR_AUDIO";
};
gr-channels = {
cmakeEnableFlag = "GR_CHANNELS";
};
gr-qtgui = {
runtime = [ qt5.qtbase libsForQt5.qwt ];
pythonRuntime = [ python.pkgs.pyqt5 ];
cmakeEnableFlag = "GR_QTGUI";
};
gr-trellis = {
cmakeEnableFlag = "GR_TRELLIS";
};
gr-uhd = {
runtime = [
uhd
];
cmakeEnableFlag = "GR_UHD";
};
gr-uhd-rfnoc = {
runtime = [
uhd
];
cmakeEnableFlag = "UHD_RFNOC";
};
gr-utils = {
cmakeEnableFlag = "GR_UTILS";
pythonRuntime = with python.pkgs; [
# For gr_plot
matplotlib
];
};
gr-modtool = {
pythonRuntime = with python.pkgs; [
setuptools
click
click-plugins
];
cmakeEnableFlag = "GR_MODTOOL";
};
gr-blocktool = {
cmakeEnableFlag = "GR_BLOCKTOOL";
};
gr-video-sdl = {
runtime = [ SDL ];
cmakeEnableFlag = "GR_VIDEO_SDL";
};
gr-vocoder = {
runtime = [ codec2 gsm ];
cmakeEnableFlag = "GR_VOCODER";
};
gr-wavelet = {
cmakeEnableFlag = "GR_WAVELET";
runtime = [ gsl libsodium ];
};
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";
};
gr-soapy = {
cmakeEnableFlag = "GR_SOAPY";
runtime = [
soapysdr
];
};
};
shared = (import ./shared.nix {
inherit
stdenv
lib
python
removeReferencesTo
featuresInfo
features
version
sourceSha256
overrideSrc
fetchFromGitHub
;
qt = qt5;
gtk = gtk3;
});
inherit (shared.passthru) hasFeature; # function
in
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.3_9.patch
# Fix compilation with GCC 13
(fetchpatch {
url = "https://github.com/gnuradio/gnuradio/commit/fe1b3592776c26e349e9985d47d3178568dfe6ec.patch";
hash = "sha256-bu6fJuUo/i4kM+cZqSw8moB0ymoSVooLfwUIW+WDpWI=";
})
];
passthru = shared.passthru // {
# Deps that are potentially overridden and are used inside GR plugins - the same version must
inherit
boost
volk
;
# Used by many gnuradio modules, the same attribute is present in
# gnuradio3.10 where there it's spdlog.
logLib = log4cpp;
} // lib.optionalAttrs (hasFeature "gr-uhd") {
inherit uhd;
} // lib.optionalAttrs (hasFeature "gr-qtgui") {
inherit (libsForQt5) qwt;
};
postInstall = shared.postInstall
# This is the only python reference worth removing, if needed.
+ lib.optionalString (!hasFeature "python-support") ''
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
${removeReferencesTo}/bin/remove-references-to -t ${python} $(readlink -f $out/lib/libgnuradio-runtime${stdenv.hostPlatform.extensions.sharedLibrary})
${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake
''
;
}))

View File

@ -1,15 +0,0 @@
diff --git c/gr-utils/modtool/core/newmod.py w/gr-utils/modtool/core/newmod.py
index babebfcde..9a02f663e 100644
--- c/gr-utils/modtool/core/newmod.py
+++ w/gr-utils/modtool/core/newmod.py
@@ -62,7 +62,9 @@ class ModToolNewModule(ModTool):
self._setup_scm(mode='new')
logger.info(f"Creating out-of-tree module in {self.dir}...")
try:
- shutil.copytree(self.srcdir, self.dir)
+ # https://stackoverflow.com/a/17022146/4935114
+ shutil.copystat = lambda x, y: x
+ shutil.copytree(self.srcdir, self.dir, copy_function=shutil.copyfile)
try:
shutil.copyfile(os.path.join(gr.prefix(), 'share', 'gnuradio', 'clang-format.conf'),
os.path.join(self.dir, '.clang-format'))

View File

@ -560,6 +560,9 @@ mapAliases ({
gnome3 = gnome; # Added 2021-05-07
gnuradio3_7 = throw "gnuradio3_7 has been removed because it required Python 2"; # Added 2022-01-16
gnuradio3_9 = throw "gnuradio3_9 has been removed because it is not compatible with the latest volk and it had no dependent packages which justified it's distribution"; # Added 2024-07-28
gnuradio3_9Minimal = throw "gnuradio3_9Minimal has been removed because it is not compatible with the latest volk and it had no dependent packages which justified it's distribution"; # Added 2024-07-28
gnuradio3_9Packages = throw "gnuradio3_9Minimal has been removed because it is not compatible with the latest volk and it had no dependent packages which justified it's distribution"; # Added 2024-07-28
gnuradio-ais = throw "'gnuradio-ais' has been renamed to/replaced by 'gnuradio3_7.pkgs.ais'"; # Converted to throw 2023-09-10
gnuradio-gsm = throw "'gnuradio-gsm' has been renamed to/replaced by 'gnuradio3_7.pkgs.gsm'"; # Converted to throw 2023-09-10
gnuradio-limesdr = throw "'gnuradio-limesdr' has been renamed to/replaced by 'gnuradio3_7.pkgs.limesdr'"; # Converted to throw 2023-09-10

View File

@ -30301,39 +30301,6 @@ with pkgs;
};
};
};
gnuradio3_9 = callPackage ../applications/radio/gnuradio/wrapper.nix {
unwrapped = callPackage ../applications/radio/gnuradio/3.9.nix {
inherit (darwin.apple_sdk.frameworks) CoreAudio;
python = python311;
};
};
gnuradio3_9Packages = lib.recurseIntoAttrs gnuradio3_9.pkgs;
# A build without gui components and other utilites not needed for end user
# libraries
gnuradio3_9Minimal = gnuradio.override {
doWrap = false;
unwrapped = gnuradio.unwrapped.override {
volk = volk.override {
# So it will not reference python
enableModTool = false;
};
uhd = uhdMinimal;
features = {
gnuradio-companion = false;
python-support = false;
examples = false;
gr-qtgui = false;
gr-utils = false;
gr-modtool = false;
gr-blocktool = false;
sphinx = false;
doxygen = false;
# Doesn't make it reference python eventually, but makes reverse
# depdendencies require python to use cmake files of GR.
gr-ctrlport = false;
};
};
};
gnuradio3_8 = callPackage ../applications/radio/gnuradio/wrapper.nix {
unwrapped = callPackage ../applications/radio/gnuradio/3.8.nix ({
inherit (darwin.apple_sdk.frameworks) CoreAudio;