···7788 <para>99 IPv6 is enabled by default. Stateless address autoconfiguration is used to1010- automatically assign IPv6 addresses to all interfaces. You can disable IPv61111- support globally by setting:1010+ automatically assign IPv6 addresses to all interfaces, and Privacy1111+ Extensions (RFC 4946) are enabled by default. You can adjust the default1212+ for this by setting <xref linkend="opt-networking.tempAddresses"/>.1313+ This option may be overridden on a per-interface basis by1414+ <xref linkend="opt-networking.interfaces._name_.tempAddress"/>.1515+ You can disable IPv6 support globally by setting:1216<programlisting>1317<xref linkend="opt-networking.enableIPv6"/> = false;1418</programlisting>
···3737 description = ''3838 Number of tasks to perform simultaneously.39394040- A task is a single derivation build or an evaluation.4040+ A task is a single derivation build, an evaluation or an effect run.4141 At minimum, you need 2 concurrent tasks for <literal>x86_64-linux</literal>4242 in your cluster, to allow for import from derivation.43434444 <literal>concurrentTasks</literal> can be around the CPU core count or lower if memory is4545 the bottleneck.4646+4747+ The optimal value depends on the resource consumption characteristics of your workload,4848+ including memory usage and in-task parallelism. This is typically determined empirically.4949+5050+ When scaling, it is generally better to have a double-size machine than two machines,5151+ because each split of resources causes inefficiencies; particularly with regards5252+ to build latency because of extra downloads.4653 '';4747- type = types.int;4848- default = 4;5454+ type = types.either types.ints.positive (types.enum [ "auto" ]);5555+ default = "auto";4956 };5057 workDirectory = mkOption {5158 description = ''···193186 # even shortly after the previous lookup. This *also* applies to the daemon.194187 narinfo-cache-negative-ttl = 0195188 '';196196- services.hercules-ci-agent.tomlFile =197197- format.generate "hercules-ci-agent.toml" cfg.settings;189189+ services.hercules-ci-agent = {190190+ tomlFile =191191+ format.generate "hercules-ci-agent.toml" cfg.settings;192192+193193+ settings.labels = {194194+ agent.source =195195+ if options.services.hercules-ci-agent.package.highestPrio == (lib.modules.mkOptionDefault { }).priority196196+ then "nixpkgs"197197+ else lib.mkOptionDefault "override";198198+ pkgs.version = pkgs.lib.version;199199+ lib.version = lib.version;200200+ };201201+ };198202 };199203}
···88 };991010 nodes =1111- # Remove the interface configuration provided by makeTest so that the1212- # interfaces are all configured implicitly1313- { client = { ... }: { networking.interfaces = lib.mkForce {}; };1111+ {1212+ # We use lib.mkForce here to remove the interface configuration1313+ # provided by makeTest, so that the interfaces are all configured1414+ # implicitly.1515+1616+ # This client should use privacy extensions fully, having a1717+ # completely-default network configuration.1818+ client_defaults.networking.interfaces = lib.mkForce {};1919+2020+ # Both of these clients should obtain temporary addresses, but2121+ # not use them as the default source IP. We thus run the same2222+ # checks against them — but the configuration resulting in this2323+ # behaviour is different.2424+2525+ # Here, by using an altered default value for the global setting...2626+ client_global_setting = {2727+ networking.interfaces = lib.mkForce {};2828+ networking.tempAddresses = "enabled";2929+ };3030+ # and here, by setting this on the interface explicitly.3131+ client_interface_setting = {3232+ networking.tempAddresses = "disabled";3333+ networking.interfaces = lib.mkForce {3434+ eth1.tempAddress = "enabled";3535+ };3636+ };14371538 server =1616- { ... }:1739 { services.httpd.enable = true;1840 services.httpd.adminAddr = "foo@example.org";1941 networking.firewall.allowedTCPPorts = [ 80 ];···6240 # Start the router first so that it respond to router solicitations.6341 router.wait_for_unit("radvd")64424343+ clients = [client_defaults, client_global_setting, client_interface_setting]4444+6545 start_all()66466767- client.wait_for_unit("network.target")4747+ for client in clients:4848+ client.wait_for_unit("network.target")6849 server.wait_for_unit("network.target")6950 server.wait_for_unit("httpd.service")7051···896490659166 with subtest("Loopback address can be pinged"):9292- client.succeed("ping -c 1 ::1 >&2")9393- client.fail("ping -c 1 ::2 >&2")6767+ client_defaults.succeed("ping -c 1 ::1 >&2")6868+ client_defaults.fail("ping -c 1 2001:db8:: >&2")94699570 with subtest("Local link addresses can be obtained and pinged"):9696- client_ip = wait_for_address(client, "eth1", "link")9797- server_ip = wait_for_address(server, "eth1", "link")9898- client.succeed(f"ping -c 1 {client_ip}%eth1 >&2")9999- client.succeed(f"ping -c 1 {server_ip}%eth1 >&2")7171+ for client in clients:7272+ client_ip = wait_for_address(client, "eth1", "link")7373+ server_ip = wait_for_address(server, "eth1", "link")7474+ client.succeed(f"ping -c 1 {client_ip}%eth1 >&2")7575+ client.succeed(f"ping -c 1 {server_ip}%eth1 >&2")1007610177 with subtest("Global addresses can be obtained, pinged, and reached via http"):102102- client_ip = wait_for_address(client, "eth1", "global")103103- server_ip = wait_for_address(server, "eth1", "global")104104- client.succeed(f"ping -c 1 {client_ip} >&2")105105- client.succeed(f"ping -c 1 {server_ip} >&2")106106- client.succeed(f"curl --fail -g http://[{server_ip}]")107107- client.fail(f"curl --fail -g http://[{client_ip}]")7878+ for client in clients:7979+ client_ip = wait_for_address(client, "eth1", "global")8080+ server_ip = wait_for_address(server, "eth1", "global")8181+ client.succeed(f"ping -c 1 {client_ip} >&2")8282+ client.succeed(f"ping -c 1 {server_ip} >&2")8383+ client.succeed(f"curl --fail -g http://[{server_ip}]")8484+ client.fail(f"curl --fail -g http://[{client_ip}]")10885109109- with subtest("Privacy extensions: Global temporary address can be obtained and pinged"):110110- ip = wait_for_address(client, "eth1", "global", temporary=True)8686+ with subtest(8787+ "Privacy extensions: Global temporary address is used as default source address"8888+ ):8989+ ip = wait_for_address(client_defaults, "eth1", "global", temporary=True)11190 # Default route should have "src <temporary address>" in it112112- client.succeed(f"ip r g ::2 | grep {ip}")9191+ client_defaults.succeed(f"ip route get 2001:db8:: | grep 'src {ip}'")11392114114- # TODO: test reachability of a machine on another network.9393+ for client, setting_desc in (9494+ (client_global_setting, "global"),9595+ (client_interface_setting, "interface"),9696+ ):9797+ with subtest(f'Privacy extensions: "enabled" through {setting_desc} setting)'):9898+ # We should be obtaining both a temporary address and an EUI-64 address...9999+ ip = wait_for_address(client, "eth1", "global")100100+ assert "ff:fe" in ip101101+ ip_temp = wait_for_address(client, "eth1", "global", temporary=True)102102+ # But using the EUI-64 one.103103+ client.succeed(f"ip route get 2001:db8:: | grep 'src {ip}'")115104 '';116105})
···121121 conntrack_tools = conntrack-tools; # added 2018-05122122 cool-old-term = cool-retro-term; # added 2015-01-31123123 coprthr = throw "coprthr has been removed."; # added 2019-12-08124124+ couchdb = throw "couchdb was removed from nixpkgs, use couchdb3 instead"; # added 2021-03-03125125+ couchdb2 = throw "couchdb2 was removed from nixpkgs, use couchdb3 instead"; # added 2021-03-03124126 corebird = throw "corebird was deprecated 2019-10-02: See https://www.patreon.com/posts/corebirds-future-18921328. Please use Cawbird as replacement.";125127 coredumper = throw "coredumper has been removed: abandoned by upstream."; # added 2019-11-16126128 cpp_ethereum = throw "cpp_ethereum has been removed; abandoned upstream."; # added 2020-11-30···197195 exfat-utils = exfat; # 2015-09-11198196 facette = throw "facette has been removed."; # added 2020-01-06199197 fast-neural-doodle = throw "fast-neural-doodle has been removed, as the upstream project has been abandoned"; # added 2020-03-28198198+ fastnlo = fastnlo_toolkit; # added 2021-04-24200199 fedora-coreos-config-transpiler = throw "fedora-coreos-config-transpiler has been renamed to 'butane'."; # added 2021-04-13201200 fetchFromGithub = throw "You meant fetchFromGitHub, with a capital H.";202201 ffadoFull = ffado; # added 2018-05-01···752749 speedtest_cli = speedtest-cli; # added 2015-02-17753750 spice_gtk = spice-gtk; # added 2018-02-25754751 spice_protocol = spice-protocol; # added 2018-02-25752752+ spidermonkey_1_8_5 = throw "spidermonkey_1_8_5 has been removed, because it is based on Firefox 4.0 from 2011."; # added 2021-05-03755753 spidermonkey_38 = throw "spidermonkey_38 has been removed. Please use spidermonkey_78 instead."; # added 2021-03-21756754 spidermonkey_52 = throw "spidermonkey_52 has been removed. Please use spidermonkey_78 instead."; # added 2019-10-16757755 spidermonkey_60 = throw "spidermonkey_60 has been removed. Please use spidermonkey_78 instead."; # added 2021-03-21