···3636 now point to an externally wrapped by default derivations, that allow you to
3737 also add `extraPythonPackages` to the Python interpreter used by GNURadio.
3838 Missing environmental variables needed for operational GUI were also added
3939- (<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#7547</link>).
3939+ (<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
4040+ </para>
4141+ </listitem>
4242+ <listitem>
4343+ <para>
4444+ <link xlink:href="https://www.gnuradio.org/">GNURadio</link> has a
4545+ <code>pkgs</code> attribute set, and there's a <code>gnuradio.callPackage</code>
4646+ function that extends <code>pkgs</code> with a <code>mkDerivation</code>, and a
4747+ <code>mkDerivationWith</code>, like Qt5. Now all <code>gnuradio.pkgs</code> are
4848+ defined with <code>gnuradio.callPackage</code> and some packages that depend
4949+ on gnuradio are defined with this as well.
4050 </para>
4151 </listitem>
4252 <listitem>
···11+{ lib
22+, unwrapped
33+}:
44+55+mkDerivation:
66+77+args:
88+99+# Check if it's supposed to not get built for the current gnuradio version
1010+if (builtins.hasAttr "disabledForGRafter" args) &&
1111+(lib.versionAtLeast unwrapped.versionAttr.major args.disabledForGRafter) then
1212+let name = args.name or "${args.pname}"; in
1313+throw "Package ${name} is incompatible with GNURadio ${unwrapped.versionAttr.major}"
1414+else
1515+1616+let
1717+ args_ = {
1818+ enableParallelBuilding = args.enableParallelBuilding or true;
1919+ nativeBuildInputs = (args.nativeBuildInputs or []);
2020+ # We add gnuradio and volk itself by default - most gnuradio based packages
2121+ # will not consider it a depenency worth mentioning and it will almost
2222+ # always be needed
2323+ buildInputs = (args.buildInputs or []) ++ [ unwrapped unwrapped.volk ];
2424+ };
2525+in mkDerivation (args // args_)