···92929393- [PhotonVision](https://photonvision.org/), a free, fast, and easy-to-use computer vision solution for the FIRST® Robotics Competition.
94949595+- [clatd](https://github.com/toreanderson/clatd), a a CLAT / SIIT-DC Edge Relay implementation for Linux.
9696+9597- [pyLoad](https://pyload.net/), a FOSS download manager written in Python. Available as [services.pyload](#opt-services.pyload.enable)
96989799- [maubot](https://github.com/maubot/maubot), a plugin-based Matrix bot framework. Available as [services.maubot](#opt-services.maubot.enable).
···5151 package = mkPackageOption pkgs "trust-dns" {
5252 extraDescription = ''
5353 ::: {.note}
5454- The package must provide `meta.mainProgram` which names the server binayr; any other utilities (client, resolver) are not needed.
5454+ The package must provide `meta.mainProgram` which names the server binary; any other utilities (client, resolver) are not needed.
5555 :::
5656 '';
5757 };
···8686 type = types.listOf types.str;
8787 default = [ "0.0.0.0" ];
8888 description = ''
8989- List of ipv4 addresses on which to listen for DNS queries.
8989+ List of ipv4 addresses on which to listen for DNS queries.
9090 '';
9191 };
9292 listen_addrs_ipv6 = mkOption {
···114114 };
115115 zones = mkOption {
116116 description = "List of zones to serve.";
117117- default = {};
117117+ default = [];
118118 type = types.listOf (types.coercedTo types.str (zone: { inherit zone; }) zoneType);
119119 };
120120 };
+2-3
nixos/modules/system/boot/loader/grub/grub.nix
···66 concatMap
77 concatMapStrings
88 concatStrings
99- concatStringsSep
109 escapeShellArg
1110 flip
1211 foldr
···491490492491 theme = mkOption {
493492 type = types.nullOr types.path;
494494- example = literalExpression "pkgs.nixos-grub2-theme";
493493+ example = literalExpression ''"''${pkgs.libsForQt5.breeze-grub}/grub/themes/breeze"'';
495494 default = null;
496495 description = ''
497497- Grub theme to be used.
496496+ Path to the grub theme to be used.
498497 '';
499498 };
500499
+5-5
nixos/modules/virtualisation/podman/default.nix
···219219 systemd.services.podman.environment = config.networking.proxy.envVars;
220220 systemd.sockets.podman.wantedBy = [ "sockets.target" ];
221221 systemd.sockets.podman.socketConfig.SocketGroup = "podman";
222222+ # Podman does not support multiple sockets, as of podman 5.0.2, so we use
223223+ # a symlink. Unfortunately this does not let us use an alternate group,
224224+ # such as `docker`.
225225+ systemd.sockets.podman.socketConfig.Symlinks =
226226+ lib.mkIf cfg.dockerSocket.enable [ "/run/docker.sock" ];
222227223228 systemd.user.services.podman.environment = config.networking.proxy.envVars;
224229 systemd.user.sockets.podman.wantedBy = [ "sockets.target" ];
···238243 >$out/lib/tmpfiles.d/podman.conf
239244 '')
240245 ];
241241-242242- systemd.tmpfiles.rules =
243243- lib.optionals cfg.dockerSocket.enable [
244244- "L! /run/docker.sock - - - - /run/podman/podman.sock"
245245- ];
246246247247 users.groups.podman = { };
248248
···5858 # may wish to wrap GR without python support.
5959 pythonPkgs = extraPythonPackages
6060 ++ [ (unwrapped.python.pkgs.toPythonModule unwrapped) ]
6161+ ++ unwrapped.passthru.uhd.pythonPath
6262+ ++ lib.optionals (unwrapped.passthru.uhd.pythonPath != []) [
6363+ (unwrapped.python.pkgs.toPythonModule unwrapped.passthru.uhd)
6464+ ]
6165 # Add the extraPackages as python modules as well
6266 ++ (builtins.map unwrapped.python.pkgs.toPythonModule extraPackages)
6367 ++ lib.flatten (lib.mapAttrsToList (
+92-53
pkgs/applications/radio/uhd/default.nix
···88, boost
99, ncurses
1010, enableCApi ? true
1111-# Although we handle the Python API's dependencies in pythonEnvArg, this
1212-# feature is currently disabled as upstream attempts to run `python setup.py
1313-# install` by itself, and it fails because the Python's environment's prefix is
1414-# not a writable directly. Adding support for this feature would require using
1515-# python's pypa/build nad pypa/install hooks directly, and currently it is hard
1616-# to do that because it all happens after a long buildPhase of the C API.
1717-, enablePythonApi ? false
1111+, enablePythonApi ? true
1812, python3
1919-, buildPackages
2013, enableExamples ? false
2114, enableUtils ? true
2215, libusb1
···3831}:
39324033let
4141- onOffBool = b: if b then "ON" else "OFF";
4242- inherit (lib) optionals;
4343- # Later used in pythonEnv generation. Python + mako are always required for the build itself but not necessary for runtime.
4444- pythonEnvArg = (ps: with ps; [ mako ]
4545- ++ optionals (enablePythonApi) [ numpy setuptools ]
4646- ++ optionals (enableUtils) [ requests six ]
4747- );
3434+ inherit (lib) optionals cmakeBool;
4835in
49365037stdenv.mkDerivation (finalAttrs: {
···7259 # hash.
7360 sha256 = "17g503mhndaabrdl7qai3rdbafr8xx8awsyr7h2bdzwzprzmh4m3";
7461 };
6262+ # This are the minimum required Python dependencies, this attribute might
6363+ # be useful if you want to build a development environment with a python
6464+ # interpreter able to import the uhd module.
6565+ pythonPath = optionals (enablePythonApi || enableUtils) [
6666+ python3.pkgs.numpy
6767+ python3.pkgs.setuptools
6868+ ] ++ optionals (enableUtils) [
6969+ python3.pkgs.requests
7070+ python3.pkgs.six
7171+7272+ /* These deps are needed for the usrp_hwd.py utility, however even if they
7373+ would have been added here, the utility wouldn't have worked because it
7474+ depends on an old python library mprpc that is not supported for Python >
7575+ 3.8. See also report upstream:
7676+ https://github.com/EttusResearch/uhd/issues/744
7777+7878+ python3.pkgs.gevent
7979+ python3.pkgs.pyudev
8080+ python3.pkgs.pyroute2
8181+8282+ */
8383+ ];
7584 passthru = {
8585+ runtimePython = python3.withPackages (ps: finalAttrs.pythonPath);
7686 updateScript = [
7787 ./update.sh
7888 # Pass it this file name as argument
···8393 cmakeFlags = [
8494 "-DENABLE_LIBUHD=ON"
8595 "-DENABLE_USB=ON"
8686- "-DENABLE_TESTS=ON" # This installs tests as well so we delete them via postPhases
8787- "-DENABLE_EXAMPLES=${onOffBool enableExamples}"
8888- "-DENABLE_UTILS=${onOffBool enableUtils}"
8989- "-DENABLE_C_API=${onOffBool enableCApi}"
9090- "-DENABLE_PYTHON_API=${onOffBool enablePythonApi}"
9191- "-DENABLE_DPDK=${onOffBool enableDpdk}"
9696+ # Regardless of doCheck, we want to build the tests to help us gain
9797+ # confident that the package is OK.
9898+ "-DENABLE_TESTS=ON"
9999+ (cmakeBool "ENABLE_EXAMPLES" enableExamples)
100100+ (cmakeBool "ENABLE_UTILS" enableUtils)
101101+ (cmakeBool "ENABLE_C_API" enableCApi)
102102+ (cmakeBool "ENABLE_PYTHON_API" enablePythonApi)
103103+ /*
104104+105105+ Otherwise python tests fail. Using a dedicated pythonEnv for either or both
106106+ nativeBuildInputs and buildInputs makes upstream's cmake scripts fail to
107107+ install the Python API as reported on our end at [1] (we don't want
108108+ upstream to think we are in a virtual environment because we use
109109+ python3.withPackages...).
110110+111111+ Putting simply the python dependencies in the nativeBuildInputs and
112112+ buildInputs as they are now from some reason makes the `python` in the
113113+ checkPhase fail to find the python dependencies, as reported at [2]. Even
114114+ using nativeCheckInputs with the python dependencies, or using a
115115+ `python3.withPackages` wrapper in nativeCheckInputs, doesn't help, as the
116116+ `python` found in $PATH first is the one from nativeBuildInputs.
117117+118118+ [1]: https://github.com/NixOS/nixpkgs/pull/307435
119119+ [2]: https://discourse.nixos.org/t/missing-python-package-in-checkphase/9168/
120120+121121+ Hence we use upstream's provided cmake flag to control which python
122122+ interpreter they will use to run the the python tests.
123123+124124+ */
125125+ "-DRUNTIME_PYTHON_EXECUTABLE=${lib.getExe finalAttrs.passthru.runtimePython}"
126126+ (cmakeBool "ENABLE_DPDK" enableDpdk)
92127 # Devices
9393- "-DENABLE_OCTOCLOCK=${onOffBool enableOctoClock}"
9494- "-DENABLE_MPMD=${onOffBool enableMpmd}"
9595- "-DENABLE_B100=${onOffBool enableB100}"
9696- "-DENABLE_B200=${onOffBool enableB200}"
9797- "-DENABLE_USRP1=${onOffBool enableUsrp1}"
9898- "-DENABLE_USRP2=${onOffBool enableUsrp2}"
9999- "-DENABLE_X300=${onOffBool enableX300}"
100100- "-DENABLE_N300=${onOffBool enableN300}"
101101- "-DENABLE_N320=${onOffBool enableN320}"
102102- "-DENABLE_E300=${onOffBool enableE300}"
103103- "-DENABLE_E320=${onOffBool enableE320}"
104104- ]
128128+ (cmakeBool "ENABLE_OCTOCLOCK" enableOctoClock)
129129+ (cmakeBool "ENABLE_MPMD" enableMpmd)
130130+ (cmakeBool "ENABLE_B100" enableB100)
131131+ (cmakeBool "ENABLE_B200" enableB200)
132132+ (cmakeBool "ENABLE_USRP1" enableUsrp1)
133133+ (cmakeBool "ENABLE_USRP2" enableUsrp2)
134134+ (cmakeBool "ENABLE_X300" enableX300)
135135+ (cmakeBool "ENABLE_N300" enableN300)
136136+ (cmakeBool "ENABLE_N320" enableN320)
137137+ (cmakeBool "ENABLE_E300" enableE300)
138138+ (cmakeBool "ENABLE_E320" enableE320)
105139 # TODO: Check if this still needed
106140 # ABI differences GCC 7.1
107141 # /nix/store/wd6r25miqbk9ia53pp669gn4wrg9n9cj-gcc-7.3.0/include/c++/7.3.0/bits/vector.tcc:394:7: note: parameter passing for argument of type 'std::vector<uhd::range_t>::iterator {aka __gnu_cxx::__normal_iterator<uhd::range_t*, std::vector<uhd::range_t> >}' changed in GCC 7.1
108108- ++ [ (lib.optionalString stdenv.isAarch32 "-DCMAKE_CXX_FLAGS=-Wno-psabi") ]
109109- ;
110110-111111- pythonEnv = python3.withPackages pythonEnvArg;
142142+ ] ++ optionals stdenv.isAarch32 [
143143+ "-DCMAKE_CXX_FLAGS=-Wno-psabi"
144144+ ];
112145113146 nativeBuildInputs = [
114147 cmake
115148 pkg-config
116149 # Present both here and in buildInputs for cross compilation.
117117- (buildPackages.python3.withPackages pythonEnvArg)
150150+ python3
151151+ python3.pkgs.mako
152152+ # We add this unconditionally, but actually run wrapPythonPrograms only if
153153+ # python utilities are enabled
154154+ python3.pkgs.wrapPython
118155 ];
119119- buildInputs = [
156156+ buildInputs = finalAttrs.pythonPath ++ [
120157 boost
121158 libusb1
122122- ]
123123- # However, if enableLibuhd_Python_api *or* enableUtils is on, we need
124124- # pythonEnv for runtime as well. The utilities' runtime dependencies are
125125- # handled at the environment
126126- ++ optionals (enableExamples) [ ncurses ncurses.dev ]
127127- ++ optionals (enablePythonApi || enableUtils) [ finalAttrs.pythonEnv ]
128128- ++ optionals (enableDpdk) [ dpdk ]
129129- ;
159159+ ] ++ optionals (enableExamples) [
160160+ ncurses ncurses.dev
161161+ ] ++ optionals (enableDpdk) [
162162+ dpdk
163163+ ];
130164131165 # many tests fails on darwin, according to ofborg
132166 doCheck = !stdenv.isDarwin;
133167134168 # Build only the host software
135169 preConfigure = "cd host";
136136- # TODO: Check if this still needed, perhaps relevant:
137137- # https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html#build_instructions_unix_arm
138170 patches = [
139139- # Disable tests that fail in the sandbox
171171+ # Disable tests that fail in the sandbox, last checked at version 4.6.0.0
140172 ./no-adapter-tests.patch
141173 ];
142174143143- postPhases = [ "installFirmware" "removeInstalledTests" ]
144144- ++ optionals (enableUtils && stdenv.hostPlatform.isLinux) [ "moveUdevRules" ]
145145- ;
175175+ postPhases = [
176176+ "installFirmware"
177177+ "removeInstalledTests"
178178+ ] ++ optionals (enableUtils && stdenv.hostPlatform.isLinux) [
179179+ "moveUdevRules"
180180+ ];
146181147182 # UHD expects images in `$CMAKE_INSTALL_PREFIX/share/uhd/images`
148183 installFirmware = ''
···162197 mv $out/lib/uhd/utils/uhd-usrp.rules $out/lib/udev/rules.d/
163198 '';
164199200200+ # Wrap the python utilities with our pythonPath definition
201201+ postFixup = lib.optionalString (enablePythonApi && enableUtils) ''
202202+ wrapPythonPrograms
203203+ '';
165204 disallowedReferences = optionals (!enablePythonApi && !enableUtils) [
166205 python3
167206 ];
···11-diff --git a/source/thirdparty/breakpad/src/client/linux/handler/exception_handler.cc b/source/thirdparty/breakpad/src/client/linux/handler/exception_handler.cc
22-index ca353c4099..499be0a986 100644
33---- a/source/thirdparty/breakpad/src/client/linux/handler/exception_handler.cc
44-+++ b/source/thirdparty/breakpad/src/client/linux/handler/exception_handler.cc
55-@@ -138,7 +138,7 @@ void InstallAlternateStackLocked() {
66- // SIGSTKSZ may be too small to prevent the signal handlers from overrunning
77- // the alternative stack. Ensure that the size of the alternative stack is
88- // large enough.
99-- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
1010-+ const unsigned kSigStackSize = std::max<unsigned>(16384, SIGSTKSZ);
1111-1212- // Only set an alternative stack if there isn't already one, or if the current
1313- // one is too small.
···11-Starting from go1.14, go verifes that vendor/modules.txt matches the requirements
22-and replacements listed in the main module go.mod file, and it is a hard failure if
33-vendor/modules.txt is missing.
44-55-Relax module consistency checks and switch back to pre go1.14 behaviour if
66-vendor/modules.txt is missing regardless of go version requirement in go.mod.
77-88-This has been ported from FreeBSD: https://reviews.freebsd.org/D24122
99-See https://github.com/golang/go/issues/37948 for discussion.
1010-1111-diff --git a/src/cmd/go/internal/modload/vendor.go b/src/cmd/go/internal/modload/vendor.go
1212-index d8fd91f1fe..8bc08e6fed 100644
1313---- a/src/cmd/go/internal/modload/vendor.go
1414-+++ b/src/cmd/go/internal/modload/vendor.go
1515-@@ -133,7 +133,7 @@ func checkVendorConsistency() {
1616- readVendorList()
1717-1818- pre114 := false
1919-- if semver.Compare(index.goVersionV, "v1.14") < 0 {
2020-+ if semver.Compare(index.goVersionV, "v1.14") < 0 || (os.Getenv("GO_NO_VENDOR_CHECKS") == "1" && len(vendorMeta) == 0) {
2121- // Go versions before 1.14 did not include enough information in
2222- // vendor/modules.txt to check for consistency.
2323- // If we know that we're on an earlier version, relax the consistency check.