2022-06-25 12:47:50 +02:00
|
|
|
{ system,
|
|
|
|
pkgs,
|
|
|
|
|
|
|
|
# Projects the test configuration into a the desired value; usually
|
|
|
|
# the test runner: `config: config.test`.
|
|
|
|
callTest,
|
|
|
|
|
|
|
|
}:
|
2018-11-11 12:30:07 +01:00
|
|
|
# The return value of this function will be an attrset with arbitrary depth and
|
|
|
|
# the `anything` returned by callTest at its test leafs.
|
|
|
|
# The tests not supported by `system` will be replaced with `{}`, so that
|
2018-11-11 14:55:23 +01:00
|
|
|
# `passthru.tests` can contain links to those without breaking on architectures
|
2018-11-11 12:30:07 +01:00
|
|
|
# where said tests are unsupported.
|
|
|
|
# Example callTest that just extracts the derivation from the test:
|
|
|
|
# callTest = t: t.test;
|
|
|
|
|
|
|
|
with pkgs.lib;
|
|
|
|
|
|
|
|
let
|
|
|
|
discoverTests = val:
|
2022-06-25 21:26:50 +02:00
|
|
|
if isAttrs val
|
|
|
|
then
|
|
|
|
if hasAttr "test" val then callTest val
|
2023-08-06 15:40:10 +02:00
|
|
|
else mapAttrs (n: s: if n == "passthru" then s else discoverTests s) val
|
2022-06-25 21:26:50 +02:00
|
|
|
else if isFunction val
|
|
|
|
then
|
|
|
|
# Tests based on make-test-python.nix will return the second lambda
|
|
|
|
# in that file, which are then forwarded to the test definition
|
|
|
|
# following the `import make-test-python.nix` expression
|
|
|
|
# (if it is a function).
|
|
|
|
discoverTests (val { inherit system pkgs; })
|
|
|
|
else val;
|
2018-11-11 12:30:07 +01:00
|
|
|
handleTest = path: args:
|
|
|
|
discoverTests (import path ({ inherit system pkgs; } // args));
|
|
|
|
handleTestOn = systems: path: args:
|
|
|
|
if elem system systems then handleTest path args
|
|
|
|
else {};
|
2021-12-03 13:04:36 +01:00
|
|
|
|
2022-01-07 01:09:46 +01:00
|
|
|
nixosLib = import ../lib {
|
|
|
|
# Experimental features need testing too, but there's no point in warning
|
|
|
|
# about it, so we enable the feature flag.
|
|
|
|
featureFlags.minimalModules = {};
|
|
|
|
};
|
2021-12-03 13:04:36 +01:00
|
|
|
evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; };
|
2022-06-03 14:34:29 +02:00
|
|
|
|
2022-06-06 20:19:59 +02:00
|
|
|
inherit
|
|
|
|
(rec {
|
2022-09-29 10:32:31 +02:00
|
|
|
doRunTest = arg: ((import ../lib/testing-python.nix { inherit system pkgs; }).evalTest {
|
2023-05-07 19:25:33 +02:00
|
|
|
imports = [ arg readOnlyPkgs ];
|
2022-09-29 10:32:31 +02:00
|
|
|
}).config.result;
|
2022-06-06 20:19:59 +02:00
|
|
|
findTests = tree:
|
|
|
|
if tree?recurseForDerivations && tree.recurseForDerivations
|
2022-06-25 12:47:50 +02:00
|
|
|
then
|
|
|
|
mapAttrs
|
|
|
|
(k: findTests)
|
|
|
|
(builtins.removeAttrs tree ["recurseForDerivations"])
|
|
|
|
else callTest tree;
|
|
|
|
|
2022-06-06 20:19:59 +02:00
|
|
|
runTest = arg: let r = doRunTest arg; in findTests r;
|
|
|
|
runTestOn = systems: arg:
|
|
|
|
if elem system systems then runTest arg
|
|
|
|
else {};
|
|
|
|
})
|
|
|
|
runTest
|
|
|
|
runTestOn
|
|
|
|
;
|
|
|
|
|
2023-05-07 15:44:54 +02:00
|
|
|
# Using a single instance of nixpkgs makes test evaluation faster.
|
|
|
|
# To make sure we don't accidentally depend on a modified pkgs, we make the
|
|
|
|
# related options read-only. We need to test the right configuration.
|
|
|
|
#
|
|
|
|
# If your service depends on a nixpkgs setting, first try to avoid that, but
|
|
|
|
# otherwise, you can remove the readOnlyPkgs import and test your service as
|
|
|
|
# usual.
|
|
|
|
readOnlyPkgs =
|
|
|
|
# TODO: We currently accept this for nixosTests, so that the `pkgs` argument
|
|
|
|
# is consistent with `pkgs` in `pkgs.nixosTests`. Can we reinitialize
|
|
|
|
# it with `allowAliases = false`?
|
|
|
|
# warnIf pkgs.config.allowAliases "nixosTests: pkgs includes aliases."
|
|
|
|
{
|
|
|
|
_class = "nixosTest";
|
2023-05-07 17:10:40 +02:00
|
|
|
node.pkgs = pkgs;
|
2023-05-07 15:44:54 +02:00
|
|
|
};
|
|
|
|
|
2022-06-06 19:24:30 +02:00
|
|
|
in {
|
2023-04-25 11:59:14 +02:00
|
|
|
|
|
|
|
# Testing the test driver
|
|
|
|
nixos-test-driver = {
|
|
|
|
extra-python-packages = handleTest ./nixos-test-driver/extra-python-packages.nix {};
|
2023-06-04 05:10:20 +02:00
|
|
|
lib-extend = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./nixos-test-driver/lib-extend.nix {};
|
2023-04-25 12:21:38 +02:00
|
|
|
node-name = runTest ./nixos-test-driver/node-name.nix;
|
2023-07-07 10:58:13 +02:00
|
|
|
busybox = runTest ./nixos-test-driver/busybox.nix;
|
2023-04-25 11:59:14 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
# NixOS vm tests and non-vm unit tests
|
|
|
|
|
2022-06-06 21:19:22 +02:00
|
|
|
_3proxy = runTest ./3proxy.nix;
|
2023-04-04 20:18:38 +02:00
|
|
|
aaaaxy = runTest ./aaaaxy.nix;
|
2022-06-06 23:49:59 +02:00
|
|
|
acme = runTest ./acme.nix;
|
2023-05-31 15:08:39 +02:00
|
|
|
acme-dns = handleTest ./acme-dns.nix {};
|
2022-06-09 17:43:22 +02:00
|
|
|
adguardhome = runTest ./adguardhome.nix;
|
2022-11-25 19:20:39 +01:00
|
|
|
aesmd = runTestOn ["x86_64-linux"] ./aesmd.nix;
|
2022-06-09 17:46:51 +02:00
|
|
|
agate = runTest ./web-servers/agate.nix;
|
2020-04-19 20:01:37 +02:00
|
|
|
agda = handleTest ./agda.nix {};
|
2021-05-03 17:38:02 +02:00
|
|
|
airsonic = handleTest ./airsonic.nix {};
|
2022-09-24 15:52:36 +02:00
|
|
|
akkoma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./akkoma.nix {};
|
|
|
|
akkoma-confined = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./akkoma.nix { confined = true; };
|
2023-04-11 17:55:16 +02:00
|
|
|
alice-lg = handleTest ./alice-lg.nix {};
|
2021-10-05 13:33:18 +02:00
|
|
|
allTerminfo = handleTest ./all-terminfo.nix {};
|
2022-11-16 17:56:44 +01:00
|
|
|
alps = handleTest ./alps.nix {};
|
2021-04-18 11:19:06 +02:00
|
|
|
amazon-init-shell = handleTest ./amazon-init-shell.nix {};
|
2023-08-10 20:42:41 +02:00
|
|
|
amd-sev = runTest ./amd-sev.nix;
|
2020-11-02 21:05:23 +01:00
|
|
|
anbox = runTest ./anbox.nix;
|
2023-06-27 12:30:06 +02:00
|
|
|
anuko-time-tracker = handleTest ./anuko-time-tracker.nix {};
|
2022-12-29 13:43:50 +01:00
|
|
|
apcupsd = handleTest ./apcupsd.nix {};
|
2023-04-04 20:12:51 +02:00
|
|
|
apfs = runTest ./apfs.nix;
|
2023-07-16 22:16:55 +02:00
|
|
|
appliance-repart-image = runTest ./appliance-repart-image.nix;
|
2021-02-28 22:18:01 +01:00
|
|
|
apparmor = handleTest ./apparmor.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
atd = handleTest ./atd.nix {};
|
2021-05-14 02:11:05 +02:00
|
|
|
atop = handleTest ./atop.nix {};
|
2022-12-16 04:07:15 +01:00
|
|
|
atuin = handleTest ./atuin.nix {};
|
2023-09-29 11:46:13 +02:00
|
|
|
audiobookshelf = handleTest ./audiobookshelf.nix {};
|
2022-07-31 23:40:48 +02:00
|
|
|
auth-mysql = handleTest ./auth-mysql.nix {};
|
2023-03-02 22:18:50 +01:00
|
|
|
authelia = handleTest ./authelia.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
avahi = handleTest ./avahi.nix {};
|
2020-10-11 20:45:25 +02:00
|
|
|
avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
|
2019-10-12 01:30:55 +02:00
|
|
|
babeld = handleTest ./babeld.nix {};
|
2020-05-10 12:54:09 +02:00
|
|
|
bazarr = handleTest ./bazarr.nix {};
|
2021-11-06 22:24:16 +01:00
|
|
|
bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {};
|
2019-02-22 14:10:02 +01:00
|
|
|
beanstalkd = handleTest ./beanstalkd.nix {};
|
2019-11-24 01:10:17 +01:00
|
|
|
bees = handleTest ./bees.nix {};
|
2022-10-04 06:06:28 +02:00
|
|
|
binary-cache = handleTest ./binary-cache.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
bind = handleTest ./bind.nix {};
|
2022-01-25 15:15:52 +01:00
|
|
|
bird = handleTest ./bird.nix {};
|
2023-04-12 09:20:16 +02:00
|
|
|
birdwatcher = handleTest ./birdwatcher.nix {};
|
2020-07-21 13:43:32 +02:00
|
|
|
bitcoind = handleTest ./bitcoind.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
bittorrent = handleTest ./bittorrent.nix {};
|
2020-06-23 13:09:03 +02:00
|
|
|
blockbook-frontend = handleTest ./blockbook-frontend.nix {};
|
2022-02-10 23:44:18 +01:00
|
|
|
blocky = handleTest ./blocky.nix {};
|
2021-05-25 20:13:29 +02:00
|
|
|
boot = handleTestOn ["x86_64-linux" "aarch64-linux"] ./boot.nix {};
|
2022-12-21 23:11:37 +01:00
|
|
|
bootspec = handleTestOn ["x86_64-linux"] ./bootspec.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
boot-stage1 = handleTest ./boot-stage1.nix {};
|
|
|
|
borgbackup = handleTest ./borgbackup.nix {};
|
2021-05-04 14:30:25 +02:00
|
|
|
botamusique = handleTest ./botamusique.nix {};
|
2021-12-04 02:20:26 +01:00
|
|
|
bpf = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bpf.nix {};
|
2023-06-29 04:43:06 +02:00
|
|
|
bpftune = handleTest ./bpftune.nix {};
|
2022-01-26 14:03:05 +01:00
|
|
|
breitbandmessung = handleTest ./breitbandmessung.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
brscan5 = handleTest ./brscan5.nix {};
|
2021-05-30 14:00:00 +02:00
|
|
|
btrbk = handleTest ./btrbk.nix {};
|
2022-10-02 12:42:57 +02:00
|
|
|
btrbk-doas = handleTest ./btrbk-doas.nix {};
|
2022-03-19 16:51:32 +01:00
|
|
|
btrbk-no-timer = handleTest ./btrbk-no-timer.nix {};
|
2022-10-18 17:50:44 +02:00
|
|
|
btrbk-section-order = handleTest ./btrbk-section-order.nix {};
|
2023-02-17 03:48:02 +01:00
|
|
|
budgie = handleTest ./budgie.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
buildbot = handleTest ./buildbot.nix {};
|
2020-11-30 00:00:38 +01:00
|
|
|
buildkite-agents = handleTest ./buildkite-agents.nix {};
|
2019-10-09 13:32:03 +02:00
|
|
|
caddy = handleTest ./caddy.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
cadvisor = handleTestOn ["x86_64-linux"] ./cadvisor.nix {};
|
2021-05-27 20:37:24 +02:00
|
|
|
cage = handleTest ./cage.nix {};
|
|
|
|
cagebreak = handleTest ./cagebreak.nix {};
|
2021-02-23 12:23:20 +01:00
|
|
|
calibre-web = handleTest ./calibre-web.nix {};
|
2023-06-28 14:06:47 +02:00
|
|
|
calibre-server = handleTest ./calibre-server.nix {};
|
2023-04-07 15:36:13 +02:00
|
|
|
castopod = handleTest ./castopod.nix {};
|
2020-12-09 13:01:56 +01:00
|
|
|
cassandra_3_0 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_0; };
|
|
|
|
cassandra_3_11 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_11; };
|
2022-04-06 13:03:07 +02:00
|
|
|
cassandra_4 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_4; };
|
2023-03-24 14:29:07 +01:00
|
|
|
ceph-multi-node = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./ceph-multi-node.nix {};
|
|
|
|
ceph-single-node = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./ceph-single-node.nix {};
|
|
|
|
ceph-single-node-bluestore = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./ceph-single-node-bluestore.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
certmgr = handleTest ./certmgr.nix {};
|
2022-09-24 09:38:37 +02:00
|
|
|
cfssl = handleTestOn ["aarch64-linux" "x86_64-linux"] ./cfssl.nix {};
|
2022-04-05 02:02:11 +02:00
|
|
|
cgit = handleTest ./cgit.nix {};
|
2020-08-25 09:44:27 +02:00
|
|
|
charliecloud = handleTest ./charliecloud.nix {};
|
2022-10-09 23:29:45 +02:00
|
|
|
chromium = (handleTestOn ["aarch64-linux" "x86_64-linux"] ./chromium.nix {}).stable or {};
|
2023-08-10 02:02:33 +02:00
|
|
|
chrony = handleTestOn ["aarch64-linux" "x86_64-linux"] ./chrony.nix {};
|
2023-01-15 14:06:58 +01:00
|
|
|
chrony-ptp = handleTestOn ["aarch64-linux" "x86_64-linux"] ./chrony-ptp.nix {};
|
2022-09-05 09:40:17 +02:00
|
|
|
cinnamon = handleTest ./cinnamon.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
cjdns = handleTest ./cjdns.nix {};
|
2018-12-19 15:06:53 +01:00
|
|
|
clickhouse = handleTest ./clickhouse.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
cloud-init = handleTest ./cloud-init.nix {};
|
2022-09-30 16:08:49 +02:00
|
|
|
cloud-init-hostname = handleTest ./cloud-init-hostname.nix {};
|
2023-01-02 00:19:37 +01:00
|
|
|
cloudlog = handleTest ./cloudlog.nix {};
|
2022-09-24 08:15:39 +02:00
|
|
|
cntr = handleTestOn ["aarch64-linux" "x86_64-linux"] ./cntr.nix {};
|
2023-01-29 18:40:46 +01:00
|
|
|
cockpit = handleTest ./cockpit.nix {};
|
2020-11-30 00:00:38 +01:00
|
|
|
cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {};
|
2023-05-17 08:22:43 +02:00
|
|
|
code-server = handleTest ./code-server.nix {};
|
2022-10-24 22:08:00 +02:00
|
|
|
coder = handleTest ./coder.nix {};
|
2021-12-22 13:00:00 +01:00
|
|
|
collectd = handleTest ./collectd.nix {};
|
2023-01-26 00:22:21 +01:00
|
|
|
connman = handleTest ./connman.nix {};
|
2019-11-24 15:08:53 +01:00
|
|
|
consul = handleTest ./consul.nix {};
|
2023-04-25 16:54:08 +02:00
|
|
|
consul-template = handleTest ./consul-template.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
containers-bridge = handleTest ./containers-bridge.nix {};
|
2020-04-19 15:41:18 +02:00
|
|
|
containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {};
|
2019-08-18 21:37:38 +02:00
|
|
|
containers-ephemeral = handleTest ./containers-ephemeral.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
containers-extra_veth = handleTest ./containers-extra_veth.nix {};
|
|
|
|
containers-hosts = handleTest ./containers-hosts.nix {};
|
|
|
|
containers-imperative = handleTest ./containers-imperative.nix {};
|
2019-11-26 00:44:12 +01:00
|
|
|
containers-ip = handleTest ./containers-ip.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
containers-macvlans = handleTest ./containers-macvlans.nix {};
|
2021-02-26 17:14:08 +01:00
|
|
|
containers-names = handleTest ./containers-names.nix {};
|
2021-02-24 14:02:57 +01:00
|
|
|
containers-nested = handleTest ./containers-nested.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
containers-physical_interfaces = handleTest ./containers-physical_interfaces.nix {};
|
2019-12-10 20:34:37 +01:00
|
|
|
containers-portforward = handleTest ./containers-portforward.nix {};
|
2020-08-23 11:00:09 +02:00
|
|
|
containers-reloadable = handleTest ./containers-reloadable.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
containers-restart_networking = handleTest ./containers-restart_networking.nix {};
|
|
|
|
containers-tmpfs = handleTest ./containers-tmpfs.nix {};
|
2022-10-29 22:22:57 +02:00
|
|
|
containers-unified-hierarchy = handleTest ./containers-unified-hierarchy.nix {};
|
2020-06-05 14:54:29 +02:00
|
|
|
convos = handleTest ./convos.nix {};
|
2020-01-07 17:52:32 +01:00
|
|
|
corerad = handleTest ./corerad.nix {};
|
2021-07-03 09:32:03 +02:00
|
|
|
coturn = handleTest ./coturn.nix {};
|
2019-07-24 20:48:43 +02:00
|
|
|
couchdb = handleTest ./couchdb.nix {};
|
2022-09-24 09:39:15 +02:00
|
|
|
cri-o = handleTestOn ["aarch64-linux" "x86_64-linux"] ./cri-o.nix {};
|
2022-07-20 20:14:06 +02:00
|
|
|
cups-pdf = handleTest ./cups-pdf.nix {};
|
2023-07-21 20:37:48 +02:00
|
|
|
curl-impersonate = handleTest ./curl-impersonate.nix {};
|
2021-01-10 18:28:29 +01:00
|
|
|
custom-ca = handleTest ./custom-ca.nix {};
|
2020-07-22 10:34:57 +02:00
|
|
|
croc = handleTest ./croc.nix {};
|
2023-05-02 01:39:19 +02:00
|
|
|
darling = handleTest ./darling.nix {};
|
2023-09-02 20:30:30 +02:00
|
|
|
dae = handleTest ./dae.nix {};
|
2023-06-14 10:27:19 +02:00
|
|
|
dconf = handleTest ./dconf.nix {};
|
2023-04-25 05:34:09 +02:00
|
|
|
deepin = handleTest ./deepin.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
deluge = handleTest ./deluge.nix {};
|
2022-05-13 09:46:01 +02:00
|
|
|
dendrite = handleTest ./matrix/dendrite.nix {};
|
2021-09-20 01:43:54 +02:00
|
|
|
dex-oidc = handleTest ./dex-oidc.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
dhparams = handleTest ./dhparams.nix {};
|
2021-09-12 08:06:34 +02:00
|
|
|
disable-installer-tools = handleTest ./disable-installer-tools.nix {};
|
2021-03-14 15:44:34 +01:00
|
|
|
discourse = handleTest ./discourse.nix {};
|
2020-02-02 00:59:02 +01:00
|
|
|
dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
|
2023-07-21 12:02:48 +02:00
|
|
|
dnscrypt-wrapper = runTestOn ["x86_64-linux"] ./dnscrypt-wrapper;
|
2022-01-18 08:59:57 +01:00
|
|
|
dnsdist = handleTest ./dnsdist.nix {};
|
2020-04-14 05:13:36 +02:00
|
|
|
doas = handleTest ./doas.nix {};
|
2022-09-24 09:40:42 +02:00
|
|
|
docker = handleTestOn ["aarch64-linux" "x86_64-linux"] ./docker.nix {};
|
|
|
|
docker-rootless = handleTestOn ["aarch64-linux" "x86_64-linux"] ./docker-rootless.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
docker-registry = handleTest ./docker-registry.nix {};
|
|
|
|
docker-tools = handleTestOn ["x86_64-linux"] ./docker-tools.nix {};
|
2020-12-13 00:33:46 +01:00
|
|
|
docker-tools-cross = handleTestOn ["x86_64-linux" "aarch64-linux"] ./docker-tools-cross.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
docker-tools-overlay = handleTestOn ["x86_64-linux"] ./docker-tools-overlay.nix {};
|
2019-03-26 19:04:28 +01:00
|
|
|
documize = handleTest ./documize.nix {};
|
2022-07-14 11:57:37 +02:00
|
|
|
documentation = pkgs.callPackage ../modules/misc/documentation/test.nix { inherit nixosLib; };
|
2022-01-23 12:11:05 +01:00
|
|
|
doh-proxy-rust = handleTest ./doh-proxy-rust.nix {};
|
2019-12-25 23:04:55 +01:00
|
|
|
dokuwiki = handleTest ./dokuwiki.nix {};
|
2022-11-01 14:02:39 +01:00
|
|
|
dolibarr = handleTest ./dolibarr.nix {};
|
2021-11-13 23:00:20 +01:00
|
|
|
domination = handleTest ./domination.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
dovecot = handleTest ./dovecot.nix {};
|
2021-11-30 21:42:29 +01:00
|
|
|
drbd = handleTest ./drbd.nix {};
|
2022-03-24 08:34:09 +01:00
|
|
|
earlyoom = handleTestOn ["x86_64-linux"] ./earlyoom.nix {};
|
2023-04-25 13:07:08 +02:00
|
|
|
early-mount-options = handleTest ./early-mount-options.nix {};
|
2020-02-13 21:31:58 +01:00
|
|
|
ec2-config = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-config or {};
|
2018-11-11 12:30:07 +01:00
|
|
|
ec2-nixops = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-nixops or {};
|
|
|
|
ecryptfs = handleTest ./ecryptfs.nix {};
|
2022-05-17 20:16:22 +02:00
|
|
|
fscrypt = handleTest ./fscrypt.nix {};
|
2019-06-15 11:16:28 +02:00
|
|
|
ejabberd = handleTest ./xmpp/ejabberd.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
elk = handleTestOn ["x86_64-linux"] ./elk.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
emacs-daemon = handleTest ./emacs-daemon.nix {};
|
2022-10-22 14:53:35 +02:00
|
|
|
endlessh = handleTest ./endlessh.nix {};
|
2022-09-23 22:39:38 +02:00
|
|
|
endlessh-go = handleTest ./endlessh-go.nix {};
|
2020-05-24 14:20:58 +02:00
|
|
|
engelsystem = handleTest ./engelsystem.nix {};
|
2020-05-02 16:28:50 +02:00
|
|
|
enlightenment = handleTest ./enlightenment.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
env = handleTest ./env.nix {};
|
2022-12-28 15:09:54 +01:00
|
|
|
envfs = handleTest ./envfs.nix {};
|
2021-08-28 04:28:27 +02:00
|
|
|
envoy = handleTest ./envoy.nix {};
|
2020-05-24 20:39:23 +02:00
|
|
|
ergo = handleTest ./ergo.nix {};
|
2022-01-12 21:47:27 +01:00
|
|
|
ergochat = handleTest ./ergochat.nix {};
|
2023-07-29 12:20:37 +02:00
|
|
|
eris-server = handleTest ./eris-server.nix {};
|
2023-03-22 22:48:59 +01:00
|
|
|
esphome = handleTest ./esphome.nix {};
|
2021-12-03 13:21:16 +01:00
|
|
|
etc = pkgs.callPackage ../modules/system/etc/test.nix { inherit evalMinimalConfig; };
|
2022-12-01 17:49:48 +01:00
|
|
|
activation = pkgs.callPackage ../modules/system/activation/test.nix { };
|
2018-11-11 12:30:07 +01:00
|
|
|
etcd = handleTestOn ["x86_64-linux"] ./etcd.nix {};
|
2019-07-10 01:46:21 +02:00
|
|
|
etcd-cluster = handleTestOn ["x86_64-linux"] ./etcd-cluster.nix {};
|
2021-03-28 23:49:45 +02:00
|
|
|
etebase-server = handleTest ./etebase-server.nix {};
|
2020-11-30 22:10:07 +01:00
|
|
|
etesync-dav = handleTest ./etesync-dav.nix {};
|
2021-07-27 15:14:24 +02:00
|
|
|
evcc = handleTest ./evcc.nix {};
|
2022-11-19 13:13:56 +01:00
|
|
|
fail2ban = handleTest ./fail2ban.nix { };
|
2023-06-18 02:59:06 +02:00
|
|
|
fakeroute = handleTest ./fakeroute.nix {};
|
2019-10-29 15:06:32 +01:00
|
|
|
fancontrol = handleTest ./fancontrol.nix {};
|
2023-03-12 07:19:03 +01:00
|
|
|
fcitx5 = handleTest ./fcitx5 {};
|
2022-01-23 12:11:05 +01:00
|
|
|
fenics = handleTest ./fenics.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
ferm = handleTest ./ferm.nix {};
|
2021-08-09 11:57:57 +02:00
|
|
|
firefox = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox; };
|
2023-03-24 14:18:26 +01:00
|
|
|
firefox-beta = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-beta; };
|
2023-03-24 14:16:22 +01:00
|
|
|
firefox-devedition = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-devedition; };
|
2021-08-10 16:15:57 +02:00
|
|
|
firefox-esr = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr; }; # used in `tested` job
|
firefox-esr-115-unwrapped: init at 115.0esr
The next major version of the Firefox Extended Support Release.
https://www.mozilla.org/en-US/firefox/115.0/releasenotes/
https://www.mozilla.org/en-US/security/advisories/mfsa2023-22/
Fixes: CVE-2023-3482, CVE-2023-37201, CVE-2023-37202, CVE-2023-37203
CVE-2023-37204, CVE-2023-37205, CVE-2023-37206, CVE-2023-37207,
CVE-2023-37208, CVE-2023-37209, CVE-2023-37210, CVE-2023-37211,
CVE-2023-37211, CVE-2023-37212
2023-07-03 02:39:20 +02:00
|
|
|
firefox-esr-115 = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr-115; };
|
2020-08-07 18:45:20 +02:00
|
|
|
firejail = handleTest ./firejail.nix {};
|
2022-12-22 17:23:23 +01:00
|
|
|
firewall = handleTest ./firewall.nix { nftables = false; };
|
|
|
|
firewall-nftables = handleTest ./firewall.nix { nftables = true; };
|
2018-12-17 20:12:09 +01:00
|
|
|
fish = handleTest ./fish.nix {};
|
2019-02-12 18:26:08 +01:00
|
|
|
flannel = handleTestOn ["x86_64-linux"] ./flannel.nix {};
|
2019-07-29 17:35:27 +02:00
|
|
|
fluentd = handleTest ./fluentd.nix {};
|
2021-08-21 22:51:01 +02:00
|
|
|
fluidd = handleTest ./fluidd.nix {};
|
2019-08-29 14:02:20 +02:00
|
|
|
fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix {};
|
2023-08-06 18:41:37 +02:00
|
|
|
forgejo = handleTest ./forgejo.nix { };
|
2022-11-29 18:30:00 +01:00
|
|
|
freenet = handleTest ./freenet.nix {};
|
2020-01-07 15:53:34 +01:00
|
|
|
freeswitch = handleTest ./freeswitch.nix {};
|
2023-01-06 01:25:34 +01:00
|
|
|
freshrss-sqlite = handleTest ./freshrss-sqlite.nix {};
|
|
|
|
freshrss-pgsql = handleTest ./freshrss-pgsql.nix {};
|
2023-03-30 13:06:31 +02:00
|
|
|
frigate = handleTest ./frigate.nix {};
|
2023-09-13 15:24:47 +02:00
|
|
|
frp = handleTest ./frp.nix {};
|
2021-06-08 21:37:03 +02:00
|
|
|
frr = handleTest ./frr.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
fsck = handleTest ./fsck.nix {};
|
2022-12-21 05:05:02 +01:00
|
|
|
fsck-systemd-stage-1 = handleTest ./fsck.nix { systemdStage1 = true; };
|
2020-07-29 19:40:38 +02:00
|
|
|
ft2-clone = handleTest ./ft2-clone.nix {};
|
2023-05-24 14:48:02 +02:00
|
|
|
legit = handleTest ./legit.nix {};
|
2022-06-07 12:53:15 +02:00
|
|
|
mimir = handleTest ./mimir.nix {};
|
2022-10-15 22:40:34 +02:00
|
|
|
garage = handleTest ./garage {};
|
2022-08-11 12:10:58 +02:00
|
|
|
gemstash = handleTest ./gemstash.nix {};
|
2020-03-05 22:11:28 +01:00
|
|
|
gerrit = handleTest ./gerrit.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
geth = handleTest ./geth.nix {};
|
2021-05-20 01:15:28 +02:00
|
|
|
ghostunnel = handleTest ./ghostunnel.nix {};
|
2020-02-26 14:05:00 +01:00
|
|
|
gitdaemon = handleTest ./gitdaemon.nix {};
|
2023-02-24 02:59:30 +01:00
|
|
|
gitea = handleTest ./gitea.nix { giteaPackage = pkgs.gitea; };
|
2023-02-26 13:50:49 +01:00
|
|
|
github-runner = handleTest ./github-runner.nix {};
|
2023-05-11 09:07:37 +02:00
|
|
|
gitlab = runTest ./gitlab.nix;
|
2018-11-11 12:30:07 +01:00
|
|
|
gitolite = handleTest ./gitolite.nix {};
|
2019-12-05 00:10:57 +01:00
|
|
|
gitolite-fcgiwrap = handleTest ./gitolite-fcgiwrap.nix {};
|
2019-08-17 01:28:43 +02:00
|
|
|
glusterfs = handleTest ./glusterfs.nix {};
|
2021-05-07 23:18:14 +02:00
|
|
|
gnome = handleTest ./gnome.nix {};
|
2022-12-28 22:45:22 +01:00
|
|
|
gnome-flashback = handleTest ./gnome-flashback.nix {};
|
2021-05-07 23:18:14 +02:00
|
|
|
gnome-xorg = handleTest ./gnome-xorg.nix {};
|
2023-02-02 18:17:40 +01:00
|
|
|
gnupg = handleTest ./gnupg.nix {};
|
2020-11-30 00:00:38 +01:00
|
|
|
go-neb = handleTest ./go-neb.nix {};
|
2021-04-09 16:57:33 +02:00
|
|
|
gobgpd = handleTest ./gobgpd.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
gocd-agent = handleTest ./gocd-agent.nix {};
|
|
|
|
gocd-server = handleTest ./gocd-server.nix {};
|
2022-09-10 18:01:37 +02:00
|
|
|
gollum = handleTest ./gollum.nix {};
|
2022-12-21 01:08:48 +01:00
|
|
|
gonic = handleTest ./gonic.nix {};
|
2019-05-17 03:29:17 +02:00
|
|
|
google-oslogin = handleTest ./google-oslogin {};
|
2020-11-30 00:00:38 +01:00
|
|
|
gotify-server = handleTest ./gotify-server.nix {};
|
2023-05-19 20:18:17 +02:00
|
|
|
gotosocial = runTest ./web-apps/gotosocial.nix;
|
2022-09-18 11:35:07 +02:00
|
|
|
grafana = handleTest ./grafana {};
|
2022-06-15 12:11:03 +02:00
|
|
|
grafana-agent = handleTest ./grafana-agent.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
graphite = handleTest ./graphite.nix {};
|
2019-07-09 02:01:43 +02:00
|
|
|
graylog = handleTest ./graylog.nix {};
|
2020-11-30 00:00:38 +01:00
|
|
|
grocy = handleTest ./grocy.nix {};
|
2020-06-13 12:06:26 +02:00
|
|
|
grub = handleTest ./grub.nix {};
|
2023-06-16 19:11:59 +02:00
|
|
|
guacamole-client = handleTest ./guacamole-client.nix {};
|
2023-06-16 19:12:42 +02:00
|
|
|
guacamole-server = handleTest ./guacamole-server.nix {};
|
2019-11-27 08:01:46 +01:00
|
|
|
gvisor = handleTest ./gvisor.nix {};
|
2022-01-08 14:08:34 +01:00
|
|
|
hadoop = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop; };
|
|
|
|
hadoop_3_2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop_3_2; };
|
|
|
|
hadoop2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop2; };
|
2022-01-23 12:11:05 +01:00
|
|
|
haka = handleTest ./haka.nix {};
|
2022-03-02 18:00:16 +01:00
|
|
|
haste-server = handleTest ./haste-server.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
haproxy = handleTest ./haproxy.nix {};
|
2019-01-06 14:04:41 +01:00
|
|
|
hardened = handleTest ./hardened.nix {};
|
2023-05-10 18:41:25 +02:00
|
|
|
harmonia = runTest ./harmonia.nix;
|
2022-12-01 16:47:24 +01:00
|
|
|
headscale = handleTest ./headscale.nix {};
|
2022-06-10 14:31:00 +02:00
|
|
|
healthchecks = handleTest ./web-apps/healthchecks.nix {};
|
2022-03-28 22:19:17 +02:00
|
|
|
hbase2 = handleTest ./hbase.nix { package=pkgs.hbase2; };
|
2022-09-30 18:43:14 +02:00
|
|
|
hbase_2_4 = handleTest ./hbase.nix { package=pkgs.hbase_2_4; };
|
2022-03-28 22:19:17 +02:00
|
|
|
hbase3 = handleTest ./hbase.nix { package=pkgs.hbase3; };
|
2023-06-25 18:35:47 +02:00
|
|
|
hddfancontrol = handleTest ./hddfancontrol.nix {};
|
2020-11-29 18:51:50 +01:00
|
|
|
hedgedoc = handleTest ./hedgedoc.nix {};
|
2020-11-27 20:20:36 +01:00
|
|
|
herbstluftwm = handleTest ./herbstluftwm.nix {};
|
2023-07-12 17:46:28 +02:00
|
|
|
homepage-dashboard = handleTest ./homepage-dashboard.nix {};
|
2023-08-17 18:08:48 +02:00
|
|
|
honk = runTest ./honk.nix;
|
2020-11-30 00:00:38 +01:00
|
|
|
installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
|
2021-09-07 19:44:12 +02:00
|
|
|
invidious = handleTest ./invidious.nix {};
|
2022-09-24 07:58:01 +02:00
|
|
|
oci-containers = handleTestOn ["aarch64-linux" "x86_64-linux"] ./oci-containers.nix {};
|
2021-11-02 01:48:47 +01:00
|
|
|
odoo = handleTest ./odoo.nix {};
|
2023-08-24 22:04:40 +02:00
|
|
|
odoo15 = handleTest ./odoo.nix { package = pkgs.odoo15; };
|
2020-03-26 14:33:57 +01:00
|
|
|
# 9pnet_virtio used to mount /nix partition doesn't support
|
|
|
|
# hibernation. This test happens to work on x86_64-linux but
|
|
|
|
# not on other platforms.
|
|
|
|
hibernate = handleTestOn ["x86_64-linux"] ./hibernate.nix {};
|
2022-04-13 13:48:20 +02:00
|
|
|
hibernate-systemd-stage-1 = handleTestOn ["x86_64-linux"] ./hibernate.nix { systemdStage1 = true; };
|
2018-11-11 12:30:07 +01:00
|
|
|
hitch = handleTest ./hitch {};
|
2020-01-20 12:34:57 +01:00
|
|
|
hledger-web = handleTest ./hledger-web.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
hocker-fetchdocker = handleTest ./hocker-fetchdocker {};
|
2021-07-18 09:51:49 +02:00
|
|
|
hockeypuck = handleTest ./hockeypuck.nix { };
|
2018-11-11 12:30:07 +01:00
|
|
|
home-assistant = handleTest ./home-assistant.nix {};
|
2020-05-12 23:48:27 +02:00
|
|
|
hostname = handleTest ./hostname.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
hound = handleTest ./hound.nix {};
|
2020-12-29 17:13:26 +01:00
|
|
|
hub = handleTest ./git/hub.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
hydra = handleTest ./hydra {};
|
|
|
|
i3wm = handleTest ./i3wm.nix {};
|
2019-07-07 03:03:59 +02:00
|
|
|
icingaweb2 = handleTest ./icingaweb2.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
iftop = handleTest ./iftop.nix {};
|
2018-11-14 23:51:15 +01:00
|
|
|
incron = handleTest ./incron.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
influxdb = handleTest ./influxdb.nix {};
|
2023-08-15 00:26:41 +02:00
|
|
|
influxdb2 = handleTest ./influxdb2.nix {};
|
2020-07-01 00:02:56 +02:00
|
|
|
initrd-network-openvpn = handleTest ./initrd-network-openvpn {};
|
2020-11-30 00:00:38 +01:00
|
|
|
initrd-network-ssh = handleTest ./initrd-network-ssh {};
|
2023-03-22 15:17:23 +01:00
|
|
|
initrd-luks-empty-passphrase = handleTest ./initrd-luks-empty-passphrase.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
initrdNetwork = handleTest ./initrd-network.nix {};
|
2020-12-12 14:39:58 +01:00
|
|
|
initrd-secrets = handleTest ./initrd-secrets.nix {};
|
nixos/grub: Name initrd-secrets by system, not by initrd
Previously, secrets were named according to the initrd they were
associated with. This created a problem: If secrets were changed whilst
the initrd remained the same, there were two versions of the secrets
with one initrd. The result was that only one version of the secrets would
by recorded into the /boot partition and get used. AFAICT this would
only be the oldest version of the secrets for the given initrd version.
This manifests as #114594, which I found frustrating while trying to use
initrd secrets for the first time. While developing the secrets I found
I could not get new versions of the secrets to take effect.
Additionally, it's a nasty issue to run into if you had cause to change
the initrd secrets for credential rotation, etc, if you change them and
discover you cannot, or alternatively that you can't roll back as you
would expect.
Additional changes in this patch.
* Add a regression test that switching to another grub configuration
with the alternate secrets works. This test relies on the fact that it
is not changing the initrd. I have checked that the test fails if I
undo my change.
* Persist the useBootLoader disk state, similarly to other boot state.
* I had to do this, otherwise I could not find a route to testing the
alternate boot configuration. I did attempt a few different ways of
testing this, including directly running install-grub.pl, but what
I've settled on is most like what a user would do and avoids
depending on lots of internal details.
* Making tests that test the boot are a bit tricky (see hibernate.nix
and installer.nix for inspiration), I found that in addition to
having to copy quite a bit of code I still couldn't get things to
work as desired since the bootloader state was being clobbered.
My change to persist the useBootLoader state could break things,
conceptually. I need some help here discovering if that is the case,
possibly by letting this run through a staging CI if there is one.
Fix #114594.
cc potential reviewers:
@lopsided98 (original implementer) @joachifm (original reviewer),
@wkennington (numerous fixes to grub-install.pl), @lheckemann (wrote
original secrets test).
2023-01-05 13:28:32 +01:00
|
|
|
initrd-secrets-changing = handleTest ./initrd-secrets-changing.nix {};
|
2022-02-18 22:47:54 +01:00
|
|
|
input-remapper = handleTest ./input-remapper.nix {};
|
2021-03-22 14:32:46 +01:00
|
|
|
inspircd = handleTest ./inspircd.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
installer = handleTest ./installer.nix {};
|
2022-04-17 23:24:13 +02:00
|
|
|
installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix {};
|
2022-01-20 14:45:35 +01:00
|
|
|
invoiceplane = handleTest ./invoiceplane.nix {};
|
2020-02-02 13:00:00 +01:00
|
|
|
iodine = handleTest ./iodine.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
ipv6 = handleTest ./ipv6.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
iscsi-multipath-root = handleTest ./iscsi-multipath-root.nix {};
|
2020-10-18 19:55:42 +02:00
|
|
|
iscsi-root = handleTest ./iscsi-root.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
isso = handleTest ./isso.nix {};
|
2019-01-25 07:09:36 +01:00
|
|
|
jackett = handleTest ./jackett.nix {};
|
2019-05-01 11:57:34 +02:00
|
|
|
jellyfin = handleTest ./jellyfin.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
jenkins = handleTest ./jenkins.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
jenkins-cli = handleTest ./jenkins-cli.nix {};
|
2021-10-15 20:00:24 +02:00
|
|
|
jibri = handleTest ./jibri.nix {};
|
2020-02-06 17:00:19 +01:00
|
|
|
jirafeau = handleTest ./jirafeau.nix {};
|
2020-03-18 04:23:15 +01:00
|
|
|
jitsi-meet = handleTest ./jitsi-meet.nix {};
|
2023-07-01 18:50:08 +02:00
|
|
|
jool = import ./jool.nix { inherit pkgs runTest; };
|
2022-07-22 08:13:20 +02:00
|
|
|
k3s = handleTest ./k3s {};
|
2019-04-01 14:39:25 +02:00
|
|
|
kafka = handleTest ./kafka.nix {};
|
2022-05-05 12:09:42 +02:00
|
|
|
kanidm = handleTest ./kanidm.nix {};
|
2022-10-10 07:16:25 +02:00
|
|
|
karma = handleTest ./karma.nix {};
|
2023-04-30 05:27:25 +02:00
|
|
|
kavita = handleTest ./kavita.nix {};
|
2021-05-30 20:37:14 +02:00
|
|
|
kbd-setfont-decompress = handleTest ./kbd-setfont-decompress.nix {};
|
2021-07-19 21:21:02 +02:00
|
|
|
kbd-update-search-paths-patch = handleTest ./kbd-update-search-paths-patch.nix {};
|
2021-07-14 00:43:17 +02:00
|
|
|
kea = handleTest ./kea.nix {};
|
2019-12-22 08:45:31 +01:00
|
|
|
keepalived = handleTest ./keepalived.nix {};
|
2021-02-02 12:35:46 +01:00
|
|
|
keepassxc = handleTest ./keepassxc.nix {};
|
2019-01-11 05:36:51 +01:00
|
|
|
kerberos = handleTest ./kerberos/default.nix {};
|
2021-04-07 17:57:58 +02:00
|
|
|
kernel-generic = handleTest ./kernel-generic.nix {};
|
2021-01-31 14:55:53 +01:00
|
|
|
kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
|
2022-05-18 15:41:54 +02:00
|
|
|
keter = handleTest ./keter.nix {};
|
2021-10-25 00:20:46 +02:00
|
|
|
kexec = handleTest ./kexec.nix {};
|
2020-10-26 15:33:57 +01:00
|
|
|
keycloak = discoverTests (import ./keycloak.nix);
|
2023-03-15 14:15:38 +01:00
|
|
|
keyd = handleTest ./keyd.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
keymap = handleTest ./keymap.nix {};
|
2019-03-13 01:12:56 +01:00
|
|
|
knot = handleTest ./knot.nix {};
|
2022-08-12 23:52:52 +02:00
|
|
|
komga = handleTest ./komga.nix {};
|
2020-02-14 09:56:43 +01:00
|
|
|
krb5 = discoverTests (import ./krb5 {});
|
2021-02-26 13:06:18 +01:00
|
|
|
ksm = handleTest ./ksm.nix {};
|
2022-09-25 20:46:03 +02:00
|
|
|
kthxbye = handleTest ./kthxbye.nix {};
|
2021-07-30 17:16:23 +02:00
|
|
|
kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
|
2023-04-14 02:43:41 +02:00
|
|
|
kubo = runTest ./kubo.nix;
|
2022-08-16 15:03:37 +02:00
|
|
|
ladybird = handleTest ./ladybird.nix {};
|
2022-08-16 20:33:08 +02:00
|
|
|
languagetool = handleTest ./languagetool.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
latestKernel.login = handleTest ./login.nix { latestKernel = true; };
|
|
|
|
leaps = handleTest ./leaps.nix {};
|
2022-09-02 11:02:51 +02:00
|
|
|
lemmy = handleTest ./lemmy.nix {};
|
2021-11-15 12:46:20 +01:00
|
|
|
libinput = handleTest ./libinput.nix {};
|
2021-04-19 01:05:25 +02:00
|
|
|
libreddit = handleTest ./libreddit.nix {};
|
2021-11-18 19:10:48 +01:00
|
|
|
libresprite = handleTest ./libresprite.nix {};
|
2021-05-15 23:22:03 +02:00
|
|
|
libreswan = handleTest ./libreswan.nix {};
|
2022-07-09 02:40:24 +02:00
|
|
|
librewolf = handleTest ./firefox.nix { firefoxPackage = pkgs.librewolf; };
|
2022-07-15 22:00:28 +02:00
|
|
|
libuiohook = handleTest ./libuiohook.nix {};
|
2022-08-22 05:17:06 +02:00
|
|
|
libvirtd = handleTest ./libvirtd.nix {};
|
2021-11-15 12:46:20 +01:00
|
|
|
lidarr = handleTest ./lidarr.nix {};
|
2019-08-07 00:29:50 +02:00
|
|
|
lightdm = handleTest ./lightdm.nix {};
|
2022-07-24 17:04:12 +02:00
|
|
|
lighttpd = handleTest ./lighttpd.nix {};
|
2019-03-16 13:24:23 +01:00
|
|
|
limesurvey = handleTest ./limesurvey.nix {};
|
2023-08-23 17:50:28 +02:00
|
|
|
listmonk = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./listmonk.nix {};
|
2021-07-30 17:41:54 +02:00
|
|
|
litestream = handleTest ./litestream.nix {};
|
2023-04-27 15:26:57 +02:00
|
|
|
lldap = handleTest ./lldap.nix {};
|
2020-11-24 02:53:21 +01:00
|
|
|
locate = handleTest ./locate.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
login = handleTest ./login.nix {};
|
2022-02-11 09:49:52 +01:00
|
|
|
logrotate = handleTest ./logrotate.nix {};
|
2019-06-27 18:11:09 +02:00
|
|
|
loki = handleTest ./loki.nix {};
|
2023-02-20 08:19:02 +01:00
|
|
|
luks = handleTest ./luks.nix {};
|
2022-02-01 18:21:11 +01:00
|
|
|
lvm2 = handleTest ./lvm2 {};
|
2023-09-04 21:19:34 +02:00
|
|
|
lxd = pkgs.recurseIntoAttrs (handleTest ./lxd { inherit handleTestOn; });
|
2021-10-20 23:39:53 +02:00
|
|
|
lxd-image-server = handleTest ./lxd-image-server.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
#logstash = handleTest ./logstash.nix {};
|
2019-11-05 11:57:05 +01:00
|
|
|
lorri = handleTest ./lorri/default.nix {};
|
2023-04-21 08:59:13 +02:00
|
|
|
maddy = discoverTests (import ./maddy { inherit handleTest; });
|
2022-04-01 04:41:31 +02:00
|
|
|
maestral = handleTest ./maestral.nix {};
|
2020-03-30 13:30:05 +02:00
|
|
|
magic-wormhole-mailbox-server = handleTest ./magic-wormhole-mailbox-server.nix {};
|
2020-11-30 00:00:38 +01:00
|
|
|
magnetico = handleTest ./magnetico.nix {};
|
2019-03-27 12:35:24 +01:00
|
|
|
mailcatcher = handleTest ./mailcatcher.nix {};
|
2020-12-17 16:58:57 +01:00
|
|
|
mailhog = handleTest ./mailhog.nix {};
|
2023-02-09 18:56:56 +01:00
|
|
|
mailman = handleTest ./mailman.nix {};
|
2021-09-24 20:54:08 +02:00
|
|
|
man = handleTest ./man.nix {};
|
2021-12-08 10:47:07 +01:00
|
|
|
mariadb-galera = handleTest ./mysql/mariadb-galera.nix {};
|
2022-03-22 08:52:13 +01:00
|
|
|
mastodon = discoverTests (import ./web-apps/mastodon { inherit handleTestOn; });
|
2023-03-25 17:02:52 +01:00
|
|
|
pixelfed = discoverTests (import ./web-apps/pixelfed { inherit handleTestOn; });
|
2023-01-08 16:44:00 +01:00
|
|
|
mate = handleTest ./mate.nix {};
|
2019-10-04 22:38:58 +02:00
|
|
|
matomo = handleTest ./matomo.nix {};
|
2022-05-13 09:46:01 +02:00
|
|
|
matrix-appservice-irc = handleTest ./matrix/appservice-irc.nix {};
|
|
|
|
matrix-conduit = handleTest ./matrix/conduit.nix {};
|
|
|
|
matrix-synapse = handleTest ./matrix/synapse.nix {};
|
2023-07-07 11:27:55 +02:00
|
|
|
matrix-synapse-workers = handleTest ./matrix/synapse-workers.nix {};
|
2021-04-12 03:29:29 +02:00
|
|
|
mattermost = handleTest ./mattermost.nix {};
|
2023-08-10 20:43:26 +02:00
|
|
|
mediamtx = handleTest ./mediamtx.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
mediatomb = handleTest ./mediatomb.nix {};
|
2019-06-06 03:19:11 +02:00
|
|
|
mediawiki = handleTest ./mediawiki.nix {};
|
2020-04-07 11:00:43 +02:00
|
|
|
meilisearch = handleTest ./meilisearch.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
memcached = handleTest ./memcached.nix {};
|
2022-10-19 10:49:57 +02:00
|
|
|
merecat = handleTest ./merecat.nix {};
|
2019-08-18 09:28:16 +02:00
|
|
|
metabase = handleTest ./metabase.nix {};
|
2023-01-15 00:28:32 +01:00
|
|
|
mindustry = handleTest ./mindustry.nix {};
|
2020-11-28 18:42:10 +01:00
|
|
|
minecraft = handleTest ./minecraft.nix {};
|
2020-11-28 18:42:46 +01:00
|
|
|
minecraft-server = handleTest ./minecraft-server.nix {};
|
2020-11-30 00:00:38 +01:00
|
|
|
minidlna = handleTest ./minidlna.nix {};
|
2018-12-21 19:36:58 +01:00
|
|
|
miniflux = handleTest ./miniflux.nix {};
|
2019-02-05 17:38:34 +01:00
|
|
|
minio = handleTest ./minio.nix {};
|
2023-02-04 02:23:14 +01:00
|
|
|
miriway = handleTest ./miriway.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
misc = handleTest ./misc.nix {};
|
2021-05-30 17:33:09 +02:00
|
|
|
mjolnir = handleTest ./matrix/mjolnir.nix {};
|
2023-09-05 17:53:09 +02:00
|
|
|
mobilizon = handleTest ./mobilizon.nix {};
|
2021-08-13 20:55:15 +02:00
|
|
|
mod_perl = handleTest ./mod_perl.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
molly-brown = handleTest ./molly-brown.nix {};
|
2023-04-16 11:21:57 +02:00
|
|
|
monica = handleTest ./web-apps/monica.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
mongodb = handleTest ./mongodb.nix {};
|
2019-06-21 16:09:15 +02:00
|
|
|
moodle = handleTest ./moodle.nix {};
|
2022-03-22 23:35:39 +01:00
|
|
|
moonraker = handleTest ./moonraker.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
morty = handleTest ./morty.nix {};
|
2019-04-24 10:23:13 +02:00
|
|
|
mosquitto = handleTest ./mosquitto.nix {};
|
2021-10-06 21:51:07 +02:00
|
|
|
moosefs = handleTest ./moosefs.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
mpd = handleTest ./mpd.nix {};
|
2021-08-01 00:44:02 +02:00
|
|
|
mpv = handleTest ./mpv.nix {};
|
2021-11-15 06:58:12 +01:00
|
|
|
mtp = handleTest ./mtp.nix {};
|
2023-02-03 10:28:48 +01:00
|
|
|
multipass = handleTest ./multipass.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
mumble = handleTest ./mumble.nix {};
|
2023-02-04 11:16:53 +01:00
|
|
|
# Fails on aarch64-linux at the PDF creation step - need to debug this on an
|
|
|
|
# aarch64 machine..
|
|
|
|
musescore = handleTestOn ["x86_64-linux"] ./musescore.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
munin = handleTest ./munin.nix {};
|
|
|
|
mutableUsers = handleTest ./mutable-users.nix {};
|
2019-05-18 22:18:01 +02:00
|
|
|
mxisd = handleTest ./mxisd.nix {};
|
2020-04-02 22:40:55 +02:00
|
|
|
mysql = handleTest ./mysql/mysql.nix {};
|
|
|
|
mysql-autobackup = handleTest ./mysql/mysql-autobackup.nix {};
|
|
|
|
mysql-backup = handleTest ./mysql/mysql-backup.nix {};
|
|
|
|
mysql-replication = handleTest ./mysql/mysql-replication.nix {};
|
2020-11-28 18:00:25 +01:00
|
|
|
n8n = handleTest ./n8n.nix {};
|
2019-12-30 13:00:00 +01:00
|
|
|
nagios = handleTest ./nagios.nix {};
|
2020-11-06 18:59:51 +01:00
|
|
|
nar-serve = handleTest ./nar-serve.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
nat.firewall = handleTest ./nat.nix { withFirewall = true; };
|
|
|
|
nat.standalone = handleTest ./nat.nix { withFirewall = false; };
|
2022-12-22 17:23:23 +01:00
|
|
|
nat.nftables.firewall = handleTest ./nat.nix { withFirewall = true; nftables = true; };
|
|
|
|
nat.nftables.standalone = handleTest ./nat.nix { withFirewall = false; nftables = true; };
|
2021-06-26 13:58:40 +02:00
|
|
|
nats = handleTest ./nats.nix {};
|
2020-12-05 19:11:21 +01:00
|
|
|
navidrome = handleTest ./navidrome.nix {};
|
2022-03-06 14:49:57 +01:00
|
|
|
nbd = handleTest ./nbd.nix {};
|
2020-06-07 23:59:12 +02:00
|
|
|
ncdns = handleTest ./ncdns.nix {};
|
2019-02-03 16:47:01 +01:00
|
|
|
ndppd = handleTest ./ndppd.nix {};
|
2021-03-05 06:28:58 +01:00
|
|
|
nebula = handleTest ./nebula.nix {};
|
2022-08-14 18:59:15 +02:00
|
|
|
netbird = handleTest ./netbird.nix {};
|
2019-02-01 14:29:54 +01:00
|
|
|
neo4j = handleTest ./neo4j.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
netdata = handleTest ./netdata.nix {};
|
|
|
|
networking.networkd = handleTest ./networking.nix { networkd = true; };
|
|
|
|
networking.scripted = handleTest ./networking.nix { networkd = false; };
|
2023-09-24 09:51:26 +02:00
|
|
|
netbox_3_5 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_5; };
|
2023-09-24 10:06:08 +02:00
|
|
|
netbox_3_6 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_6; };
|
2023-07-31 14:56:05 +02:00
|
|
|
netbox-upgrade = handleTest ./web-apps/netbox-upgrade.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
# TODO: put in networking.nix after the test becomes more complete
|
|
|
|
networkingProxy = handleTest ./networking-proxy.nix {};
|
|
|
|
nextcloud = handleTest ./nextcloud {};
|
|
|
|
nexus = handleTest ./nexus.nix {};
|
2019-11-27 15:37:27 +01:00
|
|
|
# TODO: Test nfsv3 + Kerberos
|
|
|
|
nfs3 = handleTest ./nfs { version = 3; };
|
|
|
|
nfs4 = handleTest ./nfs { version = 4; };
|
2018-11-11 12:30:07 +01:00
|
|
|
nghttpx = handleTest ./nghttpx.nix {};
|
|
|
|
nginx = handleTest ./nginx.nix {};
|
2020-10-20 18:05:41 +02:00
|
|
|
nginx-auth = handleTest ./nginx-auth.nix {};
|
nginx: Clear Last-Modified if ETag is from store
This is what I've suspected a while ago[1]:
> Heads-up everyone: After testing this in a few production instances,
> it seems that some browsers still get cache hits for new store paths
> (and changed contents) for some reason. I highly suspect that it might
> be due to the last-modified header (as mentioned in [2]).
>
> Going to test this with last-modified disabled for a little while and
> if this is the case I think we should improve that patch by disabling
> last-modified if serving from a store path.
Much earlier[2] when I reviewed the patch, I wrote this:
> Other than that, it looks good to me.
>
> However, I'm not sure what we should do with Last-Modified header.
> From RFC 2616, section 13.3.4:
>
> - If both an entity tag and a Last-Modified value have been
> provided by the origin server, SHOULD use both validators in
> cache-conditional requests. This allows both HTTP/1.0 and
> HTTP/1.1 caches to respond appropriately.
>
> I'm a bit nervous about the SHOULD here, as user agents in the wild
> could possibly just use Last-Modified and use the cached content
> instead.
Unfortunately, I didn't pursue this any further back then because
@pbogdan noted[3] the following:
> Hmm, could they (assuming they are conforming):
>
> * If an entity tag has been provided by the origin server, MUST
> use that entity tag in any cache-conditional request (using If-
> Match or If-None-Match).
Since running with this patch in some deployments, I found that both
Firefox and Chrome/Chromium do NOT re-validate against the ETag if the
Last-Modified header is still the same.
So I wrote a small NixOS VM test with Geckodriver to have a test case
which is closer to the real world and I indeed was able to reproduce
this.
Whether this is actually a bug in Chrome or Firefox is an entirely
different issue and even IF it is the fault of the browsers and it is
fixed at some point, we'd still need to handle this for older browser
versions.
Apart from clearing the header, I also recreated the patch by using a
plain "git diff" with a small description on top. This should make it
easier for future authors to work on that patch.
[1]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-495072764
[2]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451644084
[3]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451646135
Signed-off-by: aszlig <aszlig@nix.build>
2019-12-30 14:06:00 +01:00
|
|
|
nginx-etag = handleTest ./nginx-etag.nix {};
|
2022-12-03 18:58:33 +01:00
|
|
|
nginx-globalredirect = handleTest ./nginx-globalredirect.nix {};
|
2022-04-18 12:22:39 +02:00
|
|
|
nginx-http3 = handleTest ./nginx-http3.nix {};
|
2022-02-15 00:10:37 +01:00
|
|
|
nginx-modsecurity = handleTest ./nginx-modsecurity.nix {};
|
2022-09-18 14:54:04 +02:00
|
|
|
nginx-njs = handleTest ./nginx-njs.nix {};
|
2023-07-28 20:30:43 +02:00
|
|
|
nginx-proxyprotocol = handleTest ./nginx-proxyprotocol {};
|
nginx: Fix ETag patch to ignore realpath(3) error
While our ETag patch works pretty fine if it comes to serving data off
store paths, it unfortunately broke something that might be a bit more
common, namely when using regexes to extract path components of
location directives for example.
Recently, @devhell has reported a bug with a nginx location directive
like this:
location ~^/\~([a-z0-9_]+)(/.*)?$" {
alias /home/$1/public_html$2;
}
While this might look harmless at first glance, it does however cause
issues with our ETag patch. The alias directive gets broken up by nginx
like this:
*2 http script copy: "/home/"
*2 http script capture: "foo"
*2 http script copy: "/public_html/"
*2 http script capture: "bar.txt"
In our patch however, we use realpath(3) to get the canonicalised path
from ngx_http_core_loc_conf_s.root, which returns the *configured* value
from the root or alias directive. So in the example above, realpath(3)
boils down to the following syscalls:
lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home/$1", 0x7ffd08da6f60) = -1 ENOENT (No such file or directory)
During my review[1] of the initial patch, I didn't actually notice that
what we're doing here is returning NGX_ERROR if the realpath(3) call
fails, which in turn causes an HTTP 500 error.
Since our patch actually made the canonicalisation (and thus additional
syscalls) necessary, we really shouldn't introduce an additional error
so let's - at least for now - silently skip return value if realpath(3)
has failed.
However since we're using the unaltered root from the config we have
another issue, consider this root:
/nix/store/...-abcde/$1
Calling realpath(3) on this path will fail (except if there's a file
called "$1" of course), so even this fix is not enough because it
results in the ETag not being set to the store path hash.
While this is very ugly and we should fix this very soon, it's not as
serious as getting HTTP 500 errors for serving static files.
I added a small NixOS VM test, which uses the example above as a
regression test.
It seems that my memory is failing these days, since apparently I *knew*
about this issue since digging for existing issues in nixpkgs, I found
this similar pull request which I even reviewed:
https://github.com/NixOS/nixpkgs/pull/66532
However, since the comments weren't addressed and the author hasn't
responded to the pull request, I decided to keep this very commit and do
a follow-up pull request.
[1]: https://github.com/NixOS/nixpkgs/pull/48337
Signed-off-by: aszlig <aszlig@nix.build>
Reported-by: @devhell
Acked-by: @7c6f434c
Acked-by: @yorickvP
Merges: https://github.com/NixOS/nixpkgs/pull/80671
Fixes: https://github.com/NixOS/nixpkgs/pull/66532
2020-02-20 20:43:42 +01:00
|
|
|
nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
|
2020-04-23 21:00:27 +02:00
|
|
|
nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
|
2018-12-28 11:41:52 +01:00
|
|
|
nginx-sso = handleTest ./nginx-sso.nix {};
|
2023-07-28 19:36:55 +02:00
|
|
|
nginx-status-page = handleTest ./nginx-status-page.nix {};
|
2020-06-02 07:01:03 +02:00
|
|
|
nginx-variants = handleTest ./nginx-variants.nix {};
|
2022-04-10 19:41:30 +02:00
|
|
|
nifi = handleTestOn ["x86_64-linux"] ./web-apps/nifi.nix {};
|
2021-07-26 12:00:05 +02:00
|
|
|
nitter = handleTest ./nitter.nix {};
|
2022-04-11 20:51:29 +02:00
|
|
|
nix-ld = handleTest ./nix-ld.nix {};
|
2021-12-03 17:19:42 +01:00
|
|
|
nix-serve = handleTest ./nix-serve.nix {};
|
|
|
|
nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
|
2021-10-18 00:38:58 +02:00
|
|
|
nixops = handleTest ./nixops/default.nix {};
|
2019-08-07 18:04:18 +02:00
|
|
|
nixos-generate-config = handleTest ./nixos-generate-config.nix {};
|
nixos: add --specialisation to nixos-rebuild
This commit fixes a papercut in nixos-rebuild where people wanting to
switch to a specialisation (or test one) were forced to manually figure
out the specialisation's path and run its activation script - since now,
there's a dedicated option to do just that.
This is a backwards-compatible change which doesn't affect the existing
behavior, which - to be fair - might still be considered sus by some
people, the painful scenario here being:
- you boot into specialisation `foo`,
- you run `nixos-rebuild switch`,
- whoops, you're no longer at specialisation `foo`, but you're rather
brought back to the base system.
(it's especially painful for cases where specialisation is used to load
extra drivers, e.g. Nvidia, since then launching `nixos-rebuild switch`,
while forgetting that you're inside a specialisation, can cause some
parts of your system to get accidentally unloaded.)
I've tried to mitigate that by improving specialisations so that they
create a dedicated file somewhere in `/run/current-system` containing
the specialisation's name (which `nixos-rebuild` could then use as the
default value for `--specialisation`), but I haven't been able to come
up with anything working (plus it would be a breaking change then).
Closes https://github.com/NixOS/nixpkgs/issues/174065
2022-12-23 21:23:36 +01:00
|
|
|
nixos-rebuild-specialisations = handleTest ./nixos-rebuild-specialisations.nix {};
|
2021-12-03 13:04:36 +01:00
|
|
|
nixpkgs = pkgs.callPackage ../modules/misc/nixpkgs/test.nix { inherit evalMinimalConfig; };
|
2021-07-28 12:42:26 +02:00
|
|
|
node-red = handleTest ./node-red.nix {};
|
2021-01-23 23:52:19 +01:00
|
|
|
nomad = handleTest ./nomad.nix {};
|
2022-06-22 04:10:44 +02:00
|
|
|
non-default-filesystems = handleTest ./non-default-filesystems.nix {};
|
2022-01-22 03:06:13 +01:00
|
|
|
noto-fonts = handleTest ./noto-fonts.nix {};
|
2023-03-21 08:59:24 +01:00
|
|
|
noto-fonts-cjk-qt-default-weight = handleTest ./noto-fonts-cjk-qt-default-weight.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {};
|
2022-10-07 11:40:33 +02:00
|
|
|
nscd = handleTest ./nscd.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
nsd = handleTest ./nsd.nix {};
|
2022-09-01 14:36:19 +02:00
|
|
|
ntfy-sh = handleTest ./ntfy-sh.nix {};
|
2019-04-22 14:06:33 +02:00
|
|
|
nzbget = handleTest ./nzbget.nix {};
|
2020-10-04 16:06:53 +02:00
|
|
|
nzbhydra2 = handleTest ./nzbhydra2.nix {};
|
2020-11-05 02:37:50 +01:00
|
|
|
oh-my-zsh = handleTest ./oh-my-zsh.nix {};
|
2021-03-29 16:51:05 +02:00
|
|
|
ombi = handleTest ./ombi.nix {};
|
2019-10-22 16:20:56 +02:00
|
|
|
openarena = handleTest ./openarena.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
openldap = handleTest ./openldap.nix {};
|
2023-02-15 16:11:39 +01:00
|
|
|
opensearch = discoverTests (import ./opensearch.nix);
|
2021-10-07 05:36:02 +02:00
|
|
|
openresty-lua = handleTest ./openresty-lua.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
opensmtpd = handleTest ./opensmtpd.nix {};
|
2021-05-19 22:37:49 +02:00
|
|
|
opensmtpd-rspamd = handleTest ./opensmtpd-rspamd.nix {};
|
2023-08-08 22:00:52 +02:00
|
|
|
opensnitch = handleTest ./opensnitch.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
openssh = handleTest ./openssh.nix {};
|
2023-01-28 20:02:15 +01:00
|
|
|
octoprint = handleTest ./octoprint.nix {};
|
2019-01-28 15:09:48 +01:00
|
|
|
openstack-image-metadata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).metadata or {};
|
2020-11-30 00:00:38 +01:00
|
|
|
openstack-image-userdata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).userdata or {};
|
2021-01-08 17:48:00 +01:00
|
|
|
opentabletdriver = handleTest ./opentabletdriver.nix {};
|
2023-05-09 19:31:47 +02:00
|
|
|
opentelemetry-collector = handleTest ./opentelemetry-collector.nix {};
|
2021-09-23 10:48:29 +02:00
|
|
|
owncast = handleTest ./owncast.nix {};
|
2023-05-17 13:10:57 +02:00
|
|
|
outline = handleTest ./outline.nix {};
|
2020-12-20 21:18:54 +01:00
|
|
|
image-contents = handleTest ./image-contents.nix {};
|
2023-05-15 15:33:37 +02:00
|
|
|
openvscode-server = handleTest ./openvscode-server.nix {};
|
2019-08-21 00:27:14 +02:00
|
|
|
orangefs = handleTest ./orangefs.nix {};
|
2019-06-09 20:26:05 +02:00
|
|
|
os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};
|
2023-07-19 11:59:22 +02:00
|
|
|
osquery = handleTestOn ["x86_64-linux"] ./osquery.nix {};
|
2019-01-05 13:13:10 +01:00
|
|
|
osrm-backend = handleTest ./osrm-backend.nix {};
|
2019-01-23 10:19:23 +01:00
|
|
|
overlayfs = handleTest ./overlayfs.nix {};
|
2022-03-08 02:46:26 +01:00
|
|
|
pacemaker = handleTest ./pacemaker.nix {};
|
2019-04-24 10:45:29 +02:00
|
|
|
packagekit = handleTest ./packagekit.nix {};
|
2021-11-27 09:04:28 +01:00
|
|
|
pam-file-contents = handleTest ./pam/pam-file-contents.nix {};
|
|
|
|
pam-oath-login = handleTest ./pam/pam-oath-login.nix {};
|
|
|
|
pam-u2f = handleTest ./pam/pam-u2f.nix {};
|
2022-03-13 18:20:23 +01:00
|
|
|
pam-ussh = handleTest ./pam/pam-ussh.nix {};
|
2023-05-14 21:30:01 +02:00
|
|
|
pam-zfs-key = handleTest ./pam/zfs-key.nix {};
|
2022-04-16 07:18:57 +02:00
|
|
|
pass-secret-service = handleTest ./pass-secret-service.nix {};
|
2022-11-23 18:53:04 +01:00
|
|
|
patroni = handleTestOn ["x86_64-linux"] ./patroni.nix {};
|
2021-05-30 17:32:41 +02:00
|
|
|
pantalaimon = handleTest ./matrix/pantalaimon.nix {};
|
2019-01-24 23:33:05 +01:00
|
|
|
pantheon = handleTest ./pantheon.nix {};
|
2022-04-12 17:48:53 +02:00
|
|
|
paperless = handleTest ./paperless.nix {};
|
2021-06-02 18:19:37 +02:00
|
|
|
parsedmarc = handleTest ./parsedmarc {};
|
2020-11-30 00:00:38 +01:00
|
|
|
pdns-recursor = handleTest ./pdns-recursor.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
peerflix = handleTest ./peerflix.nix {};
|
2022-12-01 17:32:15 +01:00
|
|
|
peering-manager = handleTest ./web-apps/peering-manager.nix {};
|
2021-05-31 13:23:06 +02:00
|
|
|
peertube = handleTestOn ["x86_64-linux"] ./web-apps/peertube.nix {};
|
2023-01-03 23:05:34 +01:00
|
|
|
peroxide = handleTest ./peroxide.nix {};
|
2021-07-02 14:22:12 +02:00
|
|
|
pgadmin4 = handleTest ./pgadmin4.nix {};
|
2023-07-22 12:49:23 +02:00
|
|
|
pgbouncer = handleTest ./pgbouncer.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
pgjwt = handleTest ./pgjwt.nix {};
|
|
|
|
pgmanage = handleTest ./pgmanage.nix {};
|
2022-08-02 21:34:37 +02:00
|
|
|
phosh = handleTest ./phosh.nix {};
|
2023-01-15 00:16:35 +01:00
|
|
|
photoprism = handleTest ./photoprism.nix {};
|
2020-03-30 22:07:05 +02:00
|
|
|
php = handleTest ./php {};
|
2021-11-25 21:38:19 +01:00
|
|
|
php81 = handleTest ./php { php = pkgs.php81; };
|
2022-11-13 21:14:38 +01:00
|
|
|
php82 = handleTest ./php { php = pkgs.php82; };
|
2023-06-26 20:51:23 +02:00
|
|
|
php83 = handleTest ./php { php = pkgs.php83; };
|
2022-06-28 21:17:38 +02:00
|
|
|
phylactery = handleTest ./web-apps/phylactery.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
pict-rs = handleTest ./pict-rs.nix {};
|
2020-06-03 23:12:06 +02:00
|
|
|
pinnwand = handleTest ./pinnwand.nix {};
|
2022-09-17 15:02:37 +02:00
|
|
|
plasma-bigscreen = handleTest ./plasma-bigscreen.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
plasma5 = handleTest ./plasma5.nix {};
|
2021-10-31 21:34:10 +01:00
|
|
|
plasma5-systemd-start = handleTest ./plasma5-systemd-start.nix {};
|
2021-05-21 23:15:23 +02:00
|
|
|
plausible = handleTest ./plausible.nix {};
|
2022-09-29 23:12:29 +02:00
|
|
|
please = handleTest ./please.nix {};
|
2020-11-08 15:10:14 +01:00
|
|
|
pleroma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./pleroma.nix {};
|
2020-11-13 15:00:34 +01:00
|
|
|
plikd = handleTest ./plikd.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
plotinus = handleTest ./plotinus.nix {};
|
2021-04-14 19:15:41 +02:00
|
|
|
podgrab = handleTest ./podgrab.nix {};
|
2022-09-24 07:58:15 +02:00
|
|
|
podman = handleTestOn ["aarch64-linux" "x86_64-linux"] ./podman/default.nix {};
|
|
|
|
podman-tls-ghostunnel = handleTestOn ["aarch64-linux" "x86_64-linux"] ./podman/tls-ghostunnel.nix {};
|
2022-06-17 20:04:54 +02:00
|
|
|
polaris = handleTest ./polaris.nix {};
|
2021-01-08 04:03:00 +01:00
|
|
|
pomerium = handleTestOn ["x86_64-linux"] ./pomerium.nix {};
|
2023-05-21 18:53:52 +02:00
|
|
|
portunus = handleTest ./portunus.nix { };
|
2020-07-06 03:37:56 +02:00
|
|
|
postfix = handleTest ./postfix.nix {};
|
|
|
|
postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
|
2021-05-19 06:34:03 +02:00
|
|
|
postfixadmin = handleTest ./postfixadmin.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
postgis = handleTest ./postgis.nix {};
|
2023-05-30 11:39:25 +02:00
|
|
|
apache_datasketches = handleTest ./apache_datasketches.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
postgresql = handleTest ./postgresql.nix {};
|
postgresql: implement opt-in JIT support
Closes #150801
Note: I decided against resuming directly on #150801 because the
conflict was too big (and resolving it seemed too error-prone to me).
Also the `this`-refactoring could be done in an easier manner, i.e. by
exposing JIT attributes with the correct configuration. More on that
below.
This patch creates variants of the `postgresql*`-packages with JIT[1]
support. Please note that a lot of the work was derived from previous
patches filed by other contributors, namely dasJ, andir and abbradar,
hence the co-authored-by tags below.
Effectively, the following things have changed:
* For JIT variants an LLVM-backed stdenv with clang is now used as
suggested by dasJ[2]. We need LLVM and CLang[3] anyways to build the
JIT-part, so no need to mix this up with GCC's stdenv. Also, using the
`dev`-output of LLVM and clang's stdenv for building (and adding llvm
libs as build-inputs) seems more cross friendly to me (which will
become useful when cross-building for JIT-variants will actually be
supported).
* Plugins inherit the build flags from the Makefiles in
`$out/lib/pgxs/src` (e.g. `-Werror=unguarded-availability-new`). Since
some of the flags are clang-specific (and stem from the use of the
CLang stdenv) and don't work on gcc, the stdenv of `pkgs.postgresql`
is passed to the plugins. I.e., plugins for non-JIT variants are built
with a gcc stdenv on Linux and plugins for JIT variants with a clang
stdenv.
Since `plv8` hard-codes `gcc` as `$CC` in its Makefile[4], I marked it
as broken for JIT-variants of postgresql only.
* Added a test-matrix to confirm that JIT works fine on each
`pkgs.postgresql_*_jit` (thanks Andi for the original test in
#124804!).
* For each postgresql version, a new attribute
`postgresql_<version>_jit` (and a corresponding
`postgresqlPackages<version>JitPackages`) are now exposed for better
discoverability and prebuilt artifacts in the binary cache.
* In #150801 the `this`-argument was replaced by an internal recursion.
I decided against this approach because it'd blow up the diff even
more which makes the readability way harder and also harder to revert
this if necessary.
Instead, it is made sure that `this` always points to the correct
variant of `postgresql` and re-using that in an additional
`.override {}`-expression is trivial because the JIT-variant is
exposed in `all-packages.nix`.
* I think the changes are sufficiently big to actually add myself as
maintainer here.
* Added `libxcrypt` to `buildInputs` for versions <v13. While
building things with an LLVM stdenv, these versions complained that
the extern `crypt()` symbol can't be found. Not sure what this is
exactly about, but since we want to switch to libxcrypt for `crypt()`
usage anyways[5] I decided to add it. For >=13 it's not relevant
anymore anyways[6].
* JIT support doesn't work with cross-compilation. It is attempted to
build LLVM-bytecode (`%.bc` is the corresponding `make(1)`-rule) for
each sub-directory in `backend/` for the JIT apparently, but with a
$(CLANG) that can produce binaries for the build, not the host-platform.
I managed to get a cross-build with JIT support working with
`depsBuildBuild = [ llvmPackages.clang ] ++ buildInputs`, but
considering that the resulting LLVM IR isn't platform-independent this
doesn't give you much. In fact, I tried to test the result in a VM-test,
but as soon as JIT was used to optimize a query, postgres would
coredump with `Illegal instruction`.
A common concern of the original approach - with llvm as build input -
was the massive increase of closure size. With the new approach of using
the LLVM stdenv directly and patching out references to the clang drv in
`$out` the effective closure size changes are:
$ nix path-info -Sh $(nix-build -A postgresql_14)
/nix/store/kssxxqycwa3c7kmwmykwxqvspxxa6r1w-postgresql-14.7 306.4M
$ nix path-info -Sh $(nix-build -A postgresql_14_jit)
/nix/store/xc7qmgqrn4h5yr4vmdwy56gs4bmja9ym-postgresql-14.7 689.2M
Most of the increase in closure-size stems from the `lib`-output of
LLVM
$ nix path-info -Sh /nix/store/5r97sbs5j6mw7qnbg8nhnq1gad9973ap-llvm-11.1.0-lib
/nix/store/5r97sbs5j6mw7qnbg8nhnq1gad9973ap-llvm-11.1.0-lib 349.8M
which is why this shouldn't be enabled by default.
While this is quite much because of LLVM, it's still a massive
improvement over the simple approach of adding llvm/clang as
build-inputs and building with `--with-llvm`:
$ nix path-info -Sh $(nix-build -E '
with import ./. {};
postgresql.overrideAttrs ({ configureFlags ? [], buildInputs ? [], ... }: {
configureFlags = configureFlags ++ [ "--with-llvm" ];
buildInputs = buildInputs ++ [ llvm clang ];
})' -j0)
/nix/store/i3bd2r21c6c3428xb4gavjnplfqxn27p-postgresql-14.7 1.6G
Co-authored-by: Andreas Rammhold <andreas@rammhold.de>
Co-authored-by: Janne Heß <janne@hess.ooo>
Co-authored-by: Nikolay Amiantov <ab@fmap.me>
[1] https://www.postgresql.org/docs/current/jit-reason.html
[2] https://github.com/NixOS/nixpkgs/pull/124804#issuecomment-864616931
& https://github.com/NixOS/nixpkgs/pull/150801#issuecomment-1467868321
[3] This fails with the following error otherwise:
```
configure: error: clang not found, but required when compiling --with-llvm, specify with CLANG=
```
[4] https://github.com/plv8/plv8/blob/v3.1.5/Makefile#L14
[5] https://github.com/NixOS/nixpkgs/pull/181764
[6] https://github.com/postgres/postgres/commit/c45643d618e35ec2fe91438df15abd4f3c0d85ca
2023-03-18 09:54:54 +01:00
|
|
|
postgresql-jit = handleTest ./postgresql-jit.nix {};
|
2019-08-11 19:09:42 +02:00
|
|
|
postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
powerdns = handleTest ./powerdns.nix {};
|
2021-12-17 10:33:40 +01:00
|
|
|
powerdns-admin = handleTest ./powerdns-admin.nix {};
|
2021-10-29 06:15:27 +02:00
|
|
|
power-profiles-daemon = handleTest ./power-profiles-daemon.nix {};
|
2019-10-15 06:26:54 +02:00
|
|
|
pppd = handleTest ./pppd.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
predictable-interface-names = handleTest ./predictable-interface-names.nix {};
|
2022-12-07 15:52:08 +01:00
|
|
|
printing-socket = handleTest ./printing.nix { socket = true; };
|
|
|
|
printing-service = handleTest ./printing.nix { socket = false; };
|
2020-04-21 13:37:00 +02:00
|
|
|
privacyidea = handleTest ./privacyidea.nix {};
|
2021-03-03 17:18:09 +01:00
|
|
|
privoxy = handleTest ./privoxy.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
prometheus = handleTest ./prometheus.nix {};
|
|
|
|
prometheus-exporters = handleTest ./prometheus-exporters.nix {};
|
2019-06-15 11:16:28 +02:00
|
|
|
prosody = handleTest ./xmpp/prosody.nix {};
|
2022-02-18 20:19:31 +01:00
|
|
|
prosody-mysql = handleTest ./xmpp/prosody-mysql.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
proxy = handleTest ./proxy.nix {};
|
2021-10-10 17:54:22 +02:00
|
|
|
prowlarr = handleTest ./prowlarr.nix {};
|
2020-07-29 19:00:33 +02:00
|
|
|
pt2-clone = handleTest ./pt2-clone.nix {};
|
2022-06-27 00:20:04 +02:00
|
|
|
pykms = handleTest ./pykms.nix {};
|
2021-12-01 11:06:18 +01:00
|
|
|
public-inbox = handleTest ./public-inbox.nix {};
|
2023-04-07 08:34:25 +02:00
|
|
|
pufferpanel = handleTest ./pufferpanel.nix {};
|
2021-11-30 14:51:06 +01:00
|
|
|
pulseaudio = discoverTests (import ./pulseaudio.nix);
|
2020-05-22 05:15:32 +02:00
|
|
|
qboot = handleTestOn ["x86_64-linux" "i686-linux"] ./qboot.nix {};
|
2023-01-12 19:50:27 +01:00
|
|
|
qemu-vm-restrictnetwork = handleTest ./qemu-vm-restrictnetwork.nix {};
|
2023-06-21 01:38:27 +02:00
|
|
|
qemu-vm-volatile-root = runTest ./qemu-vm-volatile-root.nix;
|
2023-06-21 00:19:21 +02:00
|
|
|
qemu-vm-external-disk-image = runTest ./qemu-vm-external-disk-image.nix;
|
2023-08-28 17:59:16 +02:00
|
|
|
qgis = handleTest ./qgis.nix { qgisPackage = pkgs.qgis; };
|
|
|
|
qgis-ltr = handleTest ./qgis.nix { qgisPackage = pkgs.qgis-ltr; };
|
2023-06-16 08:19:47 +02:00
|
|
|
qownnotes = handleTest ./qownnotes.nix {};
|
2023-08-28 17:59:16 +02:00
|
|
|
quake3 = handleTest ./quake3.nix {};
|
|
|
|
quorum = handleTest ./quorum.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
rabbitmq = handleTest ./rabbitmq.nix {};
|
2019-01-24 23:09:21 +01:00
|
|
|
radarr = handleTest ./radarr.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
radicale = handleTest ./radicale.nix {};
|
2023-08-08 11:53:51 +02:00
|
|
|
ragnarwm = handleTest ./ragnarwm.nix {};
|
2021-02-02 01:39:50 +01:00
|
|
|
rasdaemon = handleTest ./rasdaemon.nix {};
|
2023-03-12 20:54:23 +01:00
|
|
|
readarr = handleTest ./readarr.nix {};
|
2019-08-31 20:17:33 +02:00
|
|
|
redis = handleTest ./redis.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
redmine = handleTest ./redmine.nix {};
|
2021-09-08 21:02:28 +02:00
|
|
|
restartByActivationScript = handleTest ./restart-by-activation-script.nix {};
|
2020-01-30 22:31:52 +01:00
|
|
|
restic = handleTest ./restic.nix {};
|
2022-02-05 00:50:11 +01:00
|
|
|
retroarch = handleTest ./retroarch.nix {};
|
2020-08-30 18:31:54 +02:00
|
|
|
robustirc-bridge = handleTest ./robustirc-bridge.nix {};
|
2018-11-28 17:33:26 +01:00
|
|
|
roundcube = handleTest ./roundcube.nix {};
|
2023-05-15 14:09:28 +02:00
|
|
|
rshim = handleTest ./rshim.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
rspamd = handleTest ./rspamd.nix {};
|
2018-10-27 11:33:43 +02:00
|
|
|
rss2email = handleTest ./rss2email.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
rstudio-server = handleTest ./rstudio-server.nix {};
|
|
|
|
rsyncd = handleTest ./rsyncd.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
rsyslogd = handleTest ./rsyslogd.nix {};
|
|
|
|
rxe = handleTest ./rxe.nix {};
|
2021-09-21 13:38:22 +02:00
|
|
|
sabnzbd = handleTest ./sabnzbd.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
samba = handleTest ./samba.nix {};
|
2020-11-23 15:13:22 +01:00
|
|
|
samba-wsdd = handleTest ./samba-wsdd.nix {};
|
2019-10-27 04:37:30 +01:00
|
|
|
sanoid = handleTest ./sanoid.nix {};
|
2023-06-26 19:41:28 +02:00
|
|
|
scaphandre = handleTest ./scaphandre.nix {};
|
2022-05-31 17:27:54 +02:00
|
|
|
schleuder = handleTest ./schleuder.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
sddm = handleTest ./sddm.nix {};
|
2021-11-07 09:05:36 +01:00
|
|
|
seafile = handleTest ./seafile.nix {};
|
2020-11-02 01:34:53 +01:00
|
|
|
searx = handleTest ./searx.nix {};
|
2020-02-28 12:17:01 +01:00
|
|
|
service-runner = handleTest ./service-runner.nix {};
|
2023-04-19 15:13:54 +02:00
|
|
|
sftpgo = runTest ./sftpgo.nix;
|
2022-03-20 22:39:04 +01:00
|
|
|
sfxr-qt = handleTest ./sfxr-qt.nix {};
|
2022-11-26 08:59:13 +01:00
|
|
|
sgtpuzzles = handleTest ./sgtpuzzles.nix {};
|
2020-12-23 19:28:30 +01:00
|
|
|
shadow = handleTest ./shadow.nix {};
|
2020-09-09 00:15:59 +02:00
|
|
|
shadowsocks = handleTest ./shadowsocks {};
|
2020-08-09 15:20:17 +02:00
|
|
|
shattered-pixel-dungeon = handleTest ./shattered-pixel-dungeon.nix {};
|
2019-11-08 18:17:08 +01:00
|
|
|
shiori = handleTest ./shiori.nix {};
|
2019-05-23 00:50:51 +02:00
|
|
|
signal-desktop = handleTest ./signal-desktop.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
simple = handleTest ./simple.nix {};
|
2023-06-27 06:58:10 +02:00
|
|
|
sing-box = handleTest ./sing-box.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
slurm = handleTest ./slurm.nix {};
|
|
|
|
smokeping = handleTest ./smokeping.nix {};
|
2020-07-28 14:47:36 +02:00
|
|
|
snapcast = handleTest ./snapcast.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
snapper = handleTest ./snapper.nix {};
|
2023-04-26 17:46:15 +02:00
|
|
|
snipe-it = runTest ./web-apps/snipe-it.nix;
|
2022-01-23 12:11:05 +01:00
|
|
|
soapui = handleTest ./soapui.nix {};
|
2020-05-12 18:32:39 +02:00
|
|
|
sogo = handleTest ./sogo.nix {};
|
2021-05-20 22:03:39 +02:00
|
|
|
solanum = handleTest ./solanum.nix {};
|
2020-11-30 00:00:38 +01:00
|
|
|
sonarr = handleTest ./sonarr.nix {};
|
2021-08-28 19:46:05 +02:00
|
|
|
sourcehut = handleTest ./sourcehut.nix {};
|
2019-05-24 21:17:51 +02:00
|
|
|
spacecookie = handleTest ./spacecookie.nix {};
|
2022-02-08 14:59:23 +01:00
|
|
|
spark = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./spark {};
|
2022-11-13 20:13:15 +01:00
|
|
|
sqlite3-to-mysql = handleTest ./sqlite3-to-mysql.nix {};
|
2020-01-18 13:00:00 +01:00
|
|
|
sslh = handleTest ./sslh.nix {};
|
2020-08-24 15:55:22 +02:00
|
|
|
sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {};
|
2020-09-01 07:03:20 +02:00
|
|
|
sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
|
2023-09-02 20:27:11 +02:00
|
|
|
stalwart-mail = handleTest ./stalwart-mail.nix {};
|
2023-04-17 01:24:06 +02:00
|
|
|
stargazer = runTest ./web-servers/stargazer.nix;
|
2021-12-24 12:24:29 +01:00
|
|
|
starship = handleTest ./starship.nix {};
|
2023-07-01 18:17:39 +02:00
|
|
|
static-web-server = handleTest ./web-servers/static-web-server.nix {};
|
2021-11-12 21:37:11 +01:00
|
|
|
step-ca = handleTestOn ["x86_64-linux"] ./step-ca.nix {};
|
2022-09-12 09:18:11 +02:00
|
|
|
stratis = handleTest ./stratis {};
|
2018-11-11 12:30:07 +01:00
|
|
|
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
|
2022-02-22 23:08:43 +01:00
|
|
|
stunnel = handleTest ./stunnel.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
sudo = handleTest ./sudo.nix {};
|
2023-09-07 17:53:18 +02:00
|
|
|
sudo-rs = handleTest ./sudo-rs.nix {};
|
2022-10-04 05:08:46 +02:00
|
|
|
swap-file-btrfs = handleTest ./swap-file-btrfs.nix {};
|
2022-06-22 04:11:23 +02:00
|
|
|
swap-partition = handleTest ./swap-partition.nix {};
|
2023-05-03 22:11:45 +02:00
|
|
|
swap-random-encryption = handleTest ./swap-random-encryption.nix {};
|
2021-05-27 20:37:24 +02:00
|
|
|
sway = handleTest ./sway.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
switchTest = handleTest ./switch-test.nix {};
|
2019-07-06 20:56:30 +02:00
|
|
|
sympa = handleTest ./sympa.nix {};
|
2020-07-23 09:13:26 +02:00
|
|
|
syncthing = handleTest ./syncthing.nix {};
|
2023-05-23 15:58:38 +02:00
|
|
|
syncthing-no-settings = handleTest ./syncthing-no-settings.nix {};
|
2019-04-21 23:05:07 +02:00
|
|
|
syncthing-init = handleTest ./syncthing-init.nix {};
|
2018-11-17 15:02:00 +01:00
|
|
|
syncthing-relay = handleTest ./syncthing-relay.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
systemd = handleTest ./systemd.nix {};
|
2019-11-25 00:03:55 +01:00
|
|
|
systemd-analyze = handleTest ./systemd-analyze.nix {};
|
2020-05-18 11:16:56 +02:00
|
|
|
systemd-binfmt = handleTestOn ["x86_64-linux"] ./systemd-binfmt.nix {};
|
2020-06-14 05:57:52 +02:00
|
|
|
systemd-boot = handleTest ./systemd-boot.nix {};
|
2022-08-21 12:22:16 +02:00
|
|
|
systemd-bpf = handleTest ./systemd-bpf.nix {};
|
2019-03-14 15:26:10 +01:00
|
|
|
systemd-confinement = handleTest ./systemd-confinement.nix {};
|
2022-08-01 18:44:29 +02:00
|
|
|
systemd-coredump = handleTest ./systemd-coredump.nix {};
|
2021-10-04 12:54:13 +02:00
|
|
|
systemd-cryptenroll = handleTest ./systemd-cryptenroll.nix {};
|
2023-02-20 01:07:31 +01:00
|
|
|
systemd-credentials-tpm2 = handleTest ./systemd-credentials-tpm2.nix {};
|
2022-01-09 08:46:55 +01:00
|
|
|
systemd-escaping = handleTest ./systemd-escaping.nix {};
|
2023-08-25 19:11:20 +02:00
|
|
|
systemd-initrd-bridge = handleTest ./systemd-initrd-bridge.nix {};
|
2022-04-17 14:55:48 +02:00
|
|
|
systemd-initrd-btrfs-raid = handleTest ./systemd-initrd-btrfs-raid.nix {};
|
2022-10-03 19:10:03 +02:00
|
|
|
systemd-initrd-luks-fido2 = handleTest ./systemd-initrd-luks-fido2.nix {};
|
2022-04-13 23:27:58 +02:00
|
|
|
systemd-initrd-luks-keyfile = handleTest ./systemd-initrd-luks-keyfile.nix {};
|
2023-03-22 15:17:23 +01:00
|
|
|
systemd-initrd-luks-empty-passphrase = handleTest ./initrd-luks-empty-passphrase.nix { systemdStage1 = true; };
|
2022-04-13 20:45:29 +02:00
|
|
|
systemd-initrd-luks-password = handleTest ./systemd-initrd-luks-password.nix {};
|
2022-09-23 23:47:05 +02:00
|
|
|
systemd-initrd-luks-tpm2 = handleTest ./systemd-initrd-luks-tpm2.nix {};
|
2022-10-05 02:37:51 +02:00
|
|
|
systemd-initrd-modprobe = handleTest ./systemd-initrd-modprobe.nix {};
|
2022-04-15 12:23:02 +02:00
|
|
|
systemd-initrd-shutdown = handleTest ./systemd-shutdown.nix { systemdStage1 = true; };
|
2022-03-20 21:11:32 +01:00
|
|
|
systemd-initrd-simple = handleTest ./systemd-initrd-simple.nix {};
|
2022-04-15 17:28:41 +02:00
|
|
|
systemd-initrd-swraid = handleTest ./systemd-initrd-swraid.nix {};
|
2023-02-08 21:24:10 +01:00
|
|
|
systemd-initrd-vconsole = handleTest ./systemd-initrd-vconsole.nix {};
|
2022-06-29 07:01:59 +02:00
|
|
|
systemd-initrd-networkd = handleTest ./systemd-initrd-networkd.nix {};
|
2022-08-03 12:36:11 +02:00
|
|
|
systemd-initrd-networkd-ssh = handleTest ./systemd-initrd-networkd-ssh.nix {};
|
2023-02-17 13:47:40 +01:00
|
|
|
systemd-initrd-networkd-openvpn = handleTest ./initrd-network-openvpn { systemdStage1 = true; };
|
2023-08-25 05:57:46 +02:00
|
|
|
systemd-initrd-vlan = handleTest ./systemd-initrd-vlan.nix {};
|
2020-11-01 18:48:40 +01:00
|
|
|
systemd-journal = handleTest ./systemd-journal.nix {};
|
2022-02-17 22:07:05 +01:00
|
|
|
systemd-machinectl = handleTest ./systemd-machinectl.nix {};
|
2020-02-29 19:34:48 +01:00
|
|
|
systemd-networkd = handleTest ./systemd-networkd.nix {};
|
2019-11-16 12:13:51 +01:00
|
|
|
systemd-networkd-dhcpserver = handleTest ./systemd-networkd-dhcpserver.nix {};
|
2021-11-30 09:57:15 +01:00
|
|
|
systemd-networkd-dhcpserver-static-leases = handleTest ./systemd-networkd-dhcpserver-static-leases.nix {};
|
2020-05-01 15:12:19 +02:00
|
|
|
systemd-networkd-ipv6-prefix-delegation = handleTest ./systemd-networkd-ipv6-prefix-delegation.nix {};
|
2020-11-30 00:00:38 +01:00
|
|
|
systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
|
2022-10-04 18:19:38 +02:00
|
|
|
systemd-no-tainted = handleTest ./systemd-no-tainted.nix {};
|
2019-11-02 19:55:41 +01:00
|
|
|
systemd-nspawn = handleTest ./systemd-nspawn.nix {};
|
2023-06-07 11:34:33 +02:00
|
|
|
systemd-nspawn-configfile = handleTest ./systemd-nspawn-configfile.nix {};
|
2022-04-21 19:54:50 +02:00
|
|
|
systemd-oomd = handleTest ./systemd-oomd.nix {};
|
2022-09-29 12:57:18 +02:00
|
|
|
systemd-portabled = handleTest ./systemd-portabled.nix {};
|
2023-01-19 20:04:29 +01:00
|
|
|
systemd-repart = handleTest ./systemd-repart.nix {};
|
2022-04-15 12:23:02 +02:00
|
|
|
systemd-shutdown = handleTest ./systemd-shutdown.nix {};
|
2023-07-17 17:20:32 +02:00
|
|
|
systemd-sysupdate = runTest ./systemd-sysupdate.nix;
|
2020-11-30 00:00:38 +01:00
|
|
|
systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
|
2022-12-23 21:22:49 +01:00
|
|
|
systemd-user-tmpfiles-rules = handleTest ./systemd-user-tmpfiles-rules.nix {};
|
2021-08-11 20:28:30 +02:00
|
|
|
systemd-misc = handleTest ./systemd-misc.nix {};
|
2022-12-08 01:31:05 +01:00
|
|
|
systemd-userdbd = handleTest ./systemd-userdbd.nix {};
|
2022-12-08 09:49:12 +01:00
|
|
|
systemd-homed = handleTest ./systemd-homed.nix {};
|
2022-09-17 16:36:39 +02:00
|
|
|
tandoor-recipes = handleTest ./tandoor-recipes.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
taskserver = handleTest ./taskserver.nix {};
|
2022-10-12 21:16:02 +02:00
|
|
|
tayga = handleTest ./tayga.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
teeworlds = handleTest ./teeworlds.nix {};
|
2019-01-21 12:30:11 +01:00
|
|
|
telegraf = handleTest ./telegraf.nix {};
|
2022-01-10 13:46:47 +01:00
|
|
|
teleport = handleTest ./teleport.nix {};
|
2022-01-11 03:29:04 +01:00
|
|
|
thelounge = handleTest ./thelounge.nix {};
|
2020-11-13 19:41:14 +01:00
|
|
|
terminal-emulators = handleTest ./terminal-emulators.nix {};
|
2019-04-29 22:46:00 +02:00
|
|
|
tiddlywiki = handleTest ./tiddlywiki.nix {};
|
2020-04-13 05:56:20 +02:00
|
|
|
tigervnc = handleTest ./tigervnc.nix {};
|
2022-10-31 09:21:18 +01:00
|
|
|
timescaledb = handleTest ./timescaledb.nix {};
|
2023-03-20 09:13:09 +01:00
|
|
|
promscale = handleTest ./promscale.nix {};
|
2019-12-02 23:28:53 +01:00
|
|
|
timezone = handleTest ./timezone.nix {};
|
2020-12-06 16:05:21 +01:00
|
|
|
tinc = handleTest ./tinc {};
|
2019-05-16 23:42:02 +02:00
|
|
|
tinydns = handleTest ./tinydns.nix {};
|
2021-12-28 21:32:26 +01:00
|
|
|
tinywl = handleTest ./tinywl.nix {};
|
2022-10-05 18:34:30 +02:00
|
|
|
tmate-ssh-server = handleTest ./tmate-ssh-server.nix { };
|
2022-03-13 14:31:43 +01:00
|
|
|
tomcat = handleTest ./tomcat.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
tor = handleTest ./tor.nix {};
|
2022-09-24 09:43:38 +02:00
|
|
|
traefik = handleTestOn ["aarch64-linux" "x86_64-linux"] ./traefik.nix {};
|
2021-04-09 18:48:51 +02:00
|
|
|
trafficserver = handleTest ./trafficserver.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
transmission = handleTest ./transmission.nix {};
|
2022-10-02 12:43:54 +02:00
|
|
|
# tracee requires bpf
|
|
|
|
tracee = handleTestOn ["x86_64-linux"] ./tracee.nix {};
|
2019-08-16 17:00:07 +02:00
|
|
|
trezord = handleTest ./trezord.nix {};
|
2019-11-01 11:03:23 +01:00
|
|
|
trickster = handleTest ./trickster.nix {};
|
2020-11-30 00:00:38 +01:00
|
|
|
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
|
2021-12-18 09:21:57 +01:00
|
|
|
tsm-client-gui = handleTest ./tsm-client-gui.nix {};
|
2021-06-24 23:34:03 +02:00
|
|
|
txredisapi = handleTest ./txredisapi.nix {};
|
2020-03-24 23:45:49 +01:00
|
|
|
tuptime = handleTest ./tuptime.nix {};
|
2021-03-14 06:13:41 +01:00
|
|
|
turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
|
2021-07-23 16:02:20 +02:00
|
|
|
tuxguitar = handleTest ./tuxguitar.nix {};
|
2023-07-07 18:50:29 +02:00
|
|
|
twingate = runTest ./twingate.nix;
|
2023-07-19 00:29:30 +02:00
|
|
|
typesense = handleTest ./typesense.nix {};
|
2021-06-13 22:00:25 +02:00
|
|
|
ucarp = handleTest ./ucarp.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
udisks2 = handleTest ./udisks2.nix {};
|
2023-09-18 00:09:25 +02:00
|
|
|
ulogd = handleTest ./ulogd/ulogd.nix {};
|
2020-11-30 00:00:38 +01:00
|
|
|
unbound = handleTest ./unbound.nix {};
|
2021-12-18 00:55:13 +01:00
|
|
|
unifi = handleTest ./unifi.nix {};
|
2020-04-16 22:08:00 +02:00
|
|
|
unit-php = handleTest ./web-servers/unit-php.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
upnp = handleTest ./upnp.nix {};
|
2022-03-17 17:57:23 +01:00
|
|
|
uptermd = handleTest ./uptermd.nix {};
|
2022-09-23 07:04:23 +02:00
|
|
|
uptime-kuma = handleTest ./uptime-kuma.nix {};
|
2021-01-16 23:15:52 +01:00
|
|
|
usbguard = handleTest ./usbguard.nix {};
|
2021-02-15 23:40:54 +01:00
|
|
|
user-activation-scripts = handleTest ./user-activation-scripts.nix {};
|
2023-08-02 13:51:06 +02:00
|
|
|
user-expiry = runTest ./user-expiry.nix;
|
2022-04-10 21:06:19 +02:00
|
|
|
user-home-mode = handleTest ./user-home-mode.nix {};
|
2019-05-27 23:03:22 +02:00
|
|
|
uwsgi = handleTest ./uwsgi.nix {};
|
2020-06-12 10:12:51 +02:00
|
|
|
v2ray = handleTest ./v2ray.nix {};
|
2022-09-27 21:22:21 +02:00
|
|
|
varnish60 = handleTest ./varnish.nix { package = pkgs.varnish60; };
|
|
|
|
varnish72 = handleTest ./varnish.nix { package = pkgs.varnish72; };
|
2023-05-20 13:44:02 +02:00
|
|
|
varnish73 = handleTest ./varnish.nix { package = pkgs.varnish73; };
|
2018-11-11 12:30:07 +01:00
|
|
|
vault = handleTest ./vault.nix {};
|
2023-04-25 15:58:30 +02:00
|
|
|
vault-agent = handleTest ./vault-agent.nix {};
|
2022-07-05 10:54:11 +02:00
|
|
|
vault-dev = handleTest ./vault-dev.nix {};
|
2021-01-04 17:54:03 +01:00
|
|
|
vault-postgresql = handleTest ./vault-postgresql.nix {};
|
2021-07-01 11:14:51 +02:00
|
|
|
vaultwarden = handleTest ./vaultwarden.nix {};
|
2020-11-30 08:22:08 +01:00
|
|
|
vector = handleTest ./vector.nix {};
|
2021-11-21 18:09:17 +01:00
|
|
|
vengi-tools = handleTest ./vengi-tools.nix {};
|
2020-01-19 18:55:56 +01:00
|
|
|
victoriametrics = handleTest ./victoriametrics.nix {};
|
2021-06-26 14:26:17 +02:00
|
|
|
vikunja = handleTest ./vikunja.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
|
2022-03-13 08:16:34 +01:00
|
|
|
vscode-remote-ssh = handleTestOn ["x86_64-linux"] ./vscode-remote-ssh.nix {};
|
2021-11-19 21:21:20 +01:00
|
|
|
vscodium = discoverTests (import ./vscodium.nix);
|
2022-03-01 04:03:47 +01:00
|
|
|
vsftpd = handleTest ./vsftpd.nix {};
|
2022-11-24 20:46:05 +01:00
|
|
|
warzone2100 = handleTest ./warzone2100.nix {};
|
2020-06-18 14:19:13 +02:00
|
|
|
wasabibackend = handleTest ./wasabibackend.nix {};
|
2020-03-22 12:49:51 +01:00
|
|
|
webhook = runTest ./webhook.nix;
|
2021-03-18 12:33:40 +01:00
|
|
|
wiki-js = handleTest ./wiki-js.nix {};
|
2022-01-23 12:11:05 +01:00
|
|
|
wine = handleTest ./wine.nix {};
|
2019-03-17 13:20:38 +01:00
|
|
|
wireguard = handleTest ./wireguard {};
|
2021-04-24 23:02:15 +02:00
|
|
|
without-nix = handleTest ./without-nix.nix {};
|
2021-01-27 15:44:27 +01:00
|
|
|
wmderland = handleTest ./wmderland.nix {};
|
2021-09-24 13:25:16 +02:00
|
|
|
wpa_supplicant = handleTest ./wpa_supplicant.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
wordpress = handleTest ./wordpress.nix {};
|
2022-11-05 12:38:11 +01:00
|
|
|
wrappers = handleTest ./wrappers.nix {};
|
2022-06-26 07:08:43 +02:00
|
|
|
writefreely = handleTest ./web-apps/writefreely.nix {};
|
2019-12-14 01:17:49 +01:00
|
|
|
xandikos = handleTest ./xandikos.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
xautolock = handleTest ./xautolock.nix {};
|
|
|
|
xfce = handleTest ./xfce.nix {};
|
|
|
|
xmonad = handleTest ./xmonad.nix {};
|
2021-06-18 15:10:26 +02:00
|
|
|
xmonad-xdg-autostart = handleTest ./xmonad-xdg-autostart.nix {};
|
2022-09-21 01:39:13 +02:00
|
|
|
xpadneo = handleTest ./xpadneo.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
xrdp = handleTest ./xrdp.nix {};
|
|
|
|
xss-lock = handleTest ./xss-lock.nix {};
|
2020-11-17 04:13:13 +01:00
|
|
|
xterm = handleTest ./xterm.nix {};
|
2022-01-01 22:16:13 +01:00
|
|
|
xxh = handleTest ./xxh.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
yabar = handleTest ./yabar.nix {};
|
2019-06-27 17:56:10 +02:00
|
|
|
yggdrasil = handleTest ./yggdrasil.nix {};
|
2022-02-16 06:49:51 +01:00
|
|
|
zammad = handleTest ./zammad.nix {};
|
2022-06-10 14:54:16 +02:00
|
|
|
zeronet-conservancy = handleTest ./zeronet-conservancy.nix {};
|
2020-02-03 18:33:26 +01:00
|
|
|
zfs = handleTest ./zfs.nix {};
|
2020-08-03 12:43:13 +02:00
|
|
|
zigbee2mqtt = handleTest ./zigbee2mqtt.nix {};
|
2020-04-11 19:28:52 +02:00
|
|
|
zoneminder = handleTest ./zoneminder.nix {};
|
2018-11-11 12:30:07 +01:00
|
|
|
zookeeper = handleTest ./zookeeper.nix {};
|
2023-01-18 15:40:42 +01:00
|
|
|
zram-generator = handleTest ./zram-generator.nix {};
|
2022-03-29 20:44:07 +02:00
|
|
|
zrepl = handleTest ./zrepl.nix {};
|
2020-04-11 19:28:52 +02:00
|
|
|
zsh-history = handleTest ./zsh-history.nix {};
|
2022-06-06 19:24:30 +02:00
|
|
|
}
|