From 0421415824531434dea9271887beb9e0898856c3 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Sun, 29 Nov 2020 12:06:56 +0100 Subject: [PATCH 01/27] criu: Switch to Python 3 This also fixes "crit -h" and "import pycriu" from within an interactive Python shell. --- pkgs/os-specific/linux/criu/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/criu/default.nix b/pkgs/os-specific/linux/criu/default.nix index 92fabffcd02..abc11a4a5f0 100644 --- a/pkgs/os-specific/linux/criu/default.nix +++ b/pkgs/os-specific/linux/criu/default.nix @@ -1,6 +1,6 @@ { stdenv, lib, fetchurl, protobuf, protobufc, asciidoc, iptables , xmlto, docbook_xsl, libpaper, libnl, libcap, libnet, pkgconfig -, which, python, makeWrapper, docbook_xml_dtd_45 }: +, which, python3, makeWrapper, docbook_xml_dtd_45 }: stdenv.mkDerivation rec { pname = "criu"; @@ -12,8 +12,9 @@ stdenv.mkDerivation rec { }; enableParallelBuilding = true; - nativeBuildInputs = [ pkgconfig docbook_xsl which makeWrapper docbook_xml_dtd_45 ]; - buildInputs = [ protobuf protobufc asciidoc xmlto libpaper libnl libcap libnet python iptables ]; + nativeBuildInputs = [ pkgconfig docbook_xsl which makeWrapper docbook_xml_dtd_45 python3 python3.pkgs.wrapPython ]; + buildInputs = [ protobuf protobufc asciidoc xmlto libpaper libnl libcap libnet iptables ]; + propagatedBuildInputs = with python3.pkgs; [ python python3.pkgs.protobuf ]; postPatch = '' substituteInPlace ./Documentation/Makefile --replace "2>/dev/null" "" @@ -39,6 +40,7 @@ stdenv.mkDerivation rec { postFixup = '' wrapProgram $out/bin/criu \ --prefix PATH : ${lib.makeBinPath [ iptables ]} + wrapPythonPrograms ''; meta = with stdenv.lib; { From be1744fdace7bdd8a6336888450d60e39da36480 Mon Sep 17 00:00:00 2001 From: Vika Date: Mon, 30 Nov 2020 23:31:13 +0300 Subject: [PATCH 02/27] gst-plugins-good: fix aarch64 builds and make raspi deps optional --- pkgs/development/libraries/gstreamer/good/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix index e8c885411bd..09ffda2a0bb 100644 --- a/pkgs/development/libraries/gstreamer/good/default.nix +++ b/pkgs/development/libraries/gstreamer/good/default.nix @@ -30,6 +30,7 @@ , mpg123 , twolame , gtkSupport ? false, gtk3 ? null +, raspiCameraSupport ? false, libraspberrypi ? null , enableJack ? true, libjack2 , libXdamage , libXext @@ -43,6 +44,7 @@ }: assert gtkSupport -> gtk3 != null; +assert raspiCameraSupport -> ((libraspberrypi != null) && stdenv.isLinux && stdenv.isAarch64); let inherit (stdenv.lib) optionals; @@ -95,6 +97,8 @@ stdenv.mkDerivation rec { xorg.libXfixes xorg.libXdamage wavpack + ] ++ optionals raspiCameraSupport [ + libraspberrypi ] ++ optionals gtkSupport [ # for gtksink gtk3 @@ -128,8 +132,8 @@ stdenv.mkDerivation rec { "-Dv4l2=disabled" # Linux-only "-Dximagesrc=disabled" # Linux-only "-Dpulse=disabled" # TODO check if we can keep this enabled - ] ++ optionals (!(stdenv.isLinux && stdenv.hostPlatform.isAarch64)) [ - "-Drpicamsrc=disabled" # only works on Linux aarch64, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/428c9b60532917c0ac49c9d48b15bdcd00a1370b/sys/rpicamsrc/meson.build#L10 + ] ++ optionals (!raspiCameraSupport) [ + "-Drpicamsrc=disabled" ]; postPatch = '' From 217dc7cd3c399cdb4d72410601c5492c1fd2e4a2 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 5 Dec 2020 09:36:21 +0000 Subject: [PATCH 03/27] acme-sh: 2.8.7 -> 2.8.8 --- pkgs/tools/admin/acme.sh/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/admin/acme.sh/default.nix b/pkgs/tools/admin/acme.sh/default.nix index 30badb175a9..8fb14ed2ead 100644 --- a/pkgs/tools/admin/acme.sh/default.nix +++ b/pkgs/tools/admin/acme.sh/default.nix @@ -1,13 +1,13 @@ { stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute, unixtools, dnsutils }: stdenv.mkDerivation rec { pname = "acme.sh"; - version = "2.8.7"; + version = "2.8.8"; src = fetchFromGitHub { owner = "Neilpang"; repo = "acme.sh"; rev = version; - sha256 = "0bwzrrm07v2lpsja0r0z7nj3jrf814w57mmk8lbdk9dsb3i07x4w"; + sha256 = "1iqwzqgg26vsg7lwmgmga9y3ap9q8r5xyx799bj8kawnr8n6s4jd"; }; nativeBuildInputs = [ makeWrapper ]; From 3becac02f894b4f29ade13318b9297d827d84525 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 5 Oct 2020 12:04:49 +0300 Subject: [PATCH 04/27] 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 --- pkgs/applications/radio/gnuradio/3.7.nix | 297 +++++++++++++ pkgs/applications/radio/gnuradio/ais.nix | 4 +- pkgs/applications/radio/gnuradio/default.nix | 427 ++++++++++++------- pkgs/applications/radio/gnuradio/shared.nix | 135 ++++++ pkgs/applications/radio/gnuradio/wrapper.nix | 138 +++++- pkgs/top-level/aliases.nix | 4 + pkgs/top-level/all-packages.nix | 100 ++++- 7 files changed, 916 insertions(+), 189 deletions(-) create mode 100644 pkgs/applications/radio/gnuradio/3.7.nix create mode 100644 pkgs/applications/radio/gnuradio/shared.nix diff --git a/pkgs/applications/radio/gnuradio/3.7.nix b/pkgs/applications/radio/gnuradio/3.7.nix new file mode 100644 index 00000000000..fdf0016de8c --- /dev/null +++ b/pkgs/applications/radio/gnuradio/3.7.nix @@ -0,0 +1,297 @@ +{ stdenv +, fetchFromGitHub +, fetchpatch +, cmake +# Remove gcc and python references +, removeReferencesTo +, pkgconfig +, cppunit +, swig +, orc +, boost +, log4cpp +, mpir +, doxygen +, python +, codec2 +, gsm +, fftwFloat +, alsaLib +, libjack2 +, CoreAudio +, uhd +, comedilib +, libusb1 +, SDL +, gsl +, cppzmq +, zeromq +# GUI related +, gtk2 +, pango +, cairo +, qt4 +, qwt6_qt4 +# Features available to override, the list of them is in featuresInfo. They +# are all turned on by default, besides wxgui which is recommended by upstream +# in favor of gr-qtgui, see: +# https://www.gnuradio.org/news/2019-08-10-gnu-radio-v3-8-0-0-release/ +, features ? { gr-wxgui = false; } +# If one wishes to use a different src or name for a very custom build +, overrideSrc ? {} +, pname ? "gnuradio" +, versionAttr ? { + major = "3.7"; + minor = "14"; + patch = "0"; +} +, fetchSubmodules ? true +}: + +let + sourceSha256 = "1nh4f9dmygprlbqybd3j1byg9fsr6065n140mvc4b0v8qqygmhrc"; + featuresInfo = { + # Needed always + basic = { + native = [ + cmake + pkgconfig + orc + ]; + runtime = [ boost log4cpp mpir ]; + pythonNative = with python.pkgs; [ Mako six ]; + }; + volk = { + cmakeEnableFlag = "VOLK"; + }; + doxygen = { + native = [ doxygen ]; + cmakeEnableFlag = "DOXYGEN"; + }; + sphinx = { + pythonNative = with python.pkgs; [ sphinx ]; + cmakeEnableFlag = "SPHINX"; + }; + python-support = { + pythonRuntime = [ python.pkgs.six ]; + native = [ + swig + python + ]; + cmakeEnableFlag = "PYTHON"; + }; + testing-support = { + native = [ cppunit ]; + cmakeEnableFlag = "TESTING"; + }; + gnuradio-runtime = { + cmakeEnableFlag = "GNURADIO_RUNTIME"; + }; + gr-ctrlport = { + cmakeEnableFlag = "GR_CTRLPORT"; + native = [ + swig + ]; + }; + gnuradio-companion = { + pythonRuntime = with python.pkgs; [ + pyyaml + cheetah + lxml + pygtk + numpy + # propagated by pygtk, but since wrapping is done externally, it help + # the wrapper if it's here + pycairo + pygobject2 + ]; + runtime = [ + gtk2 + pango + cairo + ]; + cmakeEnableFlag = "GRC"; + }; + gr-blocks = { + cmakeEnableFlag = "GR_BLOCKS"; + }; + gr-fec = { + cmakeEnableFlag = "GR_FEC"; + }; + gr-fft = { + runtime = [ fftwFloat ]; + cmakeEnableFlag = "GR_FFT"; + }; + gr-filter = { + runtime = [ fftwFloat ]; + cmakeEnableFlag = "GR_FILTER"; + }; + gr-analog = { + cmakeEnableFlag = "GR_ANALOG"; + }; + gr-digital = { + cmakeEnableFlag = "GR_DIGITAL"; + }; + gr-dtv = { + cmakeEnableFlag = "GR_DTV"; + }; + gr-atsc = { + cmakeEnableFlag = "GR_ATSC"; + }; + gr-audio = { + runtime = [] + ++ stdenv.lib.optionals stdenv.isLinux [ alsaLib libjack2 ] + ++ stdenv.lib.optionals stdenv.isDarwin [ CoreAudio ] + ; + cmakeEnableFlag = "GR_AUDIO"; + }; + gr-comedi = { + runtime = [ comedilib ]; + cmakeEnableFlag = "GR_COMEDI"; + }; + gr-channels = { + cmakeEnableFlag = "GR_CHANNELS"; + }; + gr-noaa = { + cmakeEnableFlag = "GR_NOAA"; + }; + gr-pager = { + cmakeEnableFlag = "GR_PAGER"; + }; + gr-qtgui = { + runtime = [ qt4 qwt6_qt4 ]; + pythonRuntime = [ python.pkgs.pyqt4 ]; + cmakeEnableFlag = "GR_QTGUI"; + }; + gr-trellis = { + cmakeEnableFlag = "GR_TRELLIS"; + }; + gr-uhd = { + runtime = [ uhd ]; + cmakeEnableFlag = "GR_UHD"; + }; + gr-utils = { + cmakeEnableFlag = "GR_UTILS"; + }; + gr-video-sdl = { + runtime = [ SDL ]; + cmakeEnableFlag = "GR_VIDEO_SDL"; + }; + gr-vocoder = { + runtime = [ codec2 gsm ]; + cmakeEnableFlag = "GR_VOCODER"; + }; + gr-fcd = { + runtime = [ libusb1 ]; + cmakeEnableFlag = "GR_FCD"; + }; + gr-wavelet = { + cmakeEnableFlag = "GR_WAVELET"; + runtime = [ gsl ]; + }; + gr-zeromq = { + runtime = [ cppzmq zeromq ]; + cmakeEnableFlag = "GR_ZEROMQ"; + }; + gr-wxgui = { + pythonRuntime = with python.pkgs; [ numpy wxPython ]; + cmakeEnableFlag = "GR_WXGUI"; + }; + }; + shared = (import ./shared.nix { + inherit + stdenv + python + removeReferencesTo + featuresInfo + features + versionAttr + sourceSha256 + overrideSrc + fetchFromGitHub + fetchSubmodules + ; + qt = qt4; + gtk = gtk2; + }); + inherit (shared) + version + src + hasFeature # function + nativeBuildInputs + buildInputs + disallowedReferences + postInstall + passthru + doCheck + dontWrapPythonPrograms + meta + ; + cmakeFlags = shared.cmakeFlags + # From some reason, if these are not set, libcodec2 and gsm are + # not detected properly (slightly different then what's in + # ./default.nix). + ++ stdenv.lib.optionals (hasFeature "gr-vocoder" features) [ + "-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so" + "-DLIBCODEC2_INCLUDE_DIR=${codec2}/include" + "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so" + "-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm" + ] + ; + stripDebugList = shared.stripDebugList + # gr-fcd feature was dropped in 3.8 + ++ stdenv.lib.optionals (hasFeature "gr-fcd" features) [ "share/gnuradio/examples/fcd" ] + ; + preConfigure = '' + '' + # wxgui and pygtk are not looked up properly, so we force them to be + # detected as found, if they are requested by the `features` attrset. + + stdenv.lib.optionalString (hasFeature "gr-wxgui" features) '' + sed -i 's/.*wx\.version.*/set(WX_FOUND TRUE)/g' gr-wxgui/CMakeLists.txt + '' + + stdenv.lib.optionalString (hasFeature "gnuradio-companion" features) '' + sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt + '' + # If python-support is disabled, don't install volk's (git submodule) + # volk_modtool - it references python. + # + # NOTE: The same is done for 3.8, but we don't put this string in + # ./shared.nix since on the next release of 3.8 it won't be needed there, + # but it will be needed for 3.7, probably for ever. + + stdenv.lib.optionalString (!hasFeature "python-support" features) '' + sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt + '' + ; + patches = [ + # Don't install python referencing files if python support is disabled. + # See: https://github.com/gnuradio/gnuradio/pull/3856 + (fetchpatch { + url = "https://github.com/gnuradio/gnuradio/commit/acef55433d15c231661fa44751f9a2d90a4baa4b.diff"; + sha256 = "2CEX44Ll8frfLXTIWjdDhKl7aXcjiAWsezVdwrynelE="; + }) + (fetchpatch { + url = "https://github.com/gnuradio/gnuradio/commit/a2681edcfaabcb1ecf878ae861161b6a6bf8459d.diff"; + sha256 = "2Pitgu8accs16B5X5+/q51hr+IY9DMsA15f56gAtBs8="; + }) + ]; +in + +stdenv.mkDerivation rec { + inherit + pname + version + src + nativeBuildInputs + buildInputs + cmakeFlags + preConfigure + # disallowedReferences + stripDebugList + patches + postInstall + passthru + doCheck + dontWrapPythonPrograms + meta + ; +} diff --git a/pkgs/applications/radio/gnuradio/ais.nix b/pkgs/applications/radio/gnuradio/ais.nix index 30c2638a72f..46d46d1c325 100644 --- a/pkgs/applications/radio/gnuradio/ais.nix +++ b/pkgs/applications/radio/gnuradio/ais.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio -, makeWrapper, cppunit, gr-osmosdr +, makeWrapper, cppunit, gr-osmosdr, log4cpp , pythonSupport ? true, python, swig }: @@ -19,7 +19,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake boost gnuradio makeWrapper cppunit gr-osmosdr + cmake boost gnuradio makeWrapper cppunit gr-osmosdr log4cpp ] ++ stdenv.lib.optionals pythonSupport [ python swig ]; postInstall = '' diff --git a/pkgs/applications/radio/gnuradio/default.nix b/pkgs/applications/radio/gnuradio/default.nix index dec968cd32d..811eb37f4f3 100644 --- a/pkgs/applications/radio/gnuradio/default.nix +++ b/pkgs/applications/radio/gnuradio/default.nix @@ -1,165 +1,288 @@ { stdenv , fetchFromGitHub -, makeWrapper -, writeText -# Dependencies documented @ https://gnuradio.org/doc/doxygen/build_guide.html -# => core dependencies +, fetchpatch , cmake +# Remove gcc and python references +, removeReferencesTo , pkgconfig -, git -, boost , cppunit -, fftw -# => python wrappers -# May be able to upgrade to swig3 -, python -, swig2 -, numpy -, scipy -, matplotlib -# => grc - the gnu radio companion -, Mako -, cheetah -, pygtk # Note: GR is migrating to Mako. Cheetah should be removed for GR3.8 -# => gr-wavelet: collection of wavelet blocks -, gsl -# => gr-qtgui: the Qt-based GUI -, qt4 -, qwt -, pyqt4 -# => gr-wxgui: the Wx-based GUI -, wxPython -, lxml -# => gr-audio: audio subsystems (system/OS dependent) -, alsaLib # linux 'audio-alsa' -, CoreAudio # darwin 'audio-osx' -# => uhd: the Ettus USRP Hardware Driver Interface -, uhd -# => gr-video-sdl: PAL and NTSC display -, SDL -# Other -, libusb1 +, swig , orc -, pyopengl +, boost +, log4cpp +, mpir +, doxygen +, python +, codec2 +, gsm +, fftwFloat +, alsaLib +, libjack2 +, CoreAudio +, uhd +, SDL +, gsl +, cppzmq +, zeromq +# 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" +, versionAttr ? { + major = "3.8"; + minor = "2"; + patch = "0"; +} +# Should be false on the release after 3.8.2.0 +, fetchSubmodules ? true }: -stdenv.mkDerivation rec { - pname = "gnuradio"; - version = "3.7.14.0"; - - src = fetchFromGitHub { - owner = "gnuradio"; - repo = "gnuradio"; - rev = "v${version}"; - sha256 = "1nh4f9dmygprlbqybd3j1byg9fsr6065n140mvc4b0v8qqygmhrc"; - fetchSubmodules = true; +let + sourceSha256 = "1mnfwdy7w3160vi6110x2qkyq8l78qi8771zwak9n72bl7lhhpnf"; + featuresInfo = { + # Needed always + basic = { + native = [ + cmake + pkgconfig + orc + ]; + runtime = [ + boost + log4cpp + mpir + ]; + pythonNative = with python.pkgs; [ + Mako + six + ]; + }; + # NOTE: Should be removed on the release after 3.8.2.0, see: + # https://github.com/gnuradio/gnuradio/commit/80c04479d + volk = { + cmakeEnableFlag = "VOLK"; + }; + doxygen = { + native = [ doxygen ]; + cmakeEnableFlag = "DOXYGEN"; + }; + sphinx = { + pythonNative = with python.pkgs; [ sphinx ]; + cmakeEnableFlag = "SPHINX"; + }; + python-support = { + pythonRuntime = [ python.pkgs.six ]; + native = [ + swig + python + ]; + cmakeEnableFlag = "PYTHON"; + }; + testing-support = { + native = [ cppunit ]; + cmakeEnableFlag = "TESTING"; + }; + gnuradio-runtime = { + cmakeEnableFlag = "GNURADIO_RUNTIME"; + }; + gr-ctrlport = { + # Thrift support is not really working well, and even the patch they + # recommend applying on 0.9.2 won't apply. See: + # https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README + cmakeEnableFlag = "GR_CTRLPORT"; + native = [ + swig + ]; + }; + gnuradio-companion = { + pythonRuntime = with python.pkgs; [ + pyyaml + Mako + numpy + pygobject3 + ]; + runtime = [ + gtk3 + pango + gobject-introspection + cairo + ]; + cmakeEnableFlag = "GRC"; + }; + gr-blocks = { + cmakeEnableFlag = "GR_BLOCKS"; + }; + gr-fec = { + cmakeEnableFlag = "GR_FEC"; + }; + gr-fft = { + runtime = [ fftwFloat ]; + cmakeEnableFlag = "GR_FFT"; + }; + gr-filter = { + runtime = [ fftwFloat ]; + cmakeEnableFlag = "GR_FILTER"; + }; + gr-analog = { + cmakeEnableFlag = "GR_ANALOG"; + }; + gr-digital = { + cmakeEnableFlag = "GR_DIGITAL"; + }; + gr-dtv = { + cmakeEnableFlag = "GR_DTV"; + }; + gr-audio = { + runtime = [] + ++ stdenv.lib.optionals stdenv.isLinux [ alsaLib libjack2 ] + ++ stdenv.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-utils = { + cmakeEnableFlag = "GR_UTILS"; + }; + gr-modtool = { + pythonRuntime = with python.pkgs; [ + click + click-plugins + ]; + cmakeEnableFlag = "GR_MODTOOL"; + }; + gr-video-sdl = { + runtime = [ SDL ]; + cmakeEnableFlag = "GR_VIDEO_SDL"; + }; + gr-vocoder = { + runtime = [ codec2 gsm ]; + cmakeEnableFlag = "GR_VOCODER"; + }; + gr-wavelet = { + cmakeEnableFlag = "GR_WAVELET"; + runtime = [ gsl ]; + }; + gr-zeromq = { + runtime = [ cppzmq zeromq ]; + cmakeEnableFlag = "GR_ZEROMQ"; + }; }; + shared = (import ./shared.nix { + inherit + stdenv + python + removeReferencesTo + featuresInfo + features + versionAttr + sourceSha256 + overrideSrc + fetchFromGitHub + fetchSubmodules + ; + qt = qt5; + gtk = gtk3; + }); + inherit (shared) + version + src + hasFeature # function + nativeBuildInputs + buildInputs + disallowedReferences + stripDebugList + passthru + doCheck + dontWrapPythonPrograms + meta + ; + cmakeFlags = shared.cmakeFlags + # From some reason, if these are not set, libcodec2 and gsm are not + # detected properly. NOTE: qradiolink needs libcodec2 to be detected in + # order to build, see https://github.com/qradiolink/qradiolink/issues/67 + ++ stdenv.lib.optionals (hasFeature "gr-vocoder" features) [ + "-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so" + "-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include" + "-DLIBCODEC2_HAS_FREEDV_API=ON" + "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so" + "-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm" + ] + ; - nativeBuildInputs = [ - cmake - pkgconfig - git - makeWrapper - cppunit - orc - ]; - - buildInputs = [ - boost - fftw - python - swig2 - lxml - qt4 - qwt - SDL - libusb1 - uhd - gsl - ] ++ stdenv.lib.optionals stdenv.isLinux [ alsaLib ] - ++ stdenv.lib.optionals stdenv.isDarwin [ CoreAudio ]; - - propagatedBuildInputs = [ - Mako - cheetah - numpy - scipy - matplotlib - pyqt4 - pygtk - wxPython - pyopengl - ]; - - NIX_LDFLAGS = "-lpthread"; - - enableParallelBuilding = true; - - postPatch = '' - substituteInPlace \ - gr-fec/include/gnuradio/fec/polar_decoder_common.h \ - --replace BOOST_CONSTEXPR_OR_CONST const - ''; - - # Enables composition with nix-shell - grcSetupHook = writeText "grcSetupHook.sh" '' - addGRCBlocksPath() { - addToSearchPath GRC_BLOCKS_PATH $1/share/gnuradio/grc/blocks - } - addEnvHooks "$targetOffset" addGRCBlocksPath - ''; - - setupHook = [ grcSetupHook ]; - - # patch wxgui and pygtk check due to python importerror in a headless environment - # wxgtk gui will be removed in GR3.8 - # c++11 hack may not be necessary anymore + postInstall = shared.postInstall + # This is the only python reference worth removing, if needed (3.7 doesn't + # set that reference). + + stdenv.lib.optionalString (!hasFeature "python-support" features) '' + ${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake + '' + ; preConfigure = '' - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-unused-variable ${stdenv.lib.optionalString (!stdenv.isDarwin) "-std=c++11"}" - sed -i 's/.*wx\.version.*/set(WX_FOUND TRUE)/g' gr-wxgui/CMakeLists.txt - sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt - find . -name "CMakeLists.txt" -exec sed -i '1iadd_compile_options($<$:-std=c++11>)' "{}" ";" - ''; + '' + # If python-support is disabled, don't install volk's (git submodule) + # volk_modtool - it references python. + # + # NOTE: on the next release, volk will always be required to be installed + # externally (submodule removed upstream). Hence this hook will fail and + # we'll need to package volk while able to tell it to install or not + # install python referencing files. When we'll be there, this will help: + # https://github.com/gnuradio/volk/pull/404 + + stdenv.lib.optionalString (!hasFeature "python-support" features) '' + sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt + '' + ; + patches = [ + # Don't install python referencing files if python support is disabled. + # See: https://github.com/gnuradio/gnuradio/pull/3839 + (fetchpatch { + url = "https://github.com/gnuradio/gnuradio/commit/4a4fd570b398b0b50fe875fcf0eb9c9db2ea5c6e.diff"; + sha256 = "xz2E0ji6zfdOAhjfPecAcaVOIls1XP8JngLkBbBBW5Q="; + }) + (fetchpatch { + url = "https://github.com/gnuradio/gnuradio/commit/dbc8ad7e7361fddc7b1dbc267c07a776a3f9664b.diff"; + sha256 = "tQcCpcUbJv3yqAX8rSHN/pAuBq4ueEvoVo7sNzZGvf4="; + }) + ]; +in - # Framework path needed for qwt6_qt4 but not qwt5 - cmakeFlags = - stdenv.lib.optionals stdenv.isDarwin [ "-DCMAKE_FRAMEWORK_PATH=${qwt}/lib" ]; - - # - Ensure we get an interactive backend for matplotlib. If not the gr_plot_* - # programs will not display anything. Yes, $MATPLOTLIBRC must point to the - # *dirname* where matplotlibrc is located, not the file itself. - # - GNU Radio core is C++ but the user interface (GUI and API) is Python, so - # we must wrap the stuff in bin/. - # Notes: - # - May want to use makeWrapper instead of wrapProgram - # - may want to change interpreter path on Python examples instead of wrapping - # - see https://github.com/NixOS/nixpkgs/issues/22688 regarding use of --prefix / python.withPackages - # - see https://github.com/NixOS/nixpkgs/issues/24693 regarding use of DYLD_FRAMEWORK_PATH on Darwin - postInstall = '' - printf "backend : Qt4Agg\n" > "$out/share/gnuradio/matplotlibrc" - - for file in $(find $out/bin $out/share/gnuradio/examples -type f -executable); do - wrapProgram "$file" \ - --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \ - --set MATPLOTLIBRC "$out/share/gnuradio" \ - ${stdenv.lib.optionalString stdenv.isDarwin "--set DYLD_FRAMEWORK_PATH /System/Library/Frameworks"} - done - ''; - - meta = with stdenv.lib; { - description = "Software Defined Radio (SDR) software"; - longDescription = '' - GNU Radio is a free & open-source software development toolkit that - provides signal processing blocks to implement software radios. It can be - used with readily-available low-cost external RF hardware to create - software-defined radios, or without hardware in a simulation-like - environment. It is widely used in hobbyist, academic and commercial - environments to support both wireless communications research and - real-world radio systems. - ''; - homepage = "https://www.gnuradio.org"; - license = licenses.gpl3; - platforms = platforms.linux ++ platforms.darwin; - maintainers = with maintainers; [ bjornfor fpletz ]; - }; +stdenv.mkDerivation rec { + inherit + pname + version + src + nativeBuildInputs + buildInputs + cmakeFlags + preConfigure + # disallowedReferences + stripDebugList + patches + postInstall + passthru + doCheck + dontWrapPythonPrograms + meta + ; } diff --git a/pkgs/applications/radio/gnuradio/shared.nix b/pkgs/applications/radio/gnuradio/shared.nix new file mode 100644 index 00000000000..66ce0a5f513 --- /dev/null +++ b/pkgs/applications/radio/gnuradio/shared.nix @@ -0,0 +1,135 @@ +{ stdenv +, python +, qt +, gtk +, removeReferencesTo +, featuresInfo +, features +, versionAttr +, sourceSha256 +# If overriden. No need to set default values, as they are given defaults in +# the main expressions +, overrideSrc +, fetchFromGitHub +, fetchSubmodules +}: + +let + lib = stdenv.lib; +in rec { + version = builtins.concatStringsSep "." ( + lib.attrVals [ "major" "minor" "patch" ] versionAttr + ); + src = if overrideSrc != {} then + overrideSrc + else + fetchFromGitHub { + repo = "gnuradio"; + owner = "gnuradio"; + rev = "v${version}"; + sha256 = sourceSha256; + inherit fetchSubmodules; + } + ; + # Check if a feature is enabled, while defaulting to true if feat is not + # specified. + hasFeature = feat: features: ( + if builtins.hasAttr feat features then + features.${feat} + else + true + ); + nativeBuildInputs = lib.flatten (lib.mapAttrsToList ( + feat: info: ( + if hasFeature feat features then + (if builtins.hasAttr "native" info then info.native else []) ++ + (if builtins.hasAttr "pythonNative" info then info.pythonNative else []) + else + [] + ) + ) featuresInfo); + buildInputs = lib.flatten (lib.mapAttrsToList ( + feat: info: ( + if hasFeature feat features then + (if builtins.hasAttr "runtime" info then info.runtime else []) ++ + (if builtins.hasAttr "pythonRuntime" info then info.pythonRuntime else []) + else + [] + ) + ) featuresInfo); + cmakeFlags = lib.mapAttrsToList ( + feat: info: ( + if feat == "basic" then + # Abuse this unavoidable "iteration" to set this flag which we want as + # well - it means: Don't turn on features just because their deps are + # satisfied, let only our cmakeFlags decide. + "-DENABLE_DEFAULT=OFF" + else + if hasFeature feat features then + "-DENABLE_${info.cmakeEnableFlag}=ON" + else + "-DENABLE_${info.cmakeEnableFlag}=OFF" + )) featuresInfo + ; + disallowedReferences = [ + # TODO: Should this be conditional? + stdenv.cc + stdenv.cc.cc + ] + # If python-support is disabled, we probably don't want it referenced + ++ lib.optionals (!hasFeature "python-support" features) [ python ] + ; + # Gcc references from examples + stripDebugList = [ "lib" "bin" ] + ++ lib.optionals (hasFeature "gr-audio" features) [ "share/gnuradio/examples/audio" ] + ++ lib.optionals (hasFeature "gr-uhd" features) [ "share/gnuradio/examples/uhd" ] + ++ lib.optionals (hasFeature "gr-qtgui" features) [ "share/gnuradio/examples/qt-gui" ] + ; + postInstall = '' + '' + # Gcc references + + lib.optionalString (hasFeature "volk" features) '' + ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libvolk.so) + '' + + lib.optionalString (hasFeature "gnuradio-runtime" features) '' + ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libgnuradio-runtime.so) + '' + ; + # NOTE: Outputs are disabled due to upstream not using GNU InstallDIrs cmake + # module. It's not that bad since it's a development package for most + # purposes. If closure size needs to be reduced, features should be disabled + # via an override. + passthru = { + inherit + hasFeature + versionAttr + features + featuresInfo + python + qt + gtk + ; + }; + # Wrapping is done with an external wrapper + dontWrapPythonPrograms = true; + # Tests should succeed, but it's hard to get LD_LIBRARY_PATH right in order + # for it to happen. + doCheck = false; + + meta = with lib; { + description = "Software Defined Radio (SDR) software"; + longDescription = '' + GNU Radio is a free & open-source software development toolkit that + provides signal processing blocks to implement software radios. It can be + used with readily-available low-cost external RF hardware to create + software-defined radios, or without hardware in a simulation-like + environment. It is widely used in hobbyist, academic and commercial + environments to support both wireless communications research and + real-world radio systems. + ''; + homepage = "https://www.gnuradio.org"; + license = licenses.gpl3; + platforms = platforms.unix; + maintainers = with maintainers; [ doronbehar bjornfor fpletz ]; + }; +} diff --git a/pkgs/applications/radio/gnuradio/wrapper.nix b/pkgs/applications/radio/gnuradio/wrapper.nix index ffed3da0318..05202840ac0 100644 --- a/pkgs/applications/radio/gnuradio/wrapper.nix +++ b/pkgs/applications/radio/gnuradio/wrapper.nix @@ -1,24 +1,132 @@ -{ stdenv, gnuradio, makeWrapper, python, extraPackages ? [] }: +{ stdenv +, unwrapped +, makeWrapper +# For lndir +, xorg +# For Emulating wrapGAppsHook +, gsettings-desktop-schemas +, glib +, hicolor-icon-theme +, pango +, json-glib +, dconf +, gobject-introspection +, librsvg +, gdk-pixbuf +, harfbuzz +, at-spi2-core +, atk +# For Adding additional GRC blocks +, extraPackages ? [] +# For Adding additional python packaages +, extraPythonPackages ? [] +# Allow to add whatever you want to the wrapper +, extraMakeWrapperArgs ? [] +}: -with { inherit (stdenv.lib) appendToName makeSearchPath; }; +let + pythonPkgs = extraPythonPackages + ++ stdenv.lib.flatten (stdenv.lib.mapAttrsToList ( + feat: info: ( + if unwrapped.hasFeature feat unwrapped.features then + (if builtins.hasAttr "pythonRuntime" info then info.pythonRuntime else []) + else + [] + ) + ) unwrapped.featuresInfo) + ++ stdenv.lib.optionals (unwrapped.hasFeature "python-support" unwrapped.features) [ + # Add unwrapped itself as a python module + (unwrapped.python.pkgs.toPythonModule unwrapped) + ] + ; + python3Env = unwrapped.python.withPackages(ps: pythonPkgs); + name = (stdenv.lib.appendToName "wrapped" unwrapped).name; + makeWrapperArgs = builtins.concatStringsSep " " ([ + ] + # Emulating wrapGAppsHook & wrapQtAppsHook working together + ++ stdenv.lib.optionals ( + (unwrapped.hasFeature "gnuradio-companion" unwrapped.features) + || (unwrapped.hasFeature "gr-qtgui" unwrapped.features) + ) [ + "--prefix" "XDG_DATA_DIRS" ":" "$out/share" + "--prefix" "XDG_DATA_DIRS" ":" "$out/share/gsettings-schemas/${name}" + "--prefix" "XDG_DATA_DIRS" ":" "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" + "--prefix" "XDG_DATA_DIRS" ":" "${hicolor-icon-theme}/share" + # Needs to run `gsettings` on startup, see: + # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1764890.html + "--prefix" "PATH" ":" "${stdenv.lib.getBin glib}/bin" + ] + ++ stdenv.lib.optionals (unwrapped.hasFeature "gnuradio-companion" unwrapped.features) [ + "--set" "GDK_PIXBUF_MODULE_FILE" "${librsvg}/${gdk-pixbuf.moduleDir}.cache" + "--prefix" "GIO_EXTRA_MODULES" ":" "${stdenv.lib.getLib dconf}/lib/gio/modules" + "--prefix" "XDG_DATA_DIRS" ":" "${unwrapped.gtk}/share" + "--prefix" "XDG_DATA_DIRS" ":" "${unwrapped.gtk}/share/gsettings-schemas/${unwrapped.gtk.name}" + "--prefix" "GI_TYPELIB_PATH" ":" "${stdenv.lib.makeSearchPath "lib/girepository-1.0" [ + unwrapped.gtk + gsettings-desktop-schemas + atk + # From some reason, if .out is not used, .bin is used, and we want + # what's in `.out`. + pango.out + gdk-pixbuf + json-glib + harfbuzz + librsvg + gobject-introspection + at-spi2-core + ]}" + ] + ++ stdenv.lib.optionals (extraPackages != []) [ + "--prefix" "GRC_BLOCKS_PATH" ":" "${stdenv.lib.makeSearchPath "share/gnuradio/grc/blocks" extraPackages}" + ] + ++ stdenv.lib.optionals (unwrapped.hasFeature "gr-qtgui" unwrapped.features) + # 3.7 builds with qt4 + (if unwrapped.versionAttr.major == "3.8" then + [ + "--prefix" "QT_PLUGIN_PATH" ":" + "${stdenv.lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtPluginPrefix}" + "--prefix" "QML2_IMPORT_PATH" ":" + "${stdenv.lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtQmlPrefix}" + ] + else + # TODO: Add here qt4 related environment for 3.7? + [ + + ] + ) + ++ extraMakeWrapperArgs + ); +in stdenv.mkDerivation { - name = (appendToName "with-packages" gnuradio).name; - buildInputs = [ makeWrapper python ]; + inherit name; + + buildInputs = [ + makeWrapper + xorg.lndir + ]; + + passthru = { + inherit python3Env pythonPkgs unwrapped; + }; buildCommand = '' - mkdir -p $out/bin - ln -s "${gnuradio}"/bin/* $out/bin/ - - for file in $(find -L $out/bin -type f); do - if test -x "$(readlink -f "$file")"; then - wrapProgram "$file" \ - --prefix PYTHONPATH : ${stdenv.lib.concatStringsSep ":" - (map (path: "$(toPythonPath ${path})") extraPackages)} \ - --prefix GRC_BLOCKS_PATH : ${makeSearchPath "share/gnuradio/grc/blocks" extraPackages} - fi + mkdir $out + cd $out + lndir -silent ${unwrapped} + for i in $out/bin/*; do + if [[ ! -x "$i" ]]; then + continue + fi + cp -L "$i" "$i".tmp + mv -f "$i".tmp "$i" + if head -1 "$i" | grep -q ${unwrapped.python}; then + substituteInPlace "$i" \ + --replace ${unwrapped.python} ${python3Env} + fi + wrapProgram "$i" ${makeWrapperArgs} done ''; - inherit (gnuradio) meta; + inherit (unwrapped) meta; } 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; }; - - gnuradio = callPackage ../applications/radio/gnuradio { - inherit (python2Packages) cheetah lxml Mako matplotlib numpy python pyopengl pyqt4 scipy wxPython pygtk; - inherit (darwin.apple_sdk.frameworks) CoreAudio; - fftw = fftwFloat; - qwt = qwt6_qt4; + gnss-sdr = callPackage ../applications/radio/gnss-sdr { + boost = boost166; + gnuradio = gnuradio3_7-unwrapped; }; - 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 ]; + gnuradio-unwrapped = callPackage ../applications/radio/gnuradio { + inherit (darwin.apple_sdk.frameworks) CoreAudio; + python = python3; + }; + # 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; From ed44b466e6119901d8e69b39647a15692ffa7cb1 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 6 Oct 2020 02:27:00 +0300 Subject: [PATCH 05/27] treewide/(gnuradio plugins): Add log4cpp as it's needed now. Since gnuradio-runtime is compiled with log4cpp, all plugins that need gnuradio-runtime (which is all of them probably) need log4cpp as well. Add python.pkgs.cheetah to inputs of gr-osmosdr as it somehow started to be needed. --- pkgs/applications/radio/gnuradio/gsm.nix | 4 ++-- pkgs/applications/radio/gnuradio/limesdr.nix | 4 ++-- pkgs/applications/radio/gnuradio/nacl.nix | 4 ++-- pkgs/applications/radio/gnuradio/osmosdr.nix | 5 +++-- pkgs/applications/radio/gnuradio/rds.nix | 4 ++-- pkgs/top-level/all-packages.nix | 1 + 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/radio/gnuradio/gsm.nix b/pkgs/applications/radio/gnuradio/gsm.nix index e0b8d7dd44f..4e2406fc07a 100644 --- a/pkgs/applications/radio/gnuradio/gsm.nix +++ b/pkgs/applications/radio/gnuradio/gsm.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio +{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio, log4cpp , makeWrapper, cppunit, libosmocore, gr-osmosdr , pythonSupport ? true, python, swig }: @@ -18,7 +18,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake boost gnuradio makeWrapper cppunit libosmocore gr-osmosdr + cmake boost gnuradio makeWrapper cppunit libosmocore gr-osmosdr log4cpp ] ++ stdenv.lib.optionals pythonSupport [ python swig ]; postInstall = '' diff --git a/pkgs/applications/radio/gnuradio/limesdr.nix b/pkgs/applications/radio/gnuradio/limesdr.nix index 490caaaa7be..b2f99164bec 100644 --- a/pkgs/applications/radio/gnuradio/limesdr.nix +++ b/pkgs/applications/radio/gnuradio/limesdr.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio -, pythonSupport ? true, python, swig, limesuite +, pythonSupport ? true, python, swig, limesuite, log4cpp } : assert pythonSupport -> python != null && swig != null; @@ -24,7 +24,7 @@ in stdenv.mkDerivation { ] ++ stdenv.lib.optionals pythonSupport [ swig ]; buildInputs = [ - boost gnuradio limesuite + boost gnuradio limesuite log4cpp ] ++ stdenv.lib.optionals pythonSupport [ python ]; diff --git a/pkgs/applications/radio/gnuradio/nacl.nix b/pkgs/applications/radio/gnuradio/nacl.nix index e3d851e2e14..3435d5cdb4f 100644 --- a/pkgs/applications/radio/gnuradio/nacl.nix +++ b/pkgs/applications/radio/gnuradio/nacl.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio, uhd -, makeWrapper, libsodium, cppunit +, makeWrapper, libsodium, cppunit, log4cpp , pythonSupport ? true, python, swig }: @@ -18,7 +18,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake boost gnuradio uhd makeWrapper libsodium cppunit + cmake boost gnuradio uhd makeWrapper libsodium cppunit log4cpp ] ++ stdenv.lib.optionals pythonSupport [ python swig ]; postInstall = '' diff --git a/pkgs/applications/radio/gnuradio/osmosdr.nix b/pkgs/applications/radio/gnuradio/osmosdr.nix index ad54fc8d7c4..9eb6fe648d0 100644 --- a/pkgs/applications/radio/gnuradio/osmosdr.nix +++ b/pkgs/applications/radio/gnuradio/osmosdr.nix @@ -8,6 +8,7 @@ , rtl-sdr , soapysdr-with-plugins , uhd +, log4cpp }: assert pythonSupport -> python != null && swig != null; @@ -24,10 +25,10 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake makeWrapper boost + cmake makeWrapper boost log4cpp airspy gnuradio hackrf libbladeRF rtl-sdr uhd ] ++ stdenv.lib.optionals stdenv.isLinux [ soapysdr-with-plugins ] - ++ stdenv.lib.optionals pythonSupport [ python swig ]; + ++ stdenv.lib.optionals pythonSupport [ python swig python.pkgs.cheetah ]; postInstall = '' for prog in "$out"/bin/*; do diff --git a/pkgs/applications/radio/gnuradio/rds.nix b/pkgs/applications/radio/gnuradio/rds.nix index 1f8ed211ef2..72838569bb3 100644 --- a/pkgs/applications/radio/gnuradio/rds.nix +++ b/pkgs/applications/radio/gnuradio/rds.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio +{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio, log4cpp , makeWrapper, pythonSupport ? true, python, swig }: @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - cmake boost gnuradio makeWrapper + cmake boost gnuradio makeWrapper log4cpp ] ++ stdenv.lib.optionals pythonSupport [ python swig ]; postInstall = '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 67bed0dedb2..8468009bd62 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21277,6 +21277,7 @@ in # Use the same gnuradio for gr-osmosdr as well gr-osmosdr = gr-osmosdr.override { gnuradio = gnuradio3_7Minimal; + pythonSupport = false; }; }; From 080930412b51d80a78a6c505a682323e7ad0cb2b Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 6 Oct 2020 05:03:16 +0300 Subject: [PATCH 06/27] gnss-sdr: Fix build by adding python six --- pkgs/applications/radio/gnss-sdr/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/radio/gnss-sdr/default.nix b/pkgs/applications/radio/gnss-sdr/default.nix index cc89ffb4f87..d7e2d44c75c 100644 --- a/pkgs/applications/radio/gnss-sdr/default.nix +++ b/pkgs/applications/radio/gnss-sdr/default.nix @@ -41,6 +41,7 @@ stdenv.mkDerivation rec { orc pkgconfig pythonPackages.Mako + pythonPackages.six # UHD support is optional, but gnuradio is built with it, so there's # nothing to be gained by leaving it out. From 44d041786b878ba6b37b86d3a86d01fdd66044fc Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 20 Oct 2020 19:56:26 +0300 Subject: [PATCH 07/27] rl-2103: Mention gnuradio expressions changes. Mention 3.8 and that it's now possible to override it and 3.7 to compile only certain features. --- nixos/doc/manual/release-notes/rl-2103.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2103.xml b/nixos/doc/manual/release-notes/rl-2103.xml index 96061e9ca59..87a99f9ac8e 100644 --- a/nixos/doc/manual/release-notes/rl-2103.xml +++ b/nixos/doc/manual/release-notes/rl-2103.xml @@ -26,6 +26,19 @@ GNOME desktop environment was upgraded to 3.38, see its release notes. + + + GNURadio 3.8 was + finnally + packaged, along with a rewrite to the Nix expressions, allowing users to + override the features upstream supports selecting to compile or not to. + Additionally, the attribute gnuradio and gnuradio3_7 + now point to an externally wrapped by default derivations, that allow you to + also add `extraPythonPackages` to the Python interpreter used by GNURadio. + Missing environmental variables needed for operational GUI were also added + (#7547). + + From 3d55b9a8993ad34674acd1894b5fc7ba325b6a8b Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 22 Oct 2020 10:52:56 +0000 Subject: [PATCH 08/27] comedilib: 0.11.0 -> 0.12.0 --- pkgs/development/libraries/comedilib/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/comedilib/default.nix b/pkgs/development/libraries/comedilib/default.nix index f011c04d885..98811b97c87 100644 --- a/pkgs/development/libraries/comedilib/default.nix +++ b/pkgs/development/libraries/comedilib/default.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation rec { pname = "comedilib"; - version = "0.11.0"; + version = "0.12.0"; src = fetchFromGitHub { owner = "Linux-Comedi"; repo = "comedilib"; rev = "r${stdenv.lib.replaceStrings [ "." ] [ "_" ] version}"; - sha256 = "159sv4jdgmcaqz76vazkyxxb85ni7pg14p1qv7y94hib3kspc195"; + sha256 = "0kfs2dw62vjz8j7fgsxq6ky8r8kca726gyklbm6kljvgfh47lyfw"; }; nativeBuildInputs = [ From d3b3bf7eb8aee5cd08e3250f049a9eb7d6e212b0 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 6 Nov 2020 12:03:47 +0200 Subject: [PATCH 09/27] fixup! gnuradio: rewrite --- pkgs/applications/radio/gnuradio/wrapper.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/applications/radio/gnuradio/wrapper.nix b/pkgs/applications/radio/gnuradio/wrapper.nix index 05202840ac0..6b854918f57 100644 --- a/pkgs/applications/radio/gnuradio/wrapper.nix +++ b/pkgs/applications/radio/gnuradio/wrapper.nix @@ -26,6 +26,8 @@ let pythonPkgs = extraPythonPackages + # Add the extraPackages as python modules as well + ++ (builtins.map unwrapped.python.pkgs.toPythonModule extraPackages) ++ stdenv.lib.flatten (stdenv.lib.mapAttrsToList ( feat: info: ( if unwrapped.hasFeature feat unwrapped.features then From 0f615e80a09b186c1086a8080f9580bd4f83218e Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 9 Nov 2020 01:17:12 +0200 Subject: [PATCH 10/27] fixup! gnuradio: rewrite --- pkgs/applications/radio/gnuradio/3.7.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/radio/gnuradio/3.7.nix b/pkgs/applications/radio/gnuradio/3.7.nix index fdf0016de8c..54fb0d7d66c 100644 --- a/pkgs/applications/radio/gnuradio/3.7.nix +++ b/pkgs/applications/radio/gnuradio/3.7.nix @@ -33,10 +33,8 @@ , qt4 , qwt6_qt4 # Features available to override, the list of them is in featuresInfo. They -# are all turned on by default, besides wxgui which is recommended by upstream -# in favor of gr-qtgui, see: -# https://www.gnuradio.org/news/2019-08-10-gnu-radio-v3-8-0-0-release/ -, features ? { gr-wxgui = false; } +# 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" From 6838cb8aa013d1ec0bc917ecae90021deeb0411e Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 5 Dec 2020 12:06:38 +0000 Subject: [PATCH 11/27] buildkit: 0.7.2 -> 0.8.0 --- pkgs/development/tools/buildkit/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/buildkit/default.nix b/pkgs/development/tools/buildkit/default.nix index d4c143b0bd0..00a285c67d0 100644 --- a/pkgs/development/tools/buildkit/default.nix +++ b/pkgs/development/tools/buildkit/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { pname = "buildkit"; - version = "0.7.2"; + version = "0.8.0"; goPackagePath = "github.com/moby/buildkit"; subPackages = [ "cmd/buildctl" ] ++ stdenv.lib.optionals stdenv.isLinux [ "cmd/buildkitd" ]; @@ -11,7 +11,7 @@ buildGoPackage rec { owner = "moby"; repo = "buildkit"; rev = "v${version}"; - sha256 = "0kn2ad0rh3xlcxjxslkyrfxhv3cx88996nhxn86605x1mybxb2iq"; + sha256 = "0qcgq93wj77i912xqhwrzkzaqz608ilczfn5kcsrf9jk2m1gnx7m"; }; buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version} -X ${goPackagePath}/version.Revision=${src.rev}" ]; From a6e78f015cda426447ee0771377c4a810d366988 Mon Sep 17 00:00:00 2001 From: Tom Hall Date: Sat, 5 Dec 2020 12:47:44 +0000 Subject: [PATCH 12/27] wacomtablet: Fix build with Qt5.15, pending new release (#104660) Also update homepage --- pkgs/tools/misc/wacomtablet/default.nix | 10 ++++++++-- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/wacomtablet/default.nix b/pkgs/tools/misc/wacomtablet/default.nix index aa631d44114..5ff2800496a 100644 --- a/pkgs/tools/misc/wacomtablet/default.nix +++ b/pkgs/tools/misc/wacomtablet/default.nix @@ -1,4 +1,4 @@ -{ lib, mkDerivation, fetchurl, extra-cmake-modules, qtx11extras, +{ lib, mkDerivation, fetchurl, fetchpatch, extra-cmake-modules, qtx11extras, plasma-workspace, libwacom, xf86_input_wacom }: @@ -9,6 +9,12 @@ mkDerivation rec { url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz"; sha256 = "197pwpl87gqlnza36bp68jvw8ww25znk08acmi8bpz7n84xfc368"; }; + patches = [ + (fetchpatch { + url = "https://invent.kde.org/system/wacomtablet/commit/4f73ff02b3efd5e8728b18fcf1067eca166704ee.patch"; + sha256 = "0185gbh1vywfz8a3wnvncmzdk0dd189my4bzimkbh85rlrqq2nf8"; + }) + ]; nativeBuildInputs = [ extra-cmake-modules ]; buildInputs = [ @@ -22,7 +28,7 @@ mkDerivation rec { This module implements a GUI for the Wacom Linux Drivers and extends it with profile support to handle different button / pen layouts per profile. ''; - homepage = "https://cgit.kde.org/wacomtablet.git/about/"; + homepage = "https://invent.kde.org/system/wacomtablet"; license = lib.licenses.gpl2; maintainers = [ lib.maintainers.Thra11 ]; platforms = lib.platforms.linux; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1f6b6976a75..953b997f555 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -28279,7 +28279,7 @@ in vttest = callPackage ../tools/misc/vttest { }; - wacomtablet = libsForQt514.callPackage ../tools/misc/wacomtablet { }; + wacomtablet = libsForQt5.callPackage ../tools/misc/wacomtablet { }; wasmer = callPackage ../development/interpreters/wasmer { }; From a8d0bda27fb2414c2556f2d5f4011a89e9f92a88 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 5 Dec 2020 13:09:52 +0000 Subject: [PATCH 13/27] broot: 1.0.7 -> 1.0.8 --- pkgs/tools/misc/broot/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix index 53b89a07224..fb8e2508294 100644 --- a/pkgs/tools/misc/broot/default.nix +++ b/pkgs/tools/misc/broot/default.nix @@ -11,14 +11,14 @@ rustPlatform.buildRustPackage rec { pname = "broot"; - version = "1.0.7"; + version = "1.0.8"; src = fetchCrate { inherit pname version; - sha256 = "0rxk6dsbn960ikmp6f8a98g3dlibzfy9gcbdina37403kxv8bs6v"; + sha256 = "06881c8qnh917y2mn5q5qlf86idz17xi2dapsad3m1zbdr53c25j"; }; - cargoSha256 = "14fc53xl8f19z8cjrgn6qafiymgirmsin2nzh4i3qprmcc52all8"; + cargoSha256 = "1k5qm4h028172r7i2pz5l8886qviy7ni83qxn10a8d5hsgalarvx"; nativeBuildInputs = [ makeWrapper From c8c68ed18e289e0e65beefc6719c3880584133f0 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 5 Dec 2020 13:28:57 +0000 Subject: [PATCH 14/27] eksctl: 0.32.0 -> 0.33.0 --- pkgs/tools/admin/eksctl/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix index b6834551cee..c375b0987dc 100644 --- a/pkgs/tools/admin/eksctl/default.nix +++ b/pkgs/tools/admin/eksctl/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "eksctl"; - version = "0.32.0"; + version = "0.33.0"; src = fetchFromGitHub { owner = "weaveworks"; repo = pname; rev = version; - sha256 = "0np11c4apyl7lmh4kjyi62bcf1kjf2fjjlli8aadvlli2ww8qrf2"; + sha256 = "1rhiak1264czcww5ayz35am9nsn5xa3kjd90szssg46ngxisd61x"; }; - vendorSha256 = "19fk2lw7m8kqwwhv3sqr0iix90sjcnh2mqqvr5p87hfjars4c55v"; + vendorSha256 = "1s9xhq1k67gf9saada1dr95n1sd265hndkxz0alqw6dm2vdp3n2q"; doCheck = false; From 176cfbf1d1964d9b5e80c52509f36fc95df36909 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 5 Dec 2020 13:49:46 +0000 Subject: [PATCH 15/27] fio: 3.24 -> 3.25 --- pkgs/tools/system/fio/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/system/fio/default.nix b/pkgs/tools/system/fio/default.nix index 4e47b8f568b..e0dc69de0e4 100644 --- a/pkgs/tools/system/fio/default.nix +++ b/pkgs/tools/system/fio/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "fio"; - version = "3.24"; + version = "3.25"; src = fetchFromGitHub { owner = "axboe"; repo = "fio"; rev = "fio-${version}"; - sha256 = "0wkbs8gzfvclsn576fcx5sqzb5qs7annn7ra4kk2i578a32q4sxw"; + sha256 = "1f20ihynwnz8jqqlr73i5glr8ziplz4mmcjgk340mj2yqqcnsqag"; }; buildInputs = [ python zlib ] From 01c14bd1bf0bd06b4732d050eaf5abdacf7aa2f2 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 5 Dec 2020 13:56:26 +0000 Subject: [PATCH 16/27] exodus: 20.11.23 -> 20.12.4 --- pkgs/applications/blockchains/exodus/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/blockchains/exodus/default.nix b/pkgs/applications/blockchains/exodus/default.nix index 2e6419fd13d..3992c782485 100644 --- a/pkgs/applications/blockchains/exodus/default.nix +++ b/pkgs/applications/blockchains/exodus/default.nix @@ -4,11 +4,11 @@ cups, vivaldi-ffmpeg-codecs, libpulseaudio, at-spi2-core }: stdenv.mkDerivation rec { pname = "exodus"; - version = "20.11.23"; + version = "20.12.4"; src = fetchurl { url = "https://downloads.exodus.io/releases/${pname}-linux-x64-${version}.zip"; - sha256 = "0hcvgph2m4nbrarhw2cggc8q5jxwnibiz2mbkypgizphk5svdj9l"; + sha256 = "1j1iqmcbwfj72l7g83ah701bipas9cqwazyhh0af5hp2ckj9nmmf"; }; sourceRoot = "."; From c8847c30c5bf090704154cfbe0dd17acf48bf455 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 5 Dec 2020 14:22:14 +0000 Subject: [PATCH 17/27] epiphany: 3.38.1 -> 3.38.2 --- pkgs/desktops/gnome-3/core/epiphany/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix index 7b9c439b247..4bbed000e43 100644 --- a/pkgs/desktops/gnome-3/core/epiphany/default.nix +++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix @@ -36,11 +36,11 @@ stdenv.mkDerivation rec { pname = "epiphany"; - version = "3.38.1"; + version = "3.38.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0hr87nl8pc7h8w65i8jwj5fdwr46wbygdnx6mhpbbyqirdm5gdsr"; + sha256 = "0v8iymg72m83ikxxyhapvz5v8zh8hlr1pw7n215cy3p8q6yg41cb"; }; # Tests need an X display From ff1700feda845ab2a9145bd847e1d7d3d259d2b5 Mon Sep 17 00:00:00 2001 From: Alex Brandt Date: Sat, 5 Dec 2020 14:35:30 +0000 Subject: [PATCH 18/27] lib/string: drop redundant string in description of toInt. Describing the string argument as a string is redundant and not needed to describe what this function does. --- lib/strings.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/strings.nix b/lib/strings.nix index 6d393145eee..5010d9159cb 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -674,7 +674,7 @@ rec { else false; - /* Parse a string string as an int. + /* Parse a string as an int. Type: string -> int From 7e23eb8dc0ddc0770b0267efc4b51e9facf19ec5 Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Sat, 5 Dec 2020 16:54:46 +0100 Subject: [PATCH 19/27] slurm: 20.02.5.1 -> 20.02.6.1 Addresses CVE-2020-27745 and CVE-2020-27746 --- pkgs/servers/computing/slurm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix index cc77dbd4891..bde82468b72 100644 --- a/pkgs/servers/computing/slurm/default.nix +++ b/pkgs/servers/computing/slurm/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { pname = "slurm"; - version = "20.02.5.1"; + version = "20.02.6.1"; # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php # because the latter does not keep older releases. @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { repo = "slurm"; # The release tags use - instead of . rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}"; - sha256 = "09d4zyyjl5mcrzhzbh6nhc35mzim1sy0h0p2h468nwk1fbl81ff5"; + sha256 = "0vllyljsmv3y9hw4vfgnz9cnjqhlk55dy1bipssw872aldlxfcdk"; }; outputs = [ "out" "dev" ]; From 3df32d5c4ee552566d3d042859c4b8f198a6c45a Mon Sep 17 00:00:00 2001 From: Luflosi Date: Sat, 5 Dec 2020 17:04:51 +0100 Subject: [PATCH 20/27] youtube-dl: 2020.12.02 -> 2020.12.05 https://github.com/ytdl-org/youtube-dl/releases/tag/2020.12.05 --- pkgs/tools/misc/youtube-dl/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix index a7b42471494..b037a982edc 100644 --- a/pkgs/tools/misc/youtube-dl/default.nix +++ b/pkgs/tools/misc/youtube-dl/default.nix @@ -18,11 +18,11 @@ buildPythonPackage rec { # The websites youtube-dl deals with are a very moving target. That means that # downloads break constantly. Because of that, updates should always be backported # to the latest stable release. - version = "2020.12.02"; + version = "2020.12.05"; src = fetchurl { url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz"; - sha256 = "0wkslmqiydlzrla4wx67757b18r4l9h42fkfzdcxx6n0ygiv4qbi"; + sha256 = "065s45l8qz7wlkaxw9bj20gq9647zpwdj9vc6chhqjscl63z1aqm"; }; nativeBuildInputs = [ installShellFiles makeWrapper ]; From 83374d3bf11877f3ac33669b7fd6f8f1e3ca792e Mon Sep 17 00:00:00 2001 From: meutraa Date: Sat, 5 Dec 2020 15:55:18 +0000 Subject: [PATCH 21/27] androidStudioPackages.beta: 4.1.0.18 -> 4.2.0.17 --- pkgs/applications/editors/android-studio/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index 51c7ebcc907..874b3cd1e84 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -14,9 +14,9 @@ let sha256Hash = "sha256-aAMhhJWcVFdvEZt8fI3tF12Eg3TzlU+kUFMNeCYN1os="; }; betaVersion = { - version = "4.1.0.18"; # "Android Studio 4.1 RC 3" - build = "201.6823847"; - sha256Hash = "sha256-qbxmR9g8DSKzcP09bJuc+am79BSXWG39UQxFEb1bZ88="; + version = "4.2.0.17"; # "Android Studio 4.2 Beta 1" + build = "202.6987402"; + sha256Hash = "07qr0b1zdzpc1nsi6593518dxp89dcjfp4lznb1d3id8vbqla4i7"; }; latestVersion = { # canary & dev version = "4.2.0.16"; # "Android Studio 4.2 Canary 16" From b822982d77d9b0e39b21b1f3cfda62767fc68142 Mon Sep 17 00:00:00 2001 From: meutraa Date: Sat, 5 Dec 2020 16:05:53 +0000 Subject: [PATCH 22/27] androidStudioPackages.{canary,dev}: 4.2.0.16 -> 2020.3.1.2 --- pkgs/applications/editors/android-studio/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index 874b3cd1e84..d94ad070536 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -19,9 +19,9 @@ let sha256Hash = "07qr0b1zdzpc1nsi6593518dxp89dcjfp4lznb1d3id8vbqla4i7"; }; latestVersion = { # canary & dev - version = "4.2.0.16"; # "Android Studio 4.2 Canary 16" - build = "202.6939830"; - sha256Hash = "sha256-2Xh0GR4BHZI6ofdyMI2icrztI2BmiHWT+1bEZIZ58IE="; + version = "2020.3.1.2"; # "Android Studio Arctic Fox Canary 2" + build = "202.7006259"; + sha256Hash = "1d4brfx1fh1vlcjkb0x8hjj2qgz2dl5wbaiy8dj8w03vcf493nc5"; }; in { # Attributes are named by their corresponding release channels From 739e97c5213bf5d6973d487b9ae612133a189504 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Sat, 5 Dec 2020 17:08:48 +0100 Subject: [PATCH 23/27] electrum: 4.0.5 -> 4.0.6 --- pkgs/applications/misc/electrum/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix index 40ecd61304f..df6c99768e8 100644 --- a/pkgs/applications/misc/electrum/default.nix +++ b/pkgs/applications/misc/electrum/default.nix @@ -19,7 +19,7 @@ }: let - version = "4.0.5"; + version = "4.0.6"; # electrum is not compatible with dnspython 2.0.0 yet # use the latest 1.x release instead @@ -43,7 +43,7 @@ let owner = "spesmilo"; repo = "electrum"; rev = version; - sha256 = "0fdsgxzgsxvx6hhjag894nzzdfq989bx1d4anljzcz2ppy4ivpxg"; + sha256 = "0mdbg2sq56nv0hx0rrcbgrv1lv89nqc6cqigivgk665hhjm4v5kq"; extraPostFetch = '' mv $out ./all @@ -58,7 +58,7 @@ py.pkgs.buildPythonApplication { src = fetchurl { url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz"; - sha256 = "06ml9lwa5k2dp56sm5s7dsl6qirqmgim7rn853cqcq9n45z41437"; + sha256 = "0sp8p720g3rqnh52ddhaw2v4hjgpxcwbackw9qc1g9xac1q0942d"; }; postUnpack = '' From d2727446df79b4502c0eed65d32f881f1b699a51 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Mon, 30 Nov 2020 08:18:26 +0100 Subject: [PATCH 24/27] =?UTF-8?q?ocamlPackages.xtmpl:=20disable=20for=20OC?= =?UTF-8?q?aml=20=E2=89=A5=204.11?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/development/ocaml-modules/xtmpl/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/ocaml-modules/xtmpl/default.nix b/pkgs/development/ocaml-modules/xtmpl/default.nix index 2264f0dedbf..31c671538a5 100644 --- a/pkgs/development/ocaml-modules/xtmpl/default.nix +++ b/pkgs/development/ocaml-modules/xtmpl/default.nix @@ -2,6 +2,7 @@ , js_of_ocaml-ppx, re }: if stdenv.lib.versionOlder ocaml.version "4.03" +|| stdenv.lib.versionAtLeast ocaml.version "4.11" then throw "xtmpl not supported for ocaml ${ocaml.version}" else stdenv.mkDerivation rec { From 3d66135e6bc7bce8491a4cf096f818678b8b411b Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Mon, 30 Nov 2020 08:18:33 +0100 Subject: [PATCH 25/27] ocamlPackages.qtest: use Dune 2 --- pkgs/development/ocaml-modules/qtest/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/ocaml-modules/qtest/default.nix b/pkgs/development/ocaml-modules/qtest/default.nix index e7f00803a19..d5829127a8b 100644 --- a/pkgs/development/ocaml-modules/qtest/default.nix +++ b/pkgs/development/ocaml-modules/qtest/default.nix @@ -4,6 +4,8 @@ buildDunePackage rec { pname = "qtest"; version = "2.11.1"; + useDune2 = true; + src = fetchFromGitHub { owner = "vincent-hugot"; repo = pname; From df114c20919883b99ca9c093edafeffa0f5eb758 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Mon, 30 Nov 2020 08:18:38 +0100 Subject: [PATCH 26/27] ocamlPackages.iter: use Dune 2 --- pkgs/development/ocaml-modules/iter/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/ocaml-modules/iter/default.nix b/pkgs/development/ocaml-modules/iter/default.nix index 66f3f26285e..d7b3ff64d30 100644 --- a/pkgs/development/ocaml-modules/iter/default.nix +++ b/pkgs/development/ocaml-modules/iter/default.nix @@ -1,9 +1,13 @@ -{ lib, fetchFromGitHub, buildDunePackage, ocaml, mdx, qtest, result }: +{ lib, fetchFromGitHub, buildDunePackage, ocaml, dune-configurator +, mdx, qtest, result +}: buildDunePackage rec { pname = "iter"; version = "1.2.1"; + useDune2 = true; + src = fetchFromGitHub { owner = "c-cube"; repo = pname; @@ -11,10 +15,11 @@ buildDunePackage rec { sha256 = "0j2sg50byn0ppmf6l36ksip7zx1d3gv7sc4hbbxs2rmx39jr7vxh"; }; - buildInputs = lib.optionals doCheck [ mdx.bin qtest ]; + buildInputs = [ dune-configurator ]; propagatedBuildInputs = [ result ]; doCheck = lib.versionAtLeast ocaml.version "4.07"; + checkInputs = [ mdx.bin qtest ]; meta = { homepage = "https://github.com/c-cube/sequence"; From fd45d961af9911b51cbe3afbb6b4273f6e8f5fe7 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Mon, 30 Nov 2020 08:18:45 +0100 Subject: [PATCH 27/27] =?UTF-8?q?ocamlPackages.qcheck:=200.15=20=E2=86=92?= =?UTF-8?q?=200.16?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/development/ocaml-modules/qcheck/alcotest.nix | 2 +- pkgs/development/ocaml-modules/qcheck/core.nix | 6 ++++-- pkgs/development/ocaml-modules/qcheck/default.nix | 2 +- pkgs/development/ocaml-modules/qcheck/ounit.nix | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/development/ocaml-modules/qcheck/alcotest.nix b/pkgs/development/ocaml-modules/qcheck/alcotest.nix index 4f1baec1e55..aebe6bd95a8 100644 --- a/pkgs/development/ocaml-modules/qcheck/alcotest.nix +++ b/pkgs/development/ocaml-modules/qcheck/alcotest.nix @@ -3,7 +3,7 @@ buildDunePackage { pname = "qcheck-alcotest"; - inherit (qcheck-core) version src; + inherit (qcheck-core) version useDune2 src; propagatedBuildInputs = [ qcheck-core alcotest ]; diff --git a/pkgs/development/ocaml-modules/qcheck/core.nix b/pkgs/development/ocaml-modules/qcheck/core.nix index fa72a211ef4..03de70237a4 100644 --- a/pkgs/development/ocaml-modules/qcheck/core.nix +++ b/pkgs/development/ocaml-modules/qcheck/core.nix @@ -2,7 +2,9 @@ buildDunePackage rec { pname = "qcheck-core"; - version = "0.15"; + version = "0.16"; + + useDune2 = true; minimumOCamlVersion = "4.03"; @@ -10,7 +12,7 @@ buildDunePackage rec { owner = "c-cube"; repo = "qcheck"; rev = version; - sha256 = "1ywaklqm1agvxvzv7pwl8v4zlwc3ykw6l251w43f0gy9cfwqmh3j"; + sha256 = "1s5dpqj8zvd3wr2w3fp4wb6yc57snjpxzzfv9fb6l9qgigswwjdr"; }; meta = { diff --git a/pkgs/development/ocaml-modules/qcheck/default.nix b/pkgs/development/ocaml-modules/qcheck/default.nix index 2a0e6c0ae40..dc73f42a13b 100644 --- a/pkgs/development/ocaml-modules/qcheck/default.nix +++ b/pkgs/development/ocaml-modules/qcheck/default.nix @@ -3,7 +3,7 @@ buildDunePackage { pname = "qcheck"; - inherit (qcheck-ounit) version src; + inherit (qcheck-ounit) version useDune2 src; propagatedBuildInputs = [ qcheck-ounit ]; diff --git a/pkgs/development/ocaml-modules/qcheck/ounit.nix b/pkgs/development/ocaml-modules/qcheck/ounit.nix index 06897987a95..62b082f48fb 100644 --- a/pkgs/development/ocaml-modules/qcheck/ounit.nix +++ b/pkgs/development/ocaml-modules/qcheck/ounit.nix @@ -3,7 +3,7 @@ buildDunePackage { pname = "qcheck-ounit"; - inherit (qcheck-core) version src; + inherit (qcheck-core) version useDune2 src; propagatedBuildInputs = [ qcheck-core ounit ];