Merge staging-next into staging

authored by github-actions[bot] and committed by GitHub af12e30a f5f0ba39

+423 -109
+10
nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
··· 390 include serif fonts. 391 </para> 392 </listitem> 393 </itemizedlist> 394 </section> 395 <section xml:id="sec-release-22.05-notable-changes">
··· 390 include serif fonts. 391 </para> 392 </listitem> 393 + <listitem> 394 + <para> 395 + The interface that allows activation scripts to restart units 396 + has been reworked. Restarting and reloading is now done by a 397 + single file 398 + <literal>/run/nixos/activation-restart-list</literal> that 399 + honors <literal>restartIfChanged</literal> and 400 + <literal>reloadIfChanged</literal> of the units. 401 + </para> 402 + </listitem> 403 </itemizedlist> 404 </section> 405 <section xml:id="sec-release-22.05-notable-changes">
+2
nixos/doc/manual/release-notes/rl-2205.section.md
··· 125 `pkgs.noto-fonts-cjk` is currently an alias of `pkgs.noto-fonts-cjk-sans` and 126 doesn't include serif fonts. 127 128 ## Other Notable Changes {#sec-release-22.05-notable-changes} 129 130 - The option [services.redis.servers](#opt-services.redis.servers) was added
··· 125 `pkgs.noto-fonts-cjk` is currently an alias of `pkgs.noto-fonts-cjk-sans` and 126 doesn't include serif fonts. 127 128 + - The interface that allows activation scripts to restart units has been reworked. Restarting and reloading is now done by a single file `/run/nixos/activation-restart-list` that honors `restartIfChanged` and `reloadIfChanged` of the units. 129 + 130 ## Other Notable Changes {#sec-release-22.05-notable-changes} 131 132 - The option [services.redis.servers](#opt-services.redis.servers) was added
+17 -1
nixos/modules/services/networking/adguardhome.nix
··· 87 }; 88 89 config = mkIf cfg.enable { 90 systemd.services.adguardhome = { 91 description = "AdGuard Home: Network-level blocker"; 92 after = [ "network.target" ]; ··· 96 StartLimitBurst = 10; 97 }; 98 99 - preStart = '' 100 if [ -e "$STATE_DIRECTORY/AdGuardHome.yaml" ] \ 101 && [ "${toString cfg.mutableSettings}" = "1" ]; then 102 # Writing directly to AdGuardHome.yaml results in empty file
··· 87 }; 88 89 config = mkIf cfg.enable { 90 + assertions = [ 91 + { 92 + assertion = cfg.settings != { } 93 + -> (hasAttrByPath [ "dns" "bind_host" ] cfg.settings) 94 + || (hasAttrByPath [ "dns" "bind_hosts" ] cfg.settings); 95 + message = 96 + "AdGuard setting dns.bind_host or dns.bind_hosts needs to be configured for a minimal working configuration"; 97 + } 98 + { 99 + assertion = cfg.settings != { } 100 + -> hasAttrByPath [ "dns" "bootstrap_dns" ] cfg.settings; 101 + message = 102 + "AdGuard setting dns.bootstrap_dns needs to be configured for a minimal working configuration"; 103 + } 104 + ]; 105 + 106 systemd.services.adguardhome = { 107 description = "AdGuard Home: Network-level blocker"; 108 after = [ "network.target" ]; ··· 112 StartLimitBurst = 10; 113 }; 114 115 + preStart = optionalString (cfg.settings != { }) '' 116 if [ -e "$STATE_DIRECTORY/AdGuardHome.yaml" ] \ 117 && [ "${toString cfg.mutableSettings}" = "1" ]; then 118 # Writing directly to AdGuardHome.yaml results in empty file
+1 -1
nixos/modules/services/networking/mosquitto.nix
··· 556 systemd.services.mosquitto = { 557 description = "Mosquitto MQTT Broker Daemon"; 558 wantedBy = [ "multi-user.target" ]; 559 - after = [ "network.target" ]; 560 serviceConfig = { 561 Type = "notify"; 562 NotifyAccess = "main";
··· 556 systemd.services.mosquitto = { 557 description = "Mosquitto MQTT Broker Daemon"; 558 wantedBy = [ "multi-user.target" ]; 559 + after = [ "network-online.target" ]; 560 serviceConfig = { 561 Type = "notify"; 562 NotifyAccess = "main";
+54 -18
nixos/modules/system/activation/switch-to-configuration.pl
··· 18 my $restartListFile = "/run/nixos/restart-list"; 19 my $reloadListFile = "/run/nixos/reload-list"; 20 21 - # Parse restart/reload requests by the activation script 22 my $restartByActivationFile = "/run/nixos/activation-restart-list"; 23 - my $reloadByActivationFile = "/run/nixos/activation-reload-list"; 24 my $dryRestartByActivationFile = "/run/nixos/dry-activation-restart-list"; 25 - my $dryReloadByActivationFile = "/run/nixos/dry-activation-reload-list"; 26 27 make_path("/run/nixos", { mode => oct(755) }); 28 ··· 382 } 383 384 my @unitsToStopFiltered = filterUnits(\%unitsToStop); 385 - my @unitsToStartFiltered = filterUnits(\%unitsToStart); 386 387 388 # Show dry-run actions. ··· 395 print STDERR "would activate the configuration...\n"; 396 system("$out/dry-activate", "$out"); 397 398 - $unitsToRestart{$_} = 1 foreach 399 - split('\n', read_file($dryRestartByActivationFile, err_mode => 'quiet') // ""); 400 401 - $unitsToReload{$_} = 1 foreach 402 - split('\n', read_file($dryReloadByActivationFile, err_mode => 'quiet') // ""); 403 404 print STDERR "would restart systemd\n" if $restartSystemd; 405 print STDERR "would reload the following units: ", join(", ", sort(keys %unitsToReload)), "\n" 406 if scalar(keys %unitsToReload) > 0; 407 print STDERR "would restart the following units: ", join(", ", sort(keys %unitsToRestart)), "\n" 408 if scalar(keys %unitsToRestart) > 0; 409 print STDERR "would start the following units: ", join(", ", @unitsToStartFiltered), "\n" 410 if scalar @unitsToStartFiltered; 411 - unlink($dryRestartByActivationFile); 412 - unlink($dryReloadByActivationFile); 413 exit 0; 414 } 415 ··· 433 system("$out/activate", "$out") == 0 or $res = 2; 434 435 # Handle the activation script requesting the restart or reload of a unit. 436 - # We can only restart and reload (not stop/start) because the units to be 437 - # stopped are already stopped before the activation script is run. 438 - $unitsToRestart{$_} = 1 foreach 439 - split('\n', read_file($restartByActivationFile, err_mode => 'quiet') // ""); 440 441 - $unitsToReload{$_} = 1 foreach 442 - split('\n', read_file($reloadByActivationFile, err_mode => 'quiet') // ""); 443 444 # Restart systemd if necessary. Note that this is done using the 445 # current version of systemd, just in case the new one has trouble ··· 480 print STDERR "reloading the following units: ", join(", ", sort(keys %unitsToReload)), "\n"; 481 system("@systemd@/bin/systemctl", "reload", "--", sort(keys %unitsToReload)) == 0 or $res = 4; 482 unlink($reloadListFile); 483 - unlink($reloadByActivationFile); 484 } 485 486 # Restart changed services (those that have to be restarted rather ··· 489 print STDERR "restarting the following units: ", join(", ", sort(keys %unitsToRestart)), "\n"; 490 system("@systemd@/bin/systemctl", "restart", "--", sort(keys %unitsToRestart)) == 0 or $res = 4; 491 unlink($restartListFile); 492 - unlink($restartByActivationFile); 493 } 494 495 # Start all active targets, as well as changed units we stopped above. ··· 498 # that are symlinks to other units. We shouldn't start both at the 499 # same time because we'll get a "Failed to add path to set" error from 500 # systemd. 501 print STDERR "starting the following units: ", join(", ", @unitsToStartFiltered), "\n" 502 if scalar @unitsToStartFiltered; 503 system("@systemd@/bin/systemctl", "start", "--", sort(keys %unitsToStart)) == 0 or $res = 4;
··· 18 my $restartListFile = "/run/nixos/restart-list"; 19 my $reloadListFile = "/run/nixos/reload-list"; 20 21 + # Parse restart/reload requests by the activation script. 22 + # Activation scripts may write newline-separated units to this 23 + # file and switch-to-configuration will handle them. While 24 + # `stopIfChanged = true` is ignored, switch-to-configuration will 25 + # handle `restartIfChanged = false` and `reloadIfChanged = true`. 26 my $restartByActivationFile = "/run/nixos/activation-restart-list"; 27 my $dryRestartByActivationFile = "/run/nixos/dry-activation-restart-list"; 28 29 make_path("/run/nixos", { mode => oct(755) }); 30 ··· 384 } 385 386 my @unitsToStopFiltered = filterUnits(\%unitsToStop); 387 388 389 # Show dry-run actions. ··· 396 print STDERR "would activate the configuration...\n"; 397 system("$out/dry-activate", "$out"); 398 399 + # Handle the activation script requesting the restart or reload of a unit. 400 + foreach (split('\n', read_file($dryRestartByActivationFile, err_mode => 'quiet') // "")) { 401 + my $unit = $_; 402 + my $baseUnit = $unit; 403 + my $newUnitFile = "$out/etc/systemd/system/$baseUnit"; 404 405 + # Detect template instances. 406 + if (!-e $newUnitFile && $unit =~ /^(.*)@[^\.]*\.(.*)$/) { 407 + $baseUnit = "$1\@.$2"; 408 + $newUnitFile = "$out/etc/systemd/system/$baseUnit"; 409 + } 410 + 411 + my $baseName = $baseUnit; 412 + $baseName =~ s/\.[a-z]*$//; 413 + 414 + # Start units if they were not active previously 415 + if (not defined $activePrev->{$unit}) { 416 + $unitsToStart{$unit} = 1; 417 + next; 418 + } 419 + 420 + handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToRestart, \%unitsToRestart, \%unitsToReload, \%unitsToRestart, \%unitsToSkip); 421 + } 422 + unlink($dryRestartByActivationFile); 423 424 print STDERR "would restart systemd\n" if $restartSystemd; 425 print STDERR "would reload the following units: ", join(", ", sort(keys %unitsToReload)), "\n" 426 if scalar(keys %unitsToReload) > 0; 427 print STDERR "would restart the following units: ", join(", ", sort(keys %unitsToRestart)), "\n" 428 if scalar(keys %unitsToRestart) > 0; 429 + my @unitsToStartFiltered = filterUnits(\%unitsToStart); 430 print STDERR "would start the following units: ", join(", ", @unitsToStartFiltered), "\n" 431 if scalar @unitsToStartFiltered; 432 exit 0; 433 } 434 ··· 452 system("$out/activate", "$out") == 0 or $res = 2; 453 454 # Handle the activation script requesting the restart or reload of a unit. 455 + foreach (split('\n', read_file($restartByActivationFile, err_mode => 'quiet') // "")) { 456 + my $unit = $_; 457 + my $baseUnit = $unit; 458 + my $newUnitFile = "$out/etc/systemd/system/$baseUnit"; 459 460 + # Detect template instances. 461 + if (!-e $newUnitFile && $unit =~ /^(.*)@[^\.]*\.(.*)$/) { 462 + $baseUnit = "$1\@.$2"; 463 + $newUnitFile = "$out/etc/systemd/system/$baseUnit"; 464 + } 465 + 466 + my $baseName = $baseUnit; 467 + $baseName =~ s/\.[a-z]*$//; 468 + 469 + # Start units if they were not active previously 470 + if (not defined $activePrev->{$unit}) { 471 + $unitsToStart{$unit} = 1; 472 + recordUnit($startListFile, $unit); 473 + next; 474 + } 475 + 476 + handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToRestart, \%unitsToRestart, \%unitsToReload, \%unitsToRestart, \%unitsToSkip); 477 + } 478 + # We can remove the file now because it has been propagated to the other restart/reload files 479 + unlink($restartByActivationFile); 480 481 # Restart systemd if necessary. Note that this is done using the 482 # current version of systemd, just in case the new one has trouble ··· 517 print STDERR "reloading the following units: ", join(", ", sort(keys %unitsToReload)), "\n"; 518 system("@systemd@/bin/systemctl", "reload", "--", sort(keys %unitsToReload)) == 0 or $res = 4; 519 unlink($reloadListFile); 520 } 521 522 # Restart changed services (those that have to be restarted rather ··· 525 print STDERR "restarting the following units: ", join(", ", sort(keys %unitsToRestart)), "\n"; 526 system("@systemd@/bin/systemctl", "restart", "--", sort(keys %unitsToRestart)) == 0 or $res = 4; 527 unlink($restartListFile); 528 } 529 530 # Start all active targets, as well as changed units we stopped above. ··· 533 # that are symlinks to other units. We shouldn't start both at the 534 # same time because we'll get a "Failed to add path to set" error from 535 # systemd. 536 + my @unitsToStartFiltered = filterUnits(\%unitsToStart); 537 print STDERR "starting the following units: ", join(", ", @unitsToStartFiltered), "\n" 538 if scalar @unitsToStartFiltered; 539 system("@systemd@/bin/systemctl", "start", "--", sort(keys %unitsToStart)) == 0 or $res = 4;
+57
nixos/tests/adguardhome.nix
···
··· 1 + import ./make-test-python.nix { 2 + name = "adguardhome"; 3 + 4 + nodes = { 5 + minimalConf = { ... }: { 6 + services.adguardhome = { enable = true; }; 7 + }; 8 + 9 + declarativeConf = { ... }: { 10 + services.adguardhome = { 11 + enable = true; 12 + 13 + mutableSettings = false; 14 + settings = { 15 + dns = { 16 + bind_host = "0.0.0.0"; 17 + bootstrap_dns = "127.0.0.1"; 18 + }; 19 + }; 20 + }; 21 + }; 22 + 23 + mixedConf = { ... }: { 24 + services.adguardhome = { 25 + enable = true; 26 + 27 + mutableSettings = true; 28 + settings = { 29 + dns = { 30 + bind_host = "0.0.0.0"; 31 + bootstrap_dns = "127.0.0.1"; 32 + }; 33 + }; 34 + }; 35 + }; 36 + }; 37 + 38 + testScript = '' 39 + with subtest("Minimal config test"): 40 + minimalConf.wait_for_unit("adguardhome.service") 41 + minimalConf.wait_for_open_port(3000) 42 + 43 + with subtest("Declarative config test, DNS will be reachable"): 44 + declarativeConf.wait_for_unit("adguardhome.service") 45 + declarativeConf.wait_for_open_port(53) 46 + declarativeConf.wait_for_open_port(3000) 47 + 48 + with subtest("Mixed config test, check whether merging works"): 49 + mixedConf.wait_for_unit("adguardhome.service") 50 + mixedConf.wait_for_open_port(53) 51 + mixedConf.wait_for_open_port(3000) 52 + # Test whether merging works properly, even if nothing is changed 53 + mixedConf.systemctl("restart adguardhome.service") 54 + mixedConf.wait_for_unit("adguardhome.service") 55 + mixedConf.wait_for_open_port(3000) 56 + ''; 57 + }
+1
nixos/tests/all-tests.nix
··· 23 { 24 _3proxy = handleTest ./3proxy.nix {}; 25 acme = handleTest ./acme.nix {}; 26 aesmd = handleTest ./aesmd.nix {}; 27 agda = handleTest ./agda.nix {}; 28 airsonic = handleTest ./airsonic.nix {};
··· 23 { 24 _3proxy = handleTest ./3proxy.nix {}; 25 acme = handleTest ./acme.nix {}; 26 + adguardhome = handleTest ./adguardhome.nix {}; 27 aesmd = handleTest ./aesmd.nix {}; 28 agda = handleTest ./agda.nix {}; 29 airsonic = handleTest ./airsonic.nix {};
+70
nixos/tests/switch-test.nix
··· 45 systemd.services.test.restartIfChanged = false; 46 }; 47 48 mount.configuration = { 49 systemd.mounts = [ 50 { ··· 260 assert_lacks(out, "the following new units were started:") 261 assert_lacks(out, "as well:") 262 assert_contains(out, "would start the following units: test.service\n") 263 264 with subtest("mounts"): 265 switch_to_specialisation("${machine}", "mount")
··· 45 systemd.services.test.restartIfChanged = false; 46 }; 47 48 + restart-and-reload-by-activation-script.configuration = { 49 + systemd.services = rec { 50 + simple-service = { 51 + # No wantedBy so we can check if the activation script restart triggers them 52 + serviceConfig = { 53 + Type = "oneshot"; 54 + RemainAfterExit = true; 55 + ExecStart = "${pkgs.coreutils}/bin/true"; 56 + ExecReload = "${pkgs.coreutils}/bin/true"; 57 + }; 58 + }; 59 + 60 + simple-restart-service = simple-service // { 61 + stopIfChanged = false; 62 + }; 63 + 64 + simple-reload-service = simple-service // { 65 + reloadIfChanged = true; 66 + }; 67 + 68 + no-restart-service = simple-service // { 69 + restartIfChanged = false; 70 + }; 71 + }; 72 + 73 + system.activationScripts.restart-and-reload-test = { 74 + supportsDryActivation = true; 75 + deps = []; 76 + text = '' 77 + if [ "$NIXOS_ACTION" = dry-activate ]; then 78 + f=/run/nixos/dry-activation-restart-list 79 + else 80 + f=/run/nixos/activation-restart-list 81 + fi 82 + cat <<EOF >> "$f" 83 + simple-service.service 84 + simple-restart-service.service 85 + simple-reload-service.service 86 + no-restart-service.service 87 + EOF 88 + ''; 89 + }; 90 + }; 91 + 92 mount.configuration = { 93 systemd.mounts = [ 94 { ··· 304 assert_lacks(out, "the following new units were started:") 305 assert_lacks(out, "as well:") 306 assert_contains(out, "would start the following units: test.service\n") 307 + 308 + with subtest("restart and reload by activation script"): 309 + out = switch_to_specialisation("${machine}", "restart-and-reload-by-activation-script") 310 + assert_contains(out, "stopping the following units: test.service\n") 311 + assert_lacks(out, "NOT restarting the following changed units:") 312 + assert_lacks(out, "reloading the following units:") 313 + assert_lacks(out, "restarting the following units:") 314 + assert_contains(out, "\nstarting the following units: no-restart-service.service, simple-reload-service.service, simple-restart-service.service, simple-service.service\n") 315 + assert_lacks(out, "as well:") 316 + # Switch to the same system where the example services get restarted 317 + # by the activation script 318 + out = switch_to_specialisation("${machine}", "restart-and-reload-by-activation-script") 319 + assert_lacks(out, "stopping the following units:") 320 + assert_lacks(out, "NOT restarting the following changed units:") 321 + assert_contains(out, "reloading the following units: simple-reload-service.service\n") 322 + assert_contains(out, "restarting the following units: simple-restart-service.service, simple-service.service\n") 323 + assert_lacks(out, "\nstarting the following units:") 324 + assert_lacks(out, "as well:") 325 + # The same, but in dry mode 326 + out = switch_to_specialisation("${machine}", "restart-and-reload-by-activation-script", action="dry-activate") 327 + assert_lacks(out, "would stop the following units:") 328 + assert_lacks(out, "would NOT stop the following changed units:") 329 + assert_contains(out, "would reload the following units: simple-reload-service.service\n") 330 + assert_contains(out, "would restart the following units: simple-restart-service.service, simple-service.service\n") 331 + assert_lacks(out, "\nwould start the following units:") 332 + assert_lacks(out, "as well:") 333 334 with subtest("mounts"): 335 switch_to_specialisation("${machine}", "mount")
+2 -1
pkgs/applications/networking/instant-messengers/franz/generic.nix
··· 24 , libnotify 25 , xdg-utils 26 , mesa 27 }: 28 29 # Helper function for building a derivation for Franz and forks. ··· 68 expat 69 stdenv.cc.cc 70 ]; 71 - runtimeDependencies = [ stdenv.cc.cc.lib (lib.getLib udev) libnotify ]; 72 73 unpackPhase = "dpkg-deb -x $src ."; 74
··· 24 , libnotify 25 , xdg-utils 26 , mesa 27 + , libappindicator-gtk3 28 }: 29 30 # Helper function for building a derivation for Franz and forks. ··· 69 expat 70 stdenv.cc.cc 71 ]; 72 + runtimeDependencies = [ stdenv.cc.cc.lib (lib.getLib udev) libnotify libappindicator-gtk3 ]; 73 74 unpackPhase = "dpkg-deb -x $src ."; 75
+38
pkgs/development/python-modules/pdm-pep517/default.nix
···
··· 1 + { lib 2 + , buildPythonPackage 3 + , pythonOlder 4 + , fetchPypi 5 + , git 6 + , pytestCheckHook 7 + }: 8 + 9 + buildPythonPackage rec { 10 + pname = "pdm-pep517"; 11 + version = "0.9.4"; 12 + format = "pyproject"; 13 + disabled = pythonOlder "3.7"; 14 + 15 + src = fetchPypi { 16 + inherit pname version; 17 + sha256 = "sha256-2o2FuuvS5PW7uhxl3EGBP75CZ3dcyjPoug1k0irl51c="; 18 + }; 19 + 20 + preCheck = '' 21 + HOME=$TMPDIR 22 + 23 + git config --global user.name nobody 24 + git config --global user.email nobody@example.com 25 + ''; 26 + 27 + checkInputs = [ 28 + pytestCheckHook 29 + git 30 + ]; 31 + 32 + meta = with lib; { 33 + homepage = "https://github.com/pdm-project/pdm-pep517"; 34 + description = "Yet another PEP 517 backend."; 35 + license = licenses.mit; 36 + maintainers = with maintainers; [ cpcloud ]; 37 + }; 38 + }
+56
pkgs/development/python-modules/pythonfinder/default.nix
···
··· 1 + { lib 2 + , buildPythonPackage 3 + , pythonOlder 4 + , fetchFromGitHub 5 + , pytestCheckHook 6 + , attrs 7 + , cached-property 8 + , click 9 + , six 10 + , packaging 11 + , pytest-cov 12 + , pytest-timeout 13 + }: 14 + 15 + buildPythonPackage rec { 16 + pname = "pythonfinder"; 17 + version = "1.2.9"; 18 + format = "pyproject"; 19 + 20 + src = fetchFromGitHub { 21 + owner = "sarugaku"; 22 + repo = pname; 23 + rev = version; 24 + sha256 = "sha256-tPMqVKbYwBRvb8/GyYNxO8lwJLcUUQyRoCoF5tg6rxs="; 25 + }; 26 + 27 + propagatedBuildInputs = [ 28 + attrs 29 + cached-property 30 + click 31 + six 32 + packaging 33 + ]; 34 + 35 + checkInputs = [ 36 + pytestCheckHook 37 + pytest-cov 38 + pytest-timeout 39 + ]; 40 + 41 + pytestFlagsArray = [ "--no-cov" ]; 42 + 43 + # these tests invoke git in a subprocess and 44 + # for some reason git can't be found even if included in checkInputs 45 + disabledTests = [ 46 + "test_shims_are_kept" 47 + "test_shims_are_removed" 48 + ]; 49 + 50 + meta = with lib; { 51 + homepage = "https://github.com/sarugaku/pythonfinder"; 52 + description = "Cross Platform Search Tool for Finding Pythons"; 53 + license = licenses.mit; 54 + maintainers = with maintainers; [ cpcloud ]; 55 + }; 56 + }
+24
pkgs/development/python-modules/types-freezegun/default.nix
···
··· 1 + { lib 2 + , buildPythonPackage 3 + , fetchPypi 4 + }: 5 + 6 + buildPythonPackage rec { 7 + pname = "types-freezegun"; 8 + version = "1.1.6"; 9 + 10 + src = fetchPypi { 11 + inherit pname version; 12 + sha256 = "0kxiv0yjbbvp1zx694ir149b26kjzvb6600fh397v32b8jvs8w2w"; 13 + }; 14 + 15 + # Module doesn't have tests 16 + doCheck = false; 17 + 18 + meta = with lib; { 19 + description = "Typing stubs for freezegun"; 20 + homepage = "https://github.com/python/typeshed"; 21 + license = licenses.asl20; 22 + maintainers = with maintainers; [ jpetrucciani ]; 23 + }; 24 + }
+24
pkgs/development/python-modules/types-tabulate/default.nix
···
··· 1 + { lib 2 + , buildPythonPackage 3 + , fetchPypi 4 + }: 5 + 6 + buildPythonPackage rec { 7 + pname = "types-tabulate"; 8 + version = "0.8.5"; 9 + 10 + src = fetchPypi { 11 + inherit pname version; 12 + sha256 = "sha256-A/KDvzhOoSG3tqWK+zj03vl/MHBPyhOg2mhpNrDzkqw="; 13 + }; 14 + 15 + # Module doesn't have tests 16 + doCheck = false; 17 + 18 + meta = with lib; { 19 + description = "Typing stubs for tabulate"; 20 + homepage = "https://github.com/python/typeshed"; 21 + license = licenses.asl20; 22 + maintainers = with maintainers; [ jpetrucciani ]; 23 + }; 24 + }
+2 -2
pkgs/development/tools/build-managers/mill/default.nix
··· 2 3 stdenv.mkDerivation rec { 4 pname = "mill"; 5 - version = "0.9.12"; 6 7 src = fetchurl { 8 url = "https://github.com/com-lihaoyi/mill/releases/download/${version}/${version}-assembly"; 9 - sha256 = "sha256-ct4SsIs6ErWl2XbxfqX3FTOU9K9tTKo8YWu1QT83iTI="; 10 }; 11 12 nativeBuildInputs = [ makeWrapper ];
··· 2 3 stdenv.mkDerivation rec { 4 pname = "mill"; 5 + version = "0.10.0"; 6 7 src = fetchurl { 8 url = "https://github.com/com-lihaoyi/mill/releases/download/${version}/${version}-assembly"; 9 + sha256 = "sha256:1acm1z24cw2yzykwwjfrcf66mi16xvsrnrrhrsd9yqrajqab707n"; 10 }; 11 12 nativeBuildInputs = [ makeWrapper ];
+1 -1
pkgs/games/amoeba/default.nix
··· 1 { lib, stdenv, fetchurl, amoeba-data, alsa-lib, expat, freetype, gtk2, libvorbis, libGLU, xorg, pkg-config }: 2 3 stdenv.mkDerivation rec { 4 - name = "amoeba-${version}-${debver}"; 5 version = "1.1"; 6 debver = "29.1"; 7
··· 1 { lib, stdenv, fetchurl, amoeba-data, alsa-lib, expat, freetype, gtk2, libvorbis, libGLU, xorg, pkg-config }: 2 3 stdenv.mkDerivation rec { 4 + pname = "amoeba"; 5 version = "1.1"; 6 debver = "29.1"; 7
+1 -1
pkgs/games/crawl/default.nix
··· 7 }: 8 9 stdenv.mkDerivation rec { 10 - name = "crawl-${version}${lib.optionalString tileMode "-tiles"}"; 11 version = "0.27.1"; 12 13 src = fetchFromGitHub {
··· 7 }: 8 9 stdenv.mkDerivation rec { 10 + pname = "crawl${lib.optionalString tileMode "-tiles"}"; 11 version = "0.27.1"; 12 13 src = fetchFromGitHub {
+2 -1
pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix
··· 9 in 10 11 stdenv.mkDerivation { 12 - name = "dwarf-therapist-${dwarf-therapist.version}"; 13 14 wrapper = substituteAll { 15 src = ./dwarf-therapist.in;
··· 9 in 10 11 stdenv.mkDerivation { 12 + pname = "dwarf-therapist"; 13 + version = dwarf-therapist.version; 14 15 wrapper = substituteAll { 16 src = ./dwarf-therapist.in;
+2 -1
pkgs/games/dwarf-fortress/unfuck.nix
··· 72 in 73 74 stdenv.mkDerivation { 75 - name = "dwarf_fortress_unfuck-${release.unfuckRelease}"; 76 77 src = fetchFromGitHub { 78 owner = "svenstaro";
··· 72 in 73 74 stdenv.mkDerivation { 75 + pname = "dwarf_fortress_unfuck"; 76 + version = release.unfuckRelease; 77 78 src = fetchFromGitHub { 79 owner = "svenstaro";
+2 -1
pkgs/games/dwarf-fortress/wrapper/default.nix
··· 92 in 93 94 stdenv.mkDerivation { 95 - name = "dwarf-fortress-${dwarf-fortress.dfVersion}"; 96 97 dfInit = substituteAll { 98 name = "dwarf-fortress-init";
··· 92 in 93 94 stdenv.mkDerivation { 95 + pname = "dwarf-fortress"; 96 + version = dwarf-fortress.dfVersion; 97 98 dfInit = substituteAll { 99 name = "dwarf-fortress-init";
+3 -3
pkgs/games/gnubg/default.nix
··· 1 { lib, stdenv, fetchurl, pkg-config, glib, python3, gtk2, readline }: 2 3 - let version = "1.06.002"; in 4 - stdenv.mkDerivation { 5 - name = "gnubg-"+version; 6 7 src = fetchurl { 8 url = "http://gnubg.org/media/sources/gnubg-release-${version}-sources.tar.gz";
··· 1 { lib, stdenv, fetchurl, pkg-config, glib, python3, gtk2, readline }: 2 3 + stdenv.mkDerivation rec { 4 + pname = "gnubg"; 5 + version = "1.06.002"; 6 7 src = fetchurl { 8 url = "http://gnubg.org/media/sources/gnubg-release-${version}-sources.tar.gz";
+1 -1
pkgs/games/hhexen/default.nix
··· 1 { lib, fetchurl, SDL, stdenv }: 2 3 stdenv.mkDerivation rec { 4 - name = "hhexen"; 5 version = "1.6.3"; 6 src = fetchurl { 7 url = "mirror://sourceforge/hhexen/hhexen-${version}-src.tgz";
··· 1 { lib, fetchurl, SDL, stdenv }: 2 3 stdenv.mkDerivation rec { 4 + pname = "hhexen"; 5 version = "1.6.3"; 6 src = fetchurl { 7 url = "mirror://sourceforge/hhexen/hhexen-${version}-src.tgz";
+3 -4
pkgs/games/instead/default.nix
··· 1 { lib, stdenv, fetchurl, SDL2, SDL2_ttf, SDL2_image, SDL2_mixer, pkg-config, lua, zlib, unzip }: 2 3 let 4 - version = "3.3.2"; 5 - 6 # I took several games at random from https://instead.syscall.ru/games/ 7 games = [ 8 (fetchurl { ··· 28 ]; 29 in 30 31 - stdenv.mkDerivation { 32 - name = "instead-" + version; 33 34 src = fetchurl { 35 url = "mirror://sourceforge/project/instead/instead/${version}/instead_${version}.tar.gz";
··· 1 { lib, stdenv, fetchurl, SDL2, SDL2_ttf, SDL2_image, SDL2_mixer, pkg-config, lua, zlib, unzip }: 2 3 let 4 # I took several games at random from https://instead.syscall.ru/games/ 5 games = [ 6 (fetchurl { ··· 26 ]; 27 in 28 29 + stdenv.mkDerivation rec { 30 + pname = "instead"; 31 + version = "3.3.2"; 32 33 src = fetchurl { 34 url = "mirror://sourceforge/project/instead/instead/${version}/instead_${version}.tar.gz";
+2 -3
pkgs/games/moon-buggy/default.nix
··· 1 {lib, stdenv, fetchurl, ncurses}: 2 3 stdenv.mkDerivation rec { 4 - baseName = "moon-buggy"; 5 version = "1.0.51"; 6 - name = "${baseName}-${version}"; 7 8 buildInputs = [ 9 ncurses 10 ]; 11 12 src = fetchurl { 13 - url = "http://m.seehuhn.de/programs/${name}.tar.gz"; 14 sha256 = "0gyjwlpx0sd728dwwi7pwks4zfdy9rm1w1xbhwg6zip4r9nc2b9m"; 15 }; 16
··· 1 {lib, stdenv, fetchurl, ncurses}: 2 3 stdenv.mkDerivation rec { 4 + pname = "moon-buggy"; 5 version = "1.0.51"; 6 7 buildInputs = [ 8 ncurses 9 ]; 10 11 src = fetchurl { 12 + url = "http://m.seehuhn.de/programs/moon-buggy-${version}.tar.gz"; 13 sha256 = "0gyjwlpx0sd728dwwi7pwks4zfdy9rm1w1xbhwg6zip4r9nc2b9m"; 14 }; 15
+3 -3
pkgs/games/nethack/default.nix
··· 20 21 in stdenv.mkDerivation rec { 22 version = "3.6.6"; 23 - name = if x11Mode then "nethack-x11-${version}" 24 - else if qtMode then "nethack-qt-${version}" 25 - else "nethack-${version}"; 26 27 src = fetchurl { 28 url = "https://nethack.org/download/${version}/nethack-${lib.replaceStrings ["."] [""] version}-src.tgz";
··· 20 21 in stdenv.mkDerivation rec { 22 version = "3.6.6"; 23 + pname = if x11Mode then "nethack-x11" 24 + else if qtMode then "nethack-qt" 25 + else "nethack"; 26 27 src = fetchurl { 28 url = "https://nethack.org/download/${version}/nethack-${lib.replaceStrings ["."] [""] version}-src.tgz";
+7 -18
pkgs/games/planetaryannihilation/default.nix
··· 1 { lib, stdenv, config, fetchurl, patchelf, makeWrapper, gtk2, glib, udev, alsa-lib, atk 2 - , nspr, fontconfig, cairo, pango, nss, freetype, gnome2, gdk-pixbuf, curl, systemd, xorg }: 3 4 - # TODO: use dynamic attributes once Nix 1.7 is out 5 - assert ((config.planetary_annihilation or null).url or null) != null; 6 - assert ((config.planetary_annihilation or null).sha256 or null) != null; 7 8 - /* to setup: 9 - $ cat ~/.config/nixpkgs/config.nix 10 - { 11 - planetary_annihilation = { 12 - url = "file:///home/user/PA_Linux_62857.tar.bz2"; 13 sha256 = "0imi3k5144dsn3ka9khx3dj76klkw46ga7m6rddqjk4yslwabh3k"; 14 - }; 15 - } 16 - */ 17 - 18 - stdenv.mkDerivation { 19 - name = "planetary-annihalation"; 20 - 21 - src = fetchurl { 22 - inherit (config.planetary_annihilation) url sha256; 23 }; 24 25 nativeBuildInputs = [ patchelf makeWrapper ];
··· 1 { lib, stdenv, config, fetchurl, patchelf, makeWrapper, gtk2, glib, udev, alsa-lib, atk 2 + , nspr, fontconfig, cairo, pango, nss, freetype, gnome2, gdk-pixbuf, curl, systemd, xorg, requireFile }: 3 4 + stdenv.mkDerivation rec { 5 + pname = "planetary-annihalation"; 6 + version = "62857"; 7 8 + src = requireFile { 9 + message = "This file has to be downloaded manually via nix-prefetch-url."; 10 + name = "PA_Linux_${version}.tar.bz2"; 11 sha256 = "0imi3k5144dsn3ka9khx3dj76klkw46ga7m6rddqjk4yslwabh3k"; 12 }; 13 14 nativeBuildInputs = [ patchelf makeWrapper ];
+2 -3
pkgs/games/xconq/default.nix
··· 2 , libXext, fontconfig, makeWrapper }: 3 4 stdenv.mkDerivation rec { 5 - name = "${baseName}-${version}"; 6 - baseName = "xconq"; 7 version = "7.5.0-0pre.0.20050612"; 8 9 src = fetchurl { 10 - url = "mirror://sourceforge/project/${baseName}/${baseName}/${name}/${name}.tar.gz"; 11 sha256 = "1za78yx57mgwcmmi33wx3533yz1x093dnqis8q2qmqivxav51lca"; 12 }; 13
··· 2 , libXext, fontconfig, makeWrapper }: 3 4 stdenv.mkDerivation rec { 5 + pname = "xconq"; 6 version = "7.5.0-0pre.0.20050612"; 7 8 src = fetchurl { 9 + url = "mirror://sourceforge/project/xconq/xconq/xconq-${version}/xconq-${version}.tar.gz"; 10 sha256 = "1za78yx57mgwcmmi33wx3533yz1x093dnqis8q2qmqivxav51lca"; 11 }; 12
+2 -1
pkgs/os-specific/linux/kernel/perf.nix
··· 12 assert versionAtLeast kernel.version "3.12"; 13 14 stdenv.mkDerivation { 15 - name = "perf-linux-${kernel.version}"; 16 17 inherit (kernel) src; 18
··· 12 assert versionAtLeast kernel.version "3.12"; 13 14 stdenv.mkDerivation { 15 + pname = "perf-linux"; 16 + version = kernel.version; 17 18 inherit (kernel) src; 19
+1 -1
pkgs/os-specific/linux/kmod-debian-aliases/default.nix
··· 1 { stdenv, fetchurl, lib }: 2 3 stdenv.mkDerivation rec { 4 - name = "kmod-debian-aliases-${version}.conf"; 5 version = "22-1.1"; 6 7 src = fetchurl {
··· 1 { stdenv, fetchurl, lib }: 2 3 stdenv.mkDerivation rec { 4 + pname = "kmod-debian-aliases.conf"; 5 version = "22-1.1"; 6 7 src = fetchurl {
+1 -1
pkgs/os-specific/linux/libevdevc/default.nix
··· 1 { lib, stdenv, fetchFromGitHub, coreutils, pkg-config, glib, jsoncpp }: 2 3 stdenv.mkDerivation rec { 4 - name = "libevdevc"; 5 version = "2.0.1"; 6 src = fetchFromGitHub { 7 owner = "hugegreenbug";
··· 1 { lib, stdenv, fetchFromGitHub, coreutils, pkg-config, glib, jsoncpp }: 2 3 stdenv.mkDerivation rec { 4 + pname = "libevdevc"; 5 version = "2.0.1"; 6 src = fetchFromGitHub { 7 owner = "hugegreenbug";
+1 -1
pkgs/os-specific/linux/libgestures/default.nix
··· 1 { lib, stdenv, fetchFromGitHub, pkg-config, glib, jsoncpp }: 2 3 stdenv.mkDerivation rec { 4 - name = "libgestures-${version}"; 5 version = "2.0.1"; 6 src = fetchFromGitHub { 7 owner = "hugegreenbug";
··· 1 { lib, stdenv, fetchFromGitHub, pkg-config, glib, jsoncpp }: 2 3 stdenv.mkDerivation rec { 4 + pname = "libgestures"; 5 version = "2.0.1"; 6 src = fetchFromGitHub { 7 owner = "hugegreenbug";
+1 -1
pkgs/os-specific/linux/net-tools/mptcp.nix
··· 1 { lib, nettools, fetchFromGitHub }: 2 3 nettools.overrideAttrs(oa: rec { 4 - name = "net-tools-mptcp"; 5 version = "0.95"; 6 7 src = fetchFromGitHub {
··· 1 { lib, nettools, fetchFromGitHub }: 2 3 nettools.overrideAttrs(oa: rec { 4 + pname = "net-tools-mptcp"; 5 version = "0.95"; 6 7 src = fetchFromGitHub {
+2 -3
pkgs/os-specific/linux/pommed-light/default.nix
··· 10 }: 11 12 stdenv.mkDerivation rec { 13 - pkgname = "pommed-light"; 14 version = "1.51lw"; 15 - name = "${pkgname}-${version}"; 16 17 src = fetchFromGitHub { 18 owner = "bytbox"; 19 - repo = pkgname; 20 rev = "v${version}"; 21 sha256 = "18fvdwwhcl6s4bpf2f2i389s71c8k4g0yb81am9rdddqmzaw27iy"; 22 };
··· 10 }: 11 12 stdenv.mkDerivation rec { 13 + pname = "pommed-light"; 14 version = "1.51lw"; 15 16 src = fetchFromGitHub { 17 owner = "bytbox"; 18 + repo = "pommed-light"; 19 rev = "v${version}"; 20 sha256 = "18fvdwwhcl6s4bpf2f2i389s71c8k4g0yb81am9rdddqmzaw27iy"; 21 };
+3 -3
pkgs/os-specific/linux/statifier/default.nix
··· 1 { lib, multiStdenv, fetchurl }: 2 3 - let version = "1.7.4"; in 4 - multiStdenv.mkDerivation { 5 - name = "statifier-${version}"; 6 7 src = fetchurl { 8 url = "mirror://sourceforge/statifier/statifier-${version}.tar.gz";
··· 1 { lib, multiStdenv, fetchurl }: 2 3 + multiStdenv.mkDerivation rec { 4 + pname = "statifier"; 5 + version = "1.7.4"; 6 7 src = fetchurl { 8 url = "mirror://sourceforge/statifier/statifier-${version}.tar.gz";
+3 -4
pkgs/os-specific/linux/sysvinit/default.nix
··· 1 { lib, stdenv, fetchurl, withoutInitTools ? false }: 2 3 - let version = "3.01"; in 4 - 5 - stdenv.mkDerivation { 6 - name = (if withoutInitTools then "sysvtools" else "sysvinit") + "-" + version; 7 8 src = fetchurl { 9 url = "mirror://savannah/sysvinit/sysvinit-${version}.tar.xz";
··· 1 { lib, stdenv, fetchurl, withoutInitTools ? false }: 2 3 + stdenv.mkDerivation rec { 4 + pname = if withoutInitTools then "sysvtools" else "sysvinit"; 5 + version = "3.01"; 6 7 src = fetchurl { 8 url = "mirror://savannah/sysvinit/sysvinit-${version}.tar.xz";
+2 -1
pkgs/os-specific/linux/tmon/default.nix
··· 1 { lib, stdenv, kernel, ncurses }: 2 3 stdenv.mkDerivation { 4 - name = "tmon-${kernel.version}"; 5 6 inherit (kernel) src; 7
··· 1 { lib, stdenv, kernel, ncurses }: 2 3 stdenv.mkDerivation { 4 + pname = "tmon"; 5 + version = kernel.version; 6 7 inherit (kernel) src; 8
+1 -1
pkgs/os-specific/linux/uclibc/default.nix
··· 54 in 55 56 stdenv.mkDerivation { 57 - name = "uclibc-ng-${version}"; 58 inherit version; 59 60 src = fetchurl {
··· 54 in 55 56 stdenv.mkDerivation { 57 + pname = "uclibc-ng"; 58 inherit version; 59 60 src = fetchurl {
+2 -2
pkgs/os-specific/linux/unstick/default.nix
··· 1 { stdenv, lib, fetchFromGitHub, meson, ninja, pkg-config, libseccomp }: 2 3 stdenv.mkDerivation rec { 4 - name = "unstick"; 5 version = "0.1.0"; 6 7 src = fetchFromGitHub { 8 owner = "kwohlfahrt"; 9 - repo = name; 10 rev = "effee9aa242ca12dc94cc6e96bc073f4cc9e8657"; 11 sha256 = "08la3jmmzlf4pm48bf9zx4cqj9gbqalpqy0s57bh5vfsdk74nnhv"; 12 };
··· 1 { stdenv, lib, fetchFromGitHub, meson, ninja, pkg-config, libseccomp }: 2 3 stdenv.mkDerivation rec { 4 + pname = "unstick"; 5 version = "0.1.0"; 6 7 src = fetchFromGitHub { 8 owner = "kwohlfahrt"; 9 + repo = "unstick"; 10 rev = "effee9aa242ca12dc94cc6e96bc073f4cc9e8657"; 11 sha256 = "08la3jmmzlf4pm48bf9zx4cqj9gbqalpqy0s57bh5vfsdk74nnhv"; 12 };
+2 -1
pkgs/servers/adguardhome/default.nix
··· 1 - { lib, stdenv, fetchurl, fetchzip }: 2 3 stdenv.mkDerivation rec { 4 pname = "adguardhome"; ··· 12 13 passthru = { 14 updateScript = ./update.sh; 15 }; 16 17 meta = with lib; {
··· 1 + { lib, stdenv, fetchurl, fetchzip, nixosTests }: 2 3 stdenv.mkDerivation rec { 4 pname = "adguardhome"; ··· 12 13 passthru = { 14 updateScript = ./update.sh; 15 + tests.adguardhome = nixosTests.adguardhome; 16 }; 17 18 meta = with lib; {
+5 -24
pkgs/servers/misc/oven-media-engine/default.nix
··· 6 , bc 7 , pkg-config 8 , perl 9 - , openssl 10 , zlib 11 , ffmpeg 12 , libvpx 13 , libopus 14 , srtp 15 , jemalloc 16 , pcre2 17 }: 18 19 - let 20 - ffmpeg = ffmpeg_3_4.overrideAttrs (super: { 21 - pname = "${super.pname}-ovenmediaengine"; 22 - src = fetchFromGitHub { 23 - owner = "Airensoft"; 24 - repo = "FFmpeg"; 25 - rev = "142b4bb64b64e337f80066e6af935a68627fedae"; # on branch ome/3.4 26 - sha256 = "0fla3940q3z0c0ik2xzkbvdfvrdg06ban7wi6y94y8mcipszpp11"; 27 - }; 28 - }); 29 - in 30 stdenv.mkDerivation rec { 31 pname = "oven-media-engine"; 32 - version = "0.10.9-hotfix"; 33 34 src = fetchFromGitHub { 35 owner = "AirenSoft"; 36 repo = "OvenMediaEngine"; 37 rev = "v${version}"; 38 - sha256 = "1fhria0vwqsgmsglv5gn858li33vfy2dwy1f1qdd2jwikskb53am"; 39 }; 40 41 - patches = [ 42 - (fetchpatch { 43 - # Needed to fix compilation under GCC 10. 44 - url = "https://github.com/AirenSoft/OvenMediaEngine/commit/ad83e1d2226445d649e4b7e0c75106e31af4940d.patch"; 45 - sha256 = "1zk1rgi1wsjl6gdx3hdmgxlgindv6a3lsnkwcgi87ga9abw4vafw"; 46 - stripLen = 1; 47 - }) 48 - ]; 49 - 50 sourceRoot = "source/src"; 51 makeFlags = "release CONFIG_LIBRARY_PATHS= CONFIG_PKG_PATHS= GLOBAL_CC=$(CC) GLOBAL_CXX=$(CXX) GLOBAL_LD=$(CXX) SHELL=${stdenv.shell}"; 52 enableParallelBuilding = true; 53 54 nativeBuildInputs = [ bc pkg-config perl ]; 55 - buildInputs = [ openssl srt zlib ffmpeg libvpx libopus srtp jemalloc pcre2 ]; 56 57 preBuild = '' 58 patchShebangs core/colorg++
··· 6 , bc 7 , pkg-config 8 , perl 9 + , openssl_3_0 10 , zlib 11 , ffmpeg 12 , libvpx 13 , libopus 14 + , libuuid 15 , srtp 16 , jemalloc 17 , pcre2 18 }: 19 20 stdenv.mkDerivation rec { 21 pname = "oven-media-engine"; 22 + version = "0.12.9"; 23 24 src = fetchFromGitHub { 25 owner = "AirenSoft"; 26 repo = "OvenMediaEngine"; 27 rev = "v${version}"; 28 + sha256 = "0d3ymw747frl40w5d6r33lf1s72v7fiv742yjr1m6la2phb9h834"; 29 }; 30 31 sourceRoot = "source/src"; 32 makeFlags = "release CONFIG_LIBRARY_PATHS= CONFIG_PKG_PATHS= GLOBAL_CC=$(CC) GLOBAL_CXX=$(CXX) GLOBAL_LD=$(CXX) SHELL=${stdenv.shell}"; 33 enableParallelBuilding = true; 34 35 nativeBuildInputs = [ bc pkg-config perl ]; 36 + buildInputs = [ openssl_3_0 srt zlib ffmpeg libvpx libopus srtp jemalloc pcre2 libuuid ]; 37 38 preBuild = '' 39 patchShebangs core/colorg++
+2 -2
pkgs/tools/virtualization/cri-tools/default.nix
··· 6 7 buildGoModule rec { 8 pname = "cri-tools"; 9 - version = "1.22.0"; 10 11 src = fetchFromGitHub { 12 owner = "kubernetes-sigs"; 13 repo = pname; 14 rev = "v${version}"; 15 - sha256 = "sha256-+36lGLpNnTQnwwmXoVNPt3RMcnE46AdXOpghvhP0Bq0="; 16 }; 17 18 vendorSha256 = null;
··· 6 7 buildGoModule rec { 8 pname = "cri-tools"; 9 + version = "1.23.0"; 10 11 src = fetchFromGitHub { 12 owner = "kubernetes-sigs"; 13 repo = pname; 14 rev = "v${version}"; 15 + sha256 = "sha256-b65GY08vykVp/PUBmBXKIfykyPEJRgGjgu7zBoXx3K0="; 16 }; 17 18 vendorSha256 = null;
+8
pkgs/top-level/python-packages.nix
··· 5843 5844 pdfx = callPackage ../development/python-modules/pdfx { }; 5845 5846 pdoc3 = callPackage ../development/python-modules/pdoc3 { }; 5847 5848 pebble = callPackage ../development/python-modules/pebble { }; ··· 6101 python-swiftclient = callPackage ../development/python-modules/python-swiftclient { }; 6102 6103 python-tado = callPackage ../development/python-modules/python-tado { }; 6104 6105 pyutil = callPackage ../development/python-modules/pyutil { }; 6106 ··· 9933 9934 types-decorator = callPackage ../development/python-modules/types-decorator { }; 9935 9936 types-futures = callPackage ../development/python-modules/types-futures { }; 9937 9938 types-protobuf = callPackage ../development/python-modules/types-protobuf { }; ··· 9942 types-requests = callPackage ../development/python-modules/types-requests { }; 9943 9944 types-setuptools = callPackage ../development/python-modules/types-setuptools { }; 9945 9946 types-toml = callPackage ../development/python-modules/types-toml { }; 9947
··· 5843 5844 pdfx = callPackage ../development/python-modules/pdfx { }; 5845 5846 + pdm-pep517 = callPackage ../development/python-modules/pdm-pep517 { }; 5847 + 5848 pdoc3 = callPackage ../development/python-modules/pdoc3 { }; 5849 5850 pebble = callPackage ../development/python-modules/pebble { }; ··· 6103 python-swiftclient = callPackage ../development/python-modules/python-swiftclient { }; 6104 6105 python-tado = callPackage ../development/python-modules/python-tado { }; 6106 + 6107 + pythonfinder = callPackage ../development/python-modules/pythonfinder { }; 6108 6109 pyutil = callPackage ../development/python-modules/pyutil { }; 6110 ··· 9937 9938 types-decorator = callPackage ../development/python-modules/types-decorator { }; 9939 9940 + types-freezegun = callPackage ../development/python-modules/types-freezegun { }; 9941 + 9942 types-futures = callPackage ../development/python-modules/types-futures { }; 9943 9944 types-protobuf = callPackage ../development/python-modules/types-protobuf { }; ··· 9948 types-requests = callPackage ../development/python-modules/types-requests { }; 9949 9950 types-setuptools = callPackage ../development/python-modules/types-setuptools { }; 9951 + 9952 + types-tabulate = callPackage ../development/python-modules/types-tabulate { }; 9953 9954 types-toml = callPackage ../development/python-modules/types-toml { }; 9955