Merge staging-next into staging

authored by nixpkgs-ci[bot] and committed by GitHub 47137a11 3a3a2ba9

+368 -100
+56
nixos/doc/manual/development/writing-nixos-tests.section.md
··· 275 275 276 276 In that case, `numpy` is chosen from the generic `python3Packages`. 277 277 278 + ## Overriding a test {#sec-override-nixos-test} 279 + 280 + The NixOS test framework returns tests with multiple overriding methods. 281 + 282 + `overrideTestDerivation` *function* 283 + : Like applying `overrideAttrs` on the [test](#test-opt-test) derivation. 284 + 285 + This is a convenience for `extend` with an override on the [`rawTestDerivationArg`](#test-opt-rawTestDerivationArg) option. 286 + 287 + *function* 288 + : An extension function, e.g. `finalAttrs: prevAttrs: { /* … */ }`, the result of which is passed to [`mkDerivation`](https://nixos.org/manual/nixpkgs/stable/#sec-using-stdenv). 289 + Just as with `overrideAttrs`, an abbreviated form can be used, e.g. `prevAttrs: { /* … */ }` or even `{ /* … */ }`. 290 + See [`lib.extends`](https://nixos.org/manual/nixpkgs/stable/#function-library-lib.fixedPoints.extends). 291 + 292 + `extendNixOS { module = ` *module* `; specialArgs = ` *specialArgs* `; }` 293 + : Evaluates the test with additional NixOS modules and/or arguments. 294 + 295 + `module` 296 + : A NixOS module to add to all the nodes in the test. Sets test option [`extraBaseModules`](#test-opt-extraBaseModules). 297 + 298 + `specialArgs` 299 + : An attribute set of arguments to pass to all NixOS modules. These override the existing arguments, as well as any `_module.args.<name>` that the modules may define. Sets test option [`node.specialArgs`](#test-opt-node.specialArgs). 300 + 301 + This is a convenience function for `extend` that overrides the aforementioned test options. 302 + 303 + :::{.example #ex-nixos-test-extendNixOS} 304 + 305 + # Using extendNixOS in `passthru.tests` to make `(openssh.tests.overrideAttrs f).tests.nixos` coherent 306 + 307 + ```nix 308 + mkDerivation (finalAttrs: { 309 + # … 310 + passthru = { 311 + tests = { 312 + nixos = nixosTests.openssh.extendNixOS { 313 + module = { 314 + services.openssh.package = finalAttrs.finalPackage; 315 + }; 316 + }; 317 + }; 318 + }; 319 + }) 320 + ``` 321 + ::: 322 + 323 + `extend { modules = ` *modules* `; specialArgs = ` *specialArgs* `; }` 324 + : Adds new `nixosTest` modules and/or module arguments to the test, which are evaluated together with the existing modules and [built-in options](#sec-test-options-reference). 325 + 326 + If you're only looking to extend the _NixOS_ configurations of the test, and not something else about the test, you may use the `extendNixOS` convenience function instead. 327 + 328 + `modules` 329 + : A list of modules to add to the test. These are added to the existing modules and then [evaluated](https://nixos.org/manual/nixpkgs/stable/index.html#module-system-lib-evalModules) together. 330 + 331 + `specialArgs` 332 + : An attribute of arguments to pass to the test. These override the existing arguments, as well as any `_module.args.<name>` that the modules may define. See [`evalModules`/`specialArgs`](https://nixos.org/manual/nixpkgs/stable/#module-system-lib-evalModules-param-specialArgs). 333 + 278 334 ## Test Options Reference {#sec-test-options-reference} 279 335 280 336 The following options can be used when writing tests.
+9
nixos/doc/manual/redirects.json
··· 1 1 { 2 + "sec-override-nixos-test": [ 3 + "index.html#sec-override-nixos-test" 4 + ], 5 + "test-opt-rawTestDerivationArg": [ 6 + "index.html#test-opt-rawTestDerivationArg" 7 + ], 8 + "ex-nixos-test-extendNixOS": [ 9 + "index.html#ex-nixos-test-extendNixOS" 10 + ], 2 11 "book-nixos-manual": [ 3 12 "index.html#book-nixos-manual" 4 13 ],
+2
nixos/doc/manual/release-notes/rl-2511.section.md
··· 112 112 113 113 - `services.ntpd-rs` now performs configuration validation. 114 114 115 + - `services.monero` now includes the `environmentFile` option for adding secrets to the Monero daemon config. 116 + 115 117 - `amdgpu` kernel driver overdrive mode can now be enabled by setting [hardware.amdgpu.overdrive.enable](#opt-hardware.amdgpu.overdrive.enable) and customized through [hardware.amdgpu.overdrive.ppfeaturemask](#opt-hardware.amdgpu.overdrive.ppfeaturemask). 116 118 This allows for fine-grained control over the GPU's performance and maybe required by overclocking softwares like Corectrl and Lact. These new options replace old options such as {option}`programs.corectrl.gpuOverclock.enable` and {option}`programs.tuxclocker.enableAMD`. 117 119
+31 -1
nixos/lib/testing/call-test.nix
··· 1 - { config, lib, ... }: 1 + { 2 + config, 3 + extendModules, 4 + lib, 5 + ... 6 + }: 2 7 let 3 8 inherit (lib) mkOption types; 9 + 10 + unsafeGetAttrPosStringOr = 11 + default: name: value: 12 + let 13 + p = builtins.unsafeGetAttrPos name value; 14 + in 15 + if p == null then default else p.file + ":" + toString p.line + ":" + toString p.column; 16 + 4 17 in 5 18 { 6 19 options = { ··· 8 21 internal = true; 9 22 default = config; 10 23 }; 24 + }; 25 + config = { 26 + # Docs: nixos/doc/manual/development/writing-nixos-tests.section.md 27 + /** 28 + See https://nixos.org/manual/nixos/unstable#sec-override-nixos-test 29 + */ 30 + passthru.extend = 31 + args@{ 32 + modules, 33 + specialArgs ? { }, 34 + }: 35 + (extendModules { 36 + inherit specialArgs; 37 + modules = map (lib.setDefaultModuleLocation ( 38 + unsafeGetAttrPosStringOr "<test.extend module>" "modules" args 39 + )) modules; 40 + }).config.test; 11 41 }; 12 42 }
+22
nixos/lib/testing/nodes.nix
··· 3 3 lib, 4 4 hostPkgs, 5 5 nodes, 6 + options, 6 7 ... 7 8 }: 8 9 ··· 72 73 testModuleArgs.config.extraBaseModules 73 74 ]; 74 75 }; 76 + 77 + # TODO (lib): Dedup with run.nix, add to lib/options.nix 78 + mkOneUp = opt: f: lib.mkOverride (opt.highestPrio - 1) (f opt.value); 75 79 76 80 in 77 81 ··· 232 236 } 233 237 )) 234 238 ]; 239 + 240 + # Docs: nixos/doc/manual/development/writing-nixos-tests.section.md 241 + /** 242 + See https://nixos.org/manual/nixos/unstable#sec-override-nixos-test 243 + */ 244 + passthru.extendNixOS = 245 + { 246 + module, 247 + specialArgs ? { }, 248 + }: 249 + config.passthru.extend { 250 + modules = [ 251 + { 252 + extraBaseModules = module; 253 + node.specialArgs = mkOneUp options.node.specialArgs (_: specialArgs); 254 + } 255 + ]; 256 + }; 235 257 236 258 }; 237 259 }
+46 -2
nixos/lib/testing/run.nix
··· 2 2 config, 3 3 hostPkgs, 4 4 lib, 5 + options, 5 6 ... 6 7 }: 7 8 let 8 9 inherit (lib) types mkOption; 10 + 11 + # TODO (lib): Also use lib equivalent in nodes.nix 12 + /** 13 + Create a module system definition that overrides an existing option from a different module evaluation. 14 + 15 + Type: Option a -> (a -> a) -> Definition a 16 + */ 17 + mkOneUp = 18 + /** 19 + Option from an existing module evaluation, e.g. 20 + - `(lib.evalModules ...).options.x` when invoking `evalModules` again, 21 + - or `{ options, ... }:` when invoking `extendModules`. 22 + */ 23 + opt: 24 + /** 25 + Function from the old value to the new definition, which will be wrapped with `mkOverride`. 26 + */ 27 + f: 28 + lib.mkOverride (opt.highestPrio - 1) (f opt.value); 29 + 9 30 in 10 31 { 11 32 options = { ··· 30 51 internal = true; 31 52 }; 32 53 54 + rawTestDerivationArg = mkOption { 55 + type = types.functionTo types.raw; 56 + description = '' 57 + Argument passed to `mkDerivation` to create the `rawTestDerivation`. 58 + ''; 59 + }; 60 + 33 61 test = mkOption { 34 62 type = types.package; 35 63 # TODO: can the interactive driver be configured to access the network? ··· 43 71 }; 44 72 45 73 config = { 46 - rawTestDerivation = 74 + rawTestDerivation = hostPkgs.stdenv.mkDerivation config.rawTestDerivationArg; 75 + rawTestDerivationArg = 76 + finalAttrs: 47 77 assert lib.assertMsg (!config.sshBackdoor.enable) 48 78 "The SSH backdoor is currently not supported for non-interactive testing! Please make sure to only set `interactive.sshBackdoor.enable = true;`!"; 49 - hostPkgs.stdenv.mkDerivation { 79 + { 50 80 name = "vm-test-run-${config.name}"; 51 81 52 82 requiredSystemFeatures = ··· 75 105 76 106 # useful for inspection (debugging / exploration) 77 107 passthru.config = config; 108 + 109 + # Docs: nixos/doc/manual/development/writing-nixos-tests.section.md 110 + /** 111 + See https://nixos.org/manual/nixos/unstable#sec-override-nixos-test 112 + */ 113 + passthru.overrideTestDerivation = 114 + f: 115 + config.passthru.extend { 116 + modules = [ 117 + { 118 + rawTestDerivationArg = mkOneUp options.rawTestDerivationArg (lib.extends (lib.toExtension f)); 119 + } 120 + ]; 121 + }; 78 122 }; 79 123 }
+10 -3
nixos/modules/services/network-filesystems/kubo.nix
··· 161 161 autoMount = lib.mkOption { 162 162 type = lib.types.bool; 163 163 default = false; 164 - description = "Whether Kubo should try to mount /ipfs and /ipns at startup."; 164 + description = "Whether Kubo should try to mount /ipfs, /ipns and /mfs at startup."; 165 165 }; 166 166 167 167 autoMigrate = lib.mkOption { ··· 236 236 default = "/ipns"; 237 237 description = "Where to mount the IPNS namespace to"; 238 238 }; 239 + 240 + Mounts.MFS = lib.mkOption { 241 + type = lib.types.str; 242 + default = "/mfs"; 243 + description = "Where to mount the MFS namespace to"; 244 + }; 239 245 }; 240 246 }; 241 247 description = '' ··· 356 362 ${cfg.dataDir}.d = defaultConfig; 357 363 ${cfg.settings.Mounts.IPFS}.d = lib.mkIf (cfg.autoMount) defaultConfig; 358 364 ${cfg.settings.Mounts.IPNS}.d = lib.mkIf (cfg.autoMount) defaultConfig; 365 + ${cfg.settings.Mounts.MFS}.d = lib.mkIf (cfg.autoMount) defaultConfig; 359 366 }; 360 367 361 368 # The hardened systemd unit breaks the fuse-mount function according to documentation in the unit file itself ··· 401 408 ipfs --offline config replace - 402 409 ''; 403 410 postStop = lib.mkIf cfg.autoMount '' 404 - # After an unclean shutdown the fuse mounts at cfg.settings.Mounts.IPFS and cfg.settings.Mounts.IPNS are locked 405 - umount --quiet '${cfg.settings.Mounts.IPFS}' '${cfg.settings.Mounts.IPNS}' || true 411 + # After an unclean shutdown the fuse mounts at cfg.settings.Mounts.IPFS, cfg.settings.Mounts.IPNS and cfg.settings.Mounts.MFS are locked 412 + umount --quiet '${cfg.settings.Mounts.IPFS}' '${cfg.settings.Mounts.IPNS}' '${cfg.settings.Mounts.MFS}' || true 406 413 ''; 407 414 serviceConfig = { 408 415 ExecStart = [
+33 -1
nixos/modules/services/networking/monero.nix
··· 226 226 ''; 227 227 }; 228 228 229 + environmentFile = lib.mkOption { 230 + type = lib.types.nullOr lib.types.path; 231 + default = null; 232 + example = "/var/lib/monero/monerod.env"; 233 + description = '' 234 + Path to an EnvironmentFile for the monero service as defined in {manpage}`systemd.exec(5)`. 235 + 236 + Secrets may be passed to the service by specifying placeholder variables in the Nix config 237 + and setting values in the environment file. 238 + 239 + Example: 240 + 241 + ``` 242 + # In environment file: 243 + MINING_ADDRESS=888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H 244 + ``` 245 + 246 + ``` 247 + # Service config 248 + services.monero.mining.address = "$MINING_ADDRESS"; 249 + ``` 250 + ''; 251 + }; 252 + 229 253 extraConfig = lib.mkOption { 230 254 type = lib.types.lines; 231 255 default = ""; ··· 257 281 after = [ "network.target" ]; 258 282 wantedBy = [ "multi-user.target" ]; 259 283 284 + preStart = '' 285 + umask 077 286 + ${pkgs.envsubst}/bin/envsubst \ 287 + -i ${configFile} \ 288 + -o ${cfg.dataDir}/monerod.conf 289 + ''; 290 + 260 291 serviceConfig = { 261 292 User = "monero"; 262 293 Group = "monero"; 263 - ExecStart = "${lib.getExe' pkgs.monero-cli "monerod"} --config-file=${configFile} --non-interactive"; 294 + EnvironmentFile = lib.mkIf (cfg.environmentFile != null) [ cfg.environmentFile ]; 295 + ExecStart = "${lib.getExe' pkgs.monero-cli "monerod"} --config-file=${cfg.dataDir}/monerod.conf --non-interactive"; 264 296 Restart = "always"; 265 297 SuccessExitStatus = [ 266 298 0
+38 -5
nixos/tests/kubo/kubo-fuse.nix
··· 27 27 testScript = '' 28 28 start_all() 29 29 30 - with subtest("FUSE mountpoint"): 31 - machine.fail("echo a | su bob -l -c 'ipfs add --quieter'") 30 + with subtest("Create a file for testing"): 31 + machine.succeed("echo 'fnord3' > /tmp/test.txt") 32 + 33 + 34 + with subtest("/ipfs/ FUSE mountpoint"): 35 + machine.fail("su bob -l -c 'ipfs add --quieter' < /tmp/test.txt") 32 36 # The FUSE mount functionality is broken as of v0.13.0. This is still the case with v0.29.0. 33 37 # See https://github.com/ipfs/kubo/issues/9044. 34 38 # Workaround: using CID Version 1 avoids that. ··· 36 40 "echo fnord3 | su alice -l -c 'ipfs add --quieter --cid-version=1'" 37 41 ).strip() 38 42 39 - machine.succeed(f"cat /ipfs/{ipfs_hash} | grep fnord3") 43 + machine.succeed(f"diff /tmp/test.txt /ipfs/{ipfs_hash}") 44 + 45 + 46 + with subtest("/mfs/ FUSE mountpoint"): 47 + with subtest("Write the test file in three different ways"): 48 + machine.succeed("cp /tmp/test.txt /mfs/test-1.txt") 49 + machine.succeed("su alice -c 'ipfs files write --create /test-2.txt < /tmp/test.txt'") 50 + machine.succeed(f"ipfs files cp /ipfs/{ipfs_hash} /test-3.txt") 51 + 52 + with subtest("Show the files (for debugging)"): 53 + # Different hashes for the different ways of adding the file to the MFS probably come from different linking structures of the merkle tree. Copying the file to /mfs with `cp` is even non-deterministic. 54 + machine.succeed("ipfs files ls --long >&2") 55 + machine.succeed("ls -l /mfs >&2") 56 + 57 + with subtest("Check that everyone has permission to read the file (because of Mounts.FuseAllowOther)"): 58 + machine.succeed("su alice -c 'cat /mfs/test-1.txt' | grep fnord3") 59 + machine.succeed("su bob -c 'cat /mfs/test-1.txt' | grep fnord3") 60 + 61 + with subtest("Check the file contents"): 62 + machine.succeed("diff /tmp/test.txt /mfs/test-1.txt") 63 + machine.succeed("diff /tmp/test.txt /mfs/test-2.txt") 64 + machine.succeed("diff /tmp/test.txt /mfs/test-3.txt") 65 + 66 + with subtest("Check the CID extended attribute"): 67 + output = machine.succeed( 68 + "getfattr --only-values --name=ipfs_cid /mfs/test-3.txt" 69 + ).strip() 70 + assert ipfs_hash == output, f"Expected {ipfs_hash} but got {output}" 40 71 41 - with subtest("Unmounting of /ipns and /ipfs"): 72 + 73 + with subtest("Unmounting of /ipns, /ipfs and /mfs"): 42 74 # Force Kubo to crash and wait for it to restart 43 75 machine.systemctl("kill --signal=SIGKILL ipfs.service") 44 76 machine.wait_for_unit("ipfs.service", timeout = 30) 45 77 46 - machine.succeed(f"cat /ipfs/{ipfs_hash} | grep fnord3") 78 + machine.succeed(f"diff /tmp/test.txt /ipfs/{ipfs_hash}") 79 + machine.succeed("diff /tmp/test.txt /mfs/test-3.txt") 47 80 ''; 48 81 }
+39 -18
pkgs/build-support/testers/test/default.nix
··· 30 30 __structuredAttrs = enable; 31 31 }); 32 32 }); 33 + runNixOSTest-example = pkgs-with-overlay.testers.runNixOSTest ( 34 + { lib, ... }: 35 + { 36 + name = "runNixOSTest-test"; 37 + nodes.machine = 38 + { pkgs, ... }: 39 + { 40 + system.nixos = dummyVersioning; 41 + environment.systemPackages = [ 42 + pkgs.proof-of-overlay-hello 43 + pkgs.figlet 44 + ]; 45 + }; 46 + testScript = '' 47 + machine.succeed("hello | figlet >/dev/console") 48 + ''; 49 + } 50 + ); 33 51 34 52 in 35 53 lib.recurseIntoAttrs { ··· 66 84 }; 67 85 }; 68 86 69 - runNixOSTest-example = pkgs-with-overlay.testers.runNixOSTest ( 70 - { lib, ... }: 71 - { 72 - name = "runNixOSTest-test"; 73 - nodes.machine = 74 - { pkgs, ... }: 75 - { 76 - system.nixos = dummyVersioning; 77 - environment.systemPackages = [ 78 - pkgs.proof-of-overlay-hello 79 - pkgs.figlet 80 - ]; 81 - }; 82 - testScript = '' 83 - machine.succeed("hello | figlet >/dev/console") 84 - ''; 85 - } 86 - ); 87 + inherit runNixOSTest-example; 88 + 89 + runNixOSTest-extendNixOS = 90 + let 91 + t = runNixOSTest-example.extendNixOS { 92 + module = 93 + { hi, lib, ... }: 94 + { 95 + config = { 96 + assertions = [ { assertion = hi; } ]; 97 + }; 98 + options = { 99 + itsProofYay = lib.mkOption { }; 100 + }; 101 + }; 102 + specialArgs.hi = true; 103 + }; 104 + in 105 + assert lib.isDerivation t; 106 + assert t.nodes.machine ? itsProofYay; 107 + t; 87 108 88 109 # Check that the wiring of nixosTest is correct. 89 110 # Correct operation of the NixOS test driver should be asserted elsewhere.
+17 -22
pkgs/by-name/fr/freecad/package.nix
··· 23 23 pkg-config, 24 24 python3Packages, 25 25 spaceNavSupport ? stdenv.hostPlatform.isLinux, 26 - ifcSupport ? false, 27 26 stdenv, 28 27 swig, 29 28 vtk, ··· 35 34 nix-update-script, 36 35 }: 37 36 let 38 - pythonDeps = 39 - with python3Packages; 40 - [ 41 - boost 42 - gitpython # for addon manager 43 - matplotlib 44 - opencamlib 45 - pivy 46 - ply # for openSCAD file support 47 - py-slvs 48 - pybind11 49 - pycollada 50 - pyside6 51 - python 52 - pyyaml # (at least for) PyrateWorkbench 53 - scipy 54 - shiboken6 55 - ] 56 - ++ lib.optionals ifcSupport [ 57 - ifcopenshell 58 - ]; 37 + pythonDeps = with python3Packages; [ 38 + boost 39 + gitpython # for addon manager 40 + ifcopenshell 41 + matplotlib 42 + opencamlib 43 + pivy 44 + ply # for openSCAD file support 45 + py-slvs 46 + pybind11 47 + pycollada 48 + pyside6 49 + python 50 + pyyaml # (at least for) PyrateWorkbench 51 + scipy 52 + shiboken6 53 + ]; 59 54 60 55 freecad-utils = callPackage ./freecad-utils.nix { }; 61 56 in
-2
pkgs/by-name/fr/freecad/tests/default.nix
··· 1 1 { 2 2 callPackage, 3 - freecad, 4 3 }: 5 4 { 6 5 python-path = callPackage ./python-path.nix { }; 7 6 modules = callPackage ./modules.nix { }; 8 - withIfcSupport = freecad.override { ifcSupport = true; }; 9 7 }
+2 -2
pkgs/by-name/ku/kubo/package.nix
··· 8 8 9 9 buildGoModule rec { 10 10 pname = "kubo"; 11 - version = "0.34.1"; # When updating, also check if the repo version changed and adjust repoVersion below 11 + version = "0.35.0"; # When updating, also check if the repo version changed and adjust repoVersion below 12 12 rev = "v${version}"; 13 13 14 14 passthru.repoVersion = "16"; # Also update kubo-migrator when changing the repo version ··· 16 16 # Kubo makes changes to its source tarball that don't match the git source. 17 17 src = fetchurl { 18 18 url = "https://github.com/ipfs/kubo/releases/download/${rev}/kubo-source.tar.gz"; 19 - hash = "sha256-wrAnmPfls7LFO3gQBISSmn4ucuUVmzvYEoz+eVc/A5M="; 19 + hash = "sha256-OubXaa2JWbEaakDV6pExm5PkiZ5XPd9uG+S4KwWb0xQ="; 20 20 }; 21 21 22 22 # tarball contains multiple files/directories
+3 -3
pkgs/by-name/re/renovate/package.nix
··· 15 15 16 16 stdenv.mkDerivation (finalAttrs: { 17 17 pname = "renovate"; 18 - version = "41.16.0"; 18 + version = "41.21.3"; 19 19 20 20 src = fetchFromGitHub { 21 21 owner = "renovatebot"; 22 22 repo = "renovate"; 23 23 tag = finalAttrs.version; 24 - hash = "sha256-hMcGK89YIqYCA201f+fxorHA3sseDL3nZTjH/90/JGQ="; 24 + hash = "sha256-np21ghEbfaM7Z4ETmrAWUjrauQOf5FW+krl156UB2Ek="; 25 25 }; 26 26 27 27 postPatch = '' ··· 39 39 40 40 pnpmDeps = pnpm_10.fetchDeps { 41 41 inherit (finalAttrs) pname version src; 42 - hash = "sha256-VF2fq6o4O5Ua+98PJ1d+vj5W8TMYL4ks3ekf27eQmIY="; 42 + hash = "sha256-XOlFJFFyzbx8Bg92HXhVFFCI51j2GUK7+LJKfqVOQyU="; 43 43 }; 44 44 45 45 env.COREPACK_ENABLE_STRICT = 0;
+4 -4
pkgs/by-name/ti/tideways-daemon/package.nix
··· 10 10 11 11 stdenvNoCC.mkDerivation (finalAttrs: { 12 12 pname = "tideways-daemon"; 13 - version = "1.9.40"; 13 + version = "1.9.44"; 14 14 15 15 src = 16 16 finalAttrs.passthru.sources.${stdenvNoCC.hostPlatform.system} ··· 28 28 sources = { 29 29 "x86_64-linux" = fetchurl { 30 30 url = "https://tideways.s3.amazonaws.com/daemon/${finalAttrs.version}/tideways-daemon_linux_amd64-${finalAttrs.version}.tar.gz"; 31 - hash = "sha256-6U6Vq908tJmR4JzZlbK/qjlfCl/iWrCIOJNvUh0Xvag="; 31 + hash = "sha256-JzsSyUqKuH4msdSqN+rFdfrnNvlkFFFmspfpYLsiRZc="; 32 32 }; 33 33 "aarch64-linux" = fetchurl { 34 34 url = "https://tideways.s3.amazonaws.com/daemon/${finalAttrs.version}/tideways-daemon_linux_aarch64-${finalAttrs.version}.tar.gz"; 35 - hash = "sha256-2Yq2HvQoBPPDvEyZPjwyTjjc/bb4+zOrwknqHUnZsjc="; 35 + hash = "sha256-1nE61XHqnycMgjvjKIZnbgVSak0HYOIUHgF67RjcJi8="; 36 36 }; 37 37 "aarch64-darwin" = fetchurl { 38 38 url = "https://tideways.s3.amazonaws.com/daemon/${finalAttrs.version}/tideways-daemon_macos_arm64-${finalAttrs.version}.tar.gz"; 39 - hash = "sha256-ab7ZAUYH4Em6KuE/VlVLItf3N0yMvIRuJnf7vOGDGsY="; 39 + hash = "sha256-4KwUsFK3G73hGiVGqF1sAOv7gEjqJXSAj99wLyHE+qM="; 40 40 }; 41 41 }; 42 42 updateScript = "${
+2 -2
pkgs/development/python-modules/app-model/default.nix
··· 15 15 16 16 buildPythonPackage rec { 17 17 pname = "app-model"; 18 - version = "0.3.1"; 18 + version = "0.4.0"; 19 19 pyproject = true; 20 20 21 21 disabled = pythonOlder "3.9"; ··· 24 24 owner = "pyapp-kit"; 25 25 repo = "app-model"; 26 26 tag = "v${version}"; 27 - hash = "sha256-bIqcbKjAj5TMZD9mZ+7G4q+sR0aRqn6E4hf99srgRIE="; 27 + hash = "sha256-T7aUwdne1rUzhVRotlxDvEBm3mi/frUQziZdLo53Lsg="; 28 28 }; 29 29 30 30 build-system = [
+10 -8
pkgs/development/python-modules/limits/default.nix
··· 27 27 28 28 buildPythonPackage rec { 29 29 pname = "limits"; 30 - version = "5.2.0"; 30 + version = "5.4.0"; 31 31 pyproject = true; 32 - 33 - disabled = pythonOlder "3.8"; 34 32 35 33 src = fetchFromGitHub { 36 34 owner = "alisaifee"; ··· 39 37 # Upstream uses versioneer, which relies on git attributes substitution. 40 38 # This leads to non-reproducible archives on github. Remove the substituted 41 39 # file here, and recreate it later based on our version info. 40 + hash = "sha256-EHLqkd5Muazr52/oYaLklFVvF+AzJWGbFaaIG+T0ulE="; 42 41 postFetch = '' 43 42 rm "$out/limits/_version.py" 44 43 ''; 45 - hash = "sha256-0D44XaSZtebMnn9mqXbaE7FB7usdu/eZ/4UE3Ye0oyA="; 46 44 }; 47 45 48 46 patches = [ ··· 102 100 103 101 pytestFlagsArray = [ "--benchmark-disable" ]; 104 102 105 - disabledTests = [ "test_moving_window_memcached" ]; 103 + disabledTests = [ 104 + "test_moving_window_memcached" 105 + # Flaky: compares time to magic value 106 + "test_sliding_window_counter_previous_window" 107 + ]; 106 108 107 109 pythonImportsCheck = [ "limits" ]; 108 110 109 - meta = with lib; { 111 + meta = { 110 112 description = "Rate limiting using various strategies and storage backends such as redis & memcached"; 111 113 homepage = "https://github.com/alisaifee/limits"; 112 114 changelog = "https://github.com/alisaifee/limits/releases/tag/${src.tag}"; 113 - license = licenses.mit; 114 - maintainers = [ ]; 115 + license = lib.licenses.mit; 116 + maintainers = with lib.maintainers; [ sarahec ]; 115 117 }; 116 118 }
+2 -2
pkgs/development/python-modules/napari/default.nix
··· 45 45 46 46 mkDerivationWith buildPythonPackage rec { 47 47 pname = "napari"; 48 - version = "0.6.1"; 48 + version = "0.6.2"; 49 49 pyproject = true; 50 50 51 51 src = fetchFromGitHub { 52 52 owner = "napari"; 53 53 repo = "napari"; 54 54 tag = "v${version}"; 55 - hash = "sha256-qgyhoxXROlm+DASJV2QOA1IqpHxPhsIEv+TGU2mhiuc="; 55 + hash = "sha256-p6deNHnlvgZXV3Ym3OADC44j5bOkMDjlmM2N3yE5GxE="; 56 56 }; 57 57 58 58 postPatch = ''
+23 -11
pkgs/development/python-modules/valkey/default.nix
··· 1 1 { 2 2 lib, 3 + stdenv, 3 4 fetchFromGitHub, 4 5 buildPythonPackage, 5 6 pythonOlder, ··· 31 32 pname = "valkey"; 32 33 version = "6.1.0"; 33 34 pyproject = true; 34 - 35 - disabled = pythonOlder "3.7"; 36 35 37 36 src = fetchFromGitHub { 38 37 owner = "valkey-io"; ··· 78 77 79 78 pytestFlagsArray = [ "-m 'not onlycluster and not ssl'" ]; 80 79 81 - disabledTests = [ 82 - # valkey.sentinel.MasterNotFoundError: No master found for 'valkey-py-test' 83 - "test_get_from_cache" 84 - "test_cache_decode_response" 85 - # Expects another valkey instance on port 6380 *shrug* 86 - "test_psync" 80 + disabledTests = 81 + [ 82 + # valkey.sentinel.MasterNotFoundError: No master found for 'valkey-py-test' 83 + "test_get_from_cache" 84 + "test_cache_decode_response" 85 + # Expects another valkey instance on port 6380 *shrug* 86 + "test_psync" 87 + ] 88 + ++ lib.optionals stdenv.hostPlatform.isDarwin [ 89 + # OSError: AF_UNIX path too long 90 + "test_uds_connect" 91 + "test_network_connection_failure" 92 + ]; 93 + 94 + disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [ 95 + # AttributeError: Can't get local object 'TestMultiprocessing.test_valkey_client.<locals>.target' 96 + "tests/test_multiprocessing.py" 87 97 ]; 88 98 89 - meta = with lib; { 99 + __darwinAllowLocalNetworking = true; 100 + 101 + meta = { 90 102 description = "Python client for Redis key-value store"; 91 103 homepage = "https://github.com/valkey-io/valkey-py"; 92 104 changelog = "https://github.com/valkey-io/valkey-py/releases/tag/${src.tag}"; 93 - license = with licenses; [ mit ]; 94 - maintainers = with maintainers; [ hexa ]; 105 + license = lib.licenses.mit; 106 + maintainers = with lib.maintainers; [ hexa ]; 95 107 }; 96 108 }
+7
pkgs/os-specific/linux/kernel/common-config.nix
··· 435 435 ATH10K_DFS_CERTIFIED = option yes; 436 436 B43_PHY_HT = option yes; 437 437 BCMA_HOST_PCI = option yes; 438 + 439 + # Enable "untested" hardware support for RTL8xxxU. 440 + # There's a bunch of those still floating around, 441 + # and given how old the hardware is, we're unlikely 442 + # to kill any, so let's enable all known device IDs. 443 + RTL8XXXU_UNTESTED = option yes; 444 + 438 445 RTW88 = module; 439 446 RTW88_8822BE = lib.mkMerge [ 440 447 (whenOlder "5.8" yes)
+10 -10
pkgs/os-specific/linux/kernel/kernels-org.json
··· 1 1 { 2 2 "testing": { 3 - "version": "6.16-rc3", 4 - "hash": "sha256:04inkd3aqpikjarxy3lxzw2v2f45mnfzlq82r8mdsm23lkn68glr" 3 + "version": "6.16-rc4", 4 + "hash": "sha256:1h66i51d8m4zwbrxh7xayvqsnkrzj5wipf7rm8szyqmf86isjkpi" 5 5 }, 6 6 "6.1": { 7 - "version": "6.1.142", 8 - "hash": "sha256:1am31xw70sbxzdnvj70fx9l946nadcbrc7qk2yxxssy96nhnxlnw" 7 + "version": "6.1.143", 8 + "hash": "sha256:02ivq22hv42bcnssfpkkbqlhz1by9jrfrqlrz1wi0svysz2dlnz2" 9 9 }, 10 10 "5.15": { 11 11 "version": "5.15.186", ··· 20 20 "hash": "sha256:1adn0pbk8y1zp1yrz83ch6h4wypm2qvbnx4xig3sls2nfgvmi0f4" 21 21 }, 22 22 "6.6": { 23 - "version": "6.6.95", 24 - "hash": "sha256:11gaczm68mqm72f3mfg656nkiqd9y66kf943hvwghln9lblhlr0q" 23 + "version": "6.6.96", 24 + "hash": "sha256:1p8v49w7z8w3wc68mbw46cz9xqrllc8cpa7nqlm2xnrssi1mir4y" 25 25 }, 26 26 "6.12": { 27 - "version": "6.12.35", 28 - "hash": "sha256:0j577lqmzbzx45gxvxirx627pv6cbhq9slzb50rqqmyy3nqf1x05" 27 + "version": "6.12.36", 28 + "hash": "sha256:135s057ya63zw4v1jr9lzjdxk60ahr9v38hbv6nima755pnql5ja" 29 29 }, 30 30 "6.15": { 31 - "version": "6.15.4", 32 - "hash": "sha256:05psir6p8x5a89d9kxkxlv5iifln67yf803xj5rqvx82nqkxdbqf" 31 + "version": "6.15.5", 32 + "hash": "sha256:1dc8qrwvvy34s5lgm43j295ipwaqm8wd8x4qchr14hqlkj9hg9rc" 33 33 } 34 34 }
-2
pkgs/os-specific/linux/kernel/manual-config.nix
··· 3 3 stdenv, 4 4 buildPackages, 5 5 runCommand, 6 - net-tools, 7 6 bc, 8 7 bison, 9 8 flex, ··· 214 213 flex 215 214 perl 216 215 bc 217 - net-tools 218 216 openssl 219 217 rsync 220 218 gmp
+2 -2
pkgs/tools/security/tor/default.nix
··· 50 50 in 51 51 stdenv.mkDerivation rec { 52 52 pname = "tor"; 53 - version = "0.4.8.16"; 53 + version = "0.4.8.17"; 54 54 55 55 src = fetchurl { 56 56 url = "https://dist.torproject.org/${pname}-${version}.tar.gz"; 57 - sha256 = "sha256-ZUDdN3oSD7jn0nUwqjt/9yoPpbT2cP4dZMmHwc/TkMs="; 57 + sha256 = "sha256-ebRyXh1LiHueaP0JsNIkN3fVzjzUceU4WDvPb52M21Y="; 58 58 }; 59 59 60 60 outputs = [