Merge master into staging-next

This commit is contained in:
github-actions[bot] 2022-03-31 18:01:13 +00:00 committed by GitHub
commit be4f006d3c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
293 changed files with 660 additions and 591 deletions

View file

@ -5,15 +5,9 @@ A NixOS test is a Nix expression that has the following structure:
```nix
import ./make-test-python.nix {
# Either the configuration of a single machine:
machine =
{ config, pkgs, ... }:
{ configuration…
};
# Or a set of machines:
# One or more machines:
nodes =
{ machine1 =
{ machine =
{ config, pkgs, ... }: { … };
machine2 =
{ config, pkgs, ... }: { … };
@ -29,17 +23,16 @@ import ./make-test-python.nix {
The attribute `testScript` is a bit of Python code that executes the
test (described below). During the test, it will start one or more
virtual machines, the configuration of which is described by the
attribute `machine` (if you need only one machine in your test) or by
the attribute `nodes` (if you need multiple machines). For instance,
[`login.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix)
only needs a single machine to test whether users can log in
virtual machines, the configuration of which is described by
the attribute `nodes`.
An example of a single-node test is
[`login.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix).
It only needs a single machine to test whether users can log in
on the virtual console, whether device ownership is correctly maintained
when switching between consoles, and so on. On the other hand,
[`nfs/simple.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/nfs/simple.nix),
which tests NFS client and server functionality in the
Linux kernel (including whether locks are maintained across server
crashes), requires three machines: a server and two clients.
when switching between consoles, and so on. An interesting multi-node test is
[`nfs/simple.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/nfs/simple.nix).
It uses two client nodes to test correct locking across server crashes.
There are a few special NixOS configuration options for test VMs:
@ -67,8 +60,7 @@ The test script is a sequence of Python statements that perform various
actions, such as starting VMs, executing commands in the VMs, and so on.
Each virtual machine is represented as an object stored in the variable
`name` if this is also the identifier of the machine in the declarative
config. If you didn\'t specify multiple machines using the `nodes`
attribute, it is just `machine`. The following example starts the
config. If you specified a node `nodes.machine`, the following example starts the
machine, waits until it has finished booting, then executes a command
and checks that the output is more-or-less correct:
@ -79,7 +71,7 @@ if not "Linux" in machine.succeed("uname"):
raise Exception("Wrong OS")
```
The first line is actually unnecessary; machines are implicitly started
The first line is technically unnecessary; machines are implicitly started
when you first execute an action on them (such as `wait_for_unit` or
`succeed`). If you have multiple machines, you can speed up the test by
starting them in parallel:
@ -303,7 +295,7 @@ For faster dev cycles it\'s also possible to disable the code-linters
```nix
import ./make-test-python.nix {
skipLint = true;
machine =
nodes.machine =
{ config, pkgs, ... }:
{ configuration…
};

View file

@ -6,15 +6,9 @@
<programlisting language="bash">
import ./make-test-python.nix {
# Either the configuration of a single machine:
machine =
{ config, pkgs, ... }:
{ configuration…
};
# Or a set of machines:
# One or more machines:
nodes =
{ machine1 =
{ machine =
{ config, pkgs, ... }: { … };
machine2 =
{ config, pkgs, ... }: { … };
@ -31,18 +25,18 @@ import ./make-test-python.nix {
The attribute <literal>testScript</literal> is a bit of Python code
that executes the test (described below). During the test, it will
start one or more virtual machines, the configuration of which is
described by the attribute <literal>machine</literal> (if you need
only one machine in your test) or by the attribute
<literal>nodes</literal> (if you need multiple machines). For
instance,
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix"><literal>login.nix</literal></link>
only needs a single machine to test whether users can log in on the
virtual console, whether device ownership is correctly maintained
when switching between consoles, and so on. On the other hand,
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/nfs/simple.nix"><literal>nfs/simple.nix</literal></link>,
which tests NFS client and server functionality in the Linux kernel
(including whether locks are maintained across server crashes),
requires three machines: a server and two clients.
described by the attribute <literal>nodes</literal>.
</para>
<para>
An example of a single-node test is
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix"><literal>login.nix</literal></link>.
It only needs a single machine to test whether users can log in on
the virtual console, whether device ownership is correctly
maintained when switching between consoles, and so on. An
interesting multi-node test is
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/nfs/simple.nix"><literal>nfs/simple.nix</literal></link>.
It uses two client nodes to test correct locking across server
crashes.
</para>
<para>
There are a few special NixOS configuration options for test VMs:
@ -94,9 +88,8 @@ import ./make-test-python.nix {
various actions, such as starting VMs, executing commands in the
VMs, and so on. Each virtual machine is represented as an object
stored in the variable <literal>name</literal> if this is also the
identifier of the machine in the declarative config. If you didn't
specify multiple machines using the <literal>nodes</literal>
attribute, it is just <literal>machine</literal>. The following
identifier of the machine in the declarative config. If you
specified a node <literal>nodes.machine</literal>, the following
example starts the machine, waits until it has finished booting,
then executes a command and checks that the output is more-or-less
correct:
@ -108,7 +101,7 @@ if not &quot;Linux&quot; in machine.succeed(&quot;uname&quot;):
raise Exception(&quot;Wrong OS&quot;)
</programlisting>
<para>
The first line is actually unnecessary; machines are implicitly
The first line is technically unnecessary; machines are implicitly
started when you first execute an action on them (such as
<literal>wait_for_unit</literal> or <literal>succeed</literal>). If
you have multiple machines, you can speed up the test by starting
@ -554,7 +547,7 @@ machine.wait_for_unit(&quot;xautolock.service&quot;, &quot;x-session-user&quot;)
<programlisting language="bash">
import ./make-test-python.nix {
skipLint = true;
machine =
nodes.machine =
{ config, pkgs, ... }:
{ configuration…
};

View file

@ -206,6 +206,7 @@ rec {
)];
};
in
lib.warnIf (t?machine) "In test `${name}': The `machine' attribute in NixOS tests (pkgs.nixosTest / make-test-pyton.nix / testing-python.nix / makeTest) is deprecated. Please use the equivalent `nodes.machine'."
build-vms.buildVirtualNetwork (
nodes // lib.optionalAttrs (machine != null) { inherit machine; }
);

View file

@ -3,67 +3,66 @@
with lib;
let
cfg = config.programs._1password-gui;
in {
in
{
options = {
programs._1password-gui = {
enable = mkEnableOption "The 1Password Desktop application with browser integration";
enable = mkEnableOption "the 1Password GUI application";
groupId = mkOption {
type = types.int;
gid = mkOption {
type = types.addCheck types.int (x: x >= 1000);
example = literalExpression "5000";
description = ''
The GroupID to assign to the onepassword group, which is needed for browser integration. The group ID must be 1000 or greater.
'';
The gid to assign to the onepassword group, which is needed for browser integration.
It must be 1000 or greater.
'';
};
polkitPolicyOwners = mkOption {
type = types.listOf types.str;
default = [];
example = literalExpression "[\"user1\" \"user2\" \"user3\"]";
default = [ ];
example = literalExpression ''["user1" "user2" "user3"]'';
description = ''
A list of users who should be able to integrate 1Password with polkit-based authentication mechanisms. By default, no users will have such access.
'';
A list of users who should be able to integrate 1Password with polkit-based authentication mechanisms.
'';
};
package = mkOption {
type = types.package;
default = pkgs._1password-gui;
defaultText = literalExpression "pkgs._1password-gui";
example = literalExpression "pkgs._1password-gui";
description = ''
The 1Password derivation to use. This can be used to upgrade from the stable release that we keep in nixpkgs to the betas.
'';
package = mkPackageOption pkgs "1Password GUI" {
default = [ "_1password-gui" ];
};
};
};
config = let
package = cfg.package.override {
polkitPolicyOwners = cfg.polkitPolicyOwners;
};
in mkIf cfg.enable {
environment.systemPackages = [ package ];
users.groups.onepassword.gid = cfg.groupId;
config =
let
package = cfg.package.override {
polkitPolicyOwners = cfg.polkitPolicyOwners;
};
in
mkIf cfg.enable {
environment.systemPackages = [ package ];
users.groups.onepassword.gid = cfg.gid;
security.wrappers = {
"1Password-BrowserSupport" =
{ source = "${cfg.package}/share/1password/1Password-BrowserSupport";
security.wrappers = {
"1Password-BrowserSupport" = {
source = "${package}/share/1password/1Password-BrowserSupport";
owner = "root";
group = "onepassword";
setuid = false;
setgid = true;
};
"1Password-KeyringHelper" =
{ source = "${cfg.package}/share/1password/1Password-KeyringHelper";
"1Password-KeyringHelper" = {
source = "${package}/share/1password/1Password-KeyringHelper";
owner = "root";
group = "onepassword";
setuid = true;
setgid = true;
};
};
};
};
};
}

View file

@ -3,35 +3,33 @@
with lib;
let
cfg = config.programs._1password;
in {
in
{
options = {
programs._1password = {
enable = mkEnableOption "The 1Password CLI tool with biometric unlock and integration with the 1Password GUI.";
enable = mkEnableOption "the 1Password CLI tool";
groupId = mkOption {
type = types.int;
gid = mkOption {
type = types.addCheck types.int (x: x >= 1000);
example = literalExpression "5001";
description = ''
The GroupID to assign to the onepassword-cli group, which is needed for integration with the 1Password GUI. The group ID must be 1000 or greater.
The gid to assign to the onepassword-cli group, which is needed for integration with the 1Password GUI.
It must be 1000 or greater.
'';
};
package = mkOption {
type = types.package;
default = pkgs._1password;
defaultText = literalExpression "pkgs._1password";
example = literalExpression "pkgs._1password";
description = ''
The 1Password CLI derivation to use.
'';
package = mkPackageOption pkgs "1Password CLI" {
default = [ "_1password" ];
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
users.groups.onepassword-cli.gid = cfg.groupId;
users.groups.onepassword-cli.gid = cfg.gid;
security.wrappers = {
"op" = {

View file

@ -38,7 +38,7 @@ in
environment.etc."wireplumber/main.lua.d/80-nixos.lua" = lib.mkIf (!pwUsedForAudio) {
text = ''
# Pipewire is not used for audio, so prevent it from grabbing audio devices
-- Pipewire is not used for audio, so prevent it from grabbing audio devices
alsa_monitor.enable = function() end
'';
};

View file

@ -141,7 +141,7 @@ in {
enable = mkEnableOption "matrix.org synapse";
configFile = mkOption {
type = types.str;
type = types.path;
readOnly = true;
description = ''
Path to the configuration file on the target system. Useful to configure e.g. workers

View file

@ -39,7 +39,7 @@ in
type = types.str;
example = "45min";
description = ''
Add a randomized delay before each automatic upgrade.
Add a randomized delay before each garbage collection.
The delay will be chosen between zero and this value.
This value must be a time span in the format specified by
<citerefentry><refentrytitle>systemd.time</refentrytitle>

View file

@ -216,6 +216,8 @@ in
Restart = "on-failure";
# The `mbind` syscall is needed for running the classifier.
SystemCallFilter = defaultServiceConfig.SystemCallFilter ++ [ "mbind" ];
# Needs to talk to mail server for automated import rules
PrivateNetwork = false;
};
environment = env;
wantedBy = [ "multi-user.target" ];
@ -258,8 +260,6 @@ in
'${cfg.passwordFile}' '${cfg.dataDir}/superuser-password'
'';
Type = "oneshot";
# Needs to talk to mail server for automated import rules
PrivateNetwork = false;
};
};

View file

@ -241,7 +241,7 @@ in
"xhci_pci"
"usbhid"
"hid_generic" "hid_lenovo" "hid_apple" "hid_roccat"
"hid_logitech_hidpp" "hid_logitech_dj" "hid_microsoft"
"hid_logitech_hidpp" "hid_logitech_dj" "hid_microsoft" "hid_cherry"
] ++ optionals pkgs.stdenv.hostPlatform.isx86 [
# Misc. x86 keyboard stuff.

View file

@ -90,7 +90,7 @@ in {
example = "45min";
description = ''
Add a randomized delay before each automatic upgrade.
The delay will be chozen between zero and this value.
The delay will be chosen between zero and this value.
This value must be a time span in the format specified by
<citerefentry><refentrytitle>systemd.time</refentrytitle>
<manvolnum>7</manvolnum></citerefentry>

View file

@ -961,7 +961,10 @@ in
services.qemuGuest.enable = cfg.qemu.guestAgent.enable;
system.build.vm = pkgs.runCommand "nixos-vm" { preferLocalBuild = true; }
system.build.vm = pkgs.runCommand "nixos-vm" {
preferLocalBuild = true;
meta.mainProgram = "run-${config.system.name}-vm";
}
''
mkdir -p $out/bin
ln -s ${config.system.build.toplevel} $out/system

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
maintainers = with lib.maintainers; [ veehaitch ];
};
machine = { lib, ... }: {
nodes.machine = { lib, ... }: {
services.aesmd = {
enable = true;
settings = {

View file

@ -15,7 +15,7 @@ in
maintainers = [ alexarice turion ];
};
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
environment.systemPackages = [
(pkgs.agda.withPackages {
pkgs = p: [ p.standard-library ];

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
maintainers = [ sumnerevans ];
};
machine =
nodes.machine =
{ pkgs, ... }:
{
services.airsonic = {

View file

@ -18,7 +18,7 @@ makeTest {
meta = with maintainers; {
maintainers = [ urbas ];
};
machine = { ... }:
nodes.machine = { ... }:
{
imports = [ ../modules/profiles/headless.nix ../modules/virtualisation/amazon-init.nix ];
services.openssh.enable = true;

View file

@ -2,7 +2,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
name = "apfs";
meta.maintainers = with pkgs.lib.maintainers; [ Luflosi ];
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
virtualisation.emptyDiskImages = [ 1024 ];
boot.supportedFilesystems = [ "apfs" ];

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... } : {
maintainers = [ julm ];
};
machine =
nodes.machine =
{ lib, pkgs, config, ... }:
with lib;
{

View file

@ -6,7 +6,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
maintainers = [ bjornfor ];
};
machine =
nodes.machine =
{ ... }:
{ services.atd.enable = true;
users.users.alice = { isNormalUser = true; };

View file

@ -107,7 +107,7 @@ in
{
justThePackage = makeTest {
name = "atop-justThePackage";
machine = {
nodes.machine = {
environment.systemPackages = [ pkgs.atop ];
};
testScript = with assertions; builtins.concatStringsSep "\n" [
@ -123,7 +123,7 @@ in
};
defaults = makeTest {
name = "atop-defaults";
machine = {
nodes.machine = {
programs.atop = {
enable = true;
};
@ -141,7 +141,7 @@ in
};
minimal = makeTest {
name = "atop-minimal";
machine = {
nodes.machine = {
programs.atop = {
enable = true;
atopService.enable = false;
@ -162,7 +162,7 @@ in
};
netatop = makeTest {
name = "atop-netatop";
machine = {
nodes.machine = {
programs.atop = {
enable = true;
netatop.enable = true;
@ -181,7 +181,7 @@ in
};
atopgpu = makeTest {
name = "atop-atopgpu";
machine = {
nodes.machine = {
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (getName pkg) [
"cudatoolkit"
];
@ -204,7 +204,7 @@ in
};
everything = makeTest {
name = "atop-everthing";
machine = {
nodes.machine = {
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (getName pkg) [
"cudatoolkit"
];

View file

@ -2,7 +2,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
name = "bcachefs";
meta.maintainers = with pkgs.lib.maintainers; [ chiiruno ];
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
virtualisation.emptyDiskImages = [ 4096 ];
networking.hostId = "deadbeef";
boot.supportedFilesystems = [ "bcachefs" ];

View file

@ -28,7 +28,7 @@ in
name = "beanstalkd";
meta.maintainers = [ lib.maintainers.aanderse ];
machine =
nodes.machine =
{ ... }:
{ services.beanstalkd.enable = true;
};

View file

@ -2,7 +2,7 @@ import ./make-test-python.nix ({ lib, pkgs, ... }:
{
name = "bees";
machine = { config, pkgs, ... }: {
nodes.machine = { config, pkgs, ... }: {
boot.initrd.postDeviceCommands = ''
${pkgs.btrfs-progs}/bin/mkfs.btrfs -f -L aux1 /dev/vdb
${pkgs.btrfs-progs}/bin/mkfs.btrfs -f -L aux2 /dev/vdc

View file

@ -1,7 +1,7 @@
import ./make-test-python.nix {
name = "bind";
machine = { pkgs, lib, ... }: {
nodes.machine = { pkgs, lib, ... }: {
services.bind.enable = true;
services.bind.extraOptions = "empty-zones-enable no;";
services.bind.zones = lib.singleton {

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
maintainers = with maintainers; [ _1000101 ];
};
machine = { ... }: {
nodes.machine = { ... }: {
services.bitcoind."mainnet" = {
enable = true;
rpc = {

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
maintainers = with maintainers; [ _1000101 ];
};
machine = { ... }: {
nodes.machine = { ... }: {
services.blockbook-frontend."test" = {
enable = true;
};

View file

@ -1,7 +1,7 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "boot-stage1";
machine = { config, pkgs, lib, ... }: {
nodes.machine = { config, pkgs, lib, ... }: {
boot.extraModulePackages = let
compileKernelModule = name: source: pkgs.runCommandCC name rec {
inherit source;

View file

@ -42,7 +42,7 @@ let
nodes = { };
testScript =
''
machine = create_machine(${machineConfig})
nodes.machine = create_machine(${machineConfig})
machine.start()
machine.wait_for_unit("multi-user.target")
machine.succeed("nix store verify --no-trust -r --option experimental-features nix-command /run/current-system")
@ -83,7 +83,7 @@ let
name = "boot-netboot-" + name;
nodes = { };
testScript = ''
machine = create_machine(${machineConfig})
nodes.machine = create_machine(${machineConfig})
machine.start()
machine.wait_for_unit("multi-user.target")
machine.shutdown()
@ -138,7 +138,7 @@ in {
if os.system("qemu-img create -f qcow2 -F raw -b ${sdImage} ${mutableImage}") != 0:
raise RuntimeError("Could not create mutable linked image")
machine = create_machine(${machineConfig})
nodes.machine = create_machine(${machineConfig})
machine.start()
machine.wait_for_unit("multi-user.target")
machine.succeed("nix store verify -r --no-trust --option experimental-features nix-command /run/current-system")

View file

@ -2,7 +2,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
name = "bpf";
meta.maintainers = with pkgs.lib.maintainers; [ martinetd ];
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
programs.bcc.enable = true;
environment.systemPackages = with pkgs; [ bpftrace ];
};

View file

@ -2,7 +2,7 @@ import ./make-test-python.nix ({ lib, ... }: {
name = "breitbandmessung";
meta.maintainers = with lib.maintainers; [ b4dm4n ];
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
imports = [
./common/user-account.nix
./common/x11.nix

View file

@ -7,7 +7,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
maintainers = [ mattchrist ];
};
machine = { pkgs, ... }:
nodes.machine = { pkgs, ... }:
{
nixpkgs.config.allowUnfree = true;
hardware.sane = {

View file

@ -6,7 +6,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
maintainers = [ flokli ];
};
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
services.buildkite-agents = {
one = {
privateSshKeyPath = (import ./ssh-keys.nix pkgs).snakeOilPrivateKey;

View file

@ -6,7 +6,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
maintainers = [ matthewbauer ];
};
machine = { ... }:
nodes.machine = { ... }:
{
imports = [ ./common/user-account.nix ];

View file

@ -13,7 +13,7 @@ in
maintainers = [ berbiche ];
};
machine = { config, ... }:
nodes.machine = { config, ... }:
let
alice = config.users.users.alice;
in {

View file

@ -1,7 +1,7 @@
import ./make-test-python.nix ({ pkgs, ...} : {
name = "cfssl";
machine = { config, lib, pkgs, ... }:
nodes.machine = { config, lib, pkgs, ... }:
{
networking.firewall.allowedTCPPorts = [ config.services.cfssl.port ];

View file

@ -2,7 +2,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
name = "clickhouse";
meta.maintainers = with pkgs.lib.maintainers; [ ma27 ];
machine = {
nodes.machine = {
services.clickhouse.enable = true;
virtualisation.memorySize = 4096;
};

View file

@ -61,7 +61,7 @@ in makeTest {
meta = with pkgs.lib.maintainers; {
maintainers = [ lewo ];
};
machine = { ... }:
nodes.machine = { ... }:
{
virtualisation.qemu.options = [ "-cdrom" "${metadataDrive}/metadata.iso" ];
services.cloud-init = {

View file

@ -46,7 +46,7 @@ let
meta = with pkgs.lib.maintainers; { maintainers = [ sorki mic92 ]; };
machine = { lib, ... }: {
nodes.machine = { lib, ... }: {
environment.systemPackages = [ pkgs.cntr ];
containers.test = {
autoStart = true;

View file

@ -2,7 +2,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
name = "collectd";
meta = { };
machine =
nodes.machine =
{ pkgs, ... }:
{

View file

@ -11,7 +11,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
maintainers = with lib.maintainers; [ aristid aszlig eelco kampfschlaefer ];
};
machine =
nodes.machine =
{ pkgs, ... }:
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
virtualisation.writableStore = true;

View file

@ -12,7 +12,7 @@ in {
maintainers = with lib.maintainers; [ adisbladis earvstedt ];
};
machine = { config, ... }: {
nodes.machine = { config, ... }: {
assertions = let
helloName = (builtins.head config.containers.test.config.system.extraDependencies).name;
in [ {

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
maintainers = with lib.maintainers; [ patryk27 ];
};
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
virtualisation.writableStore = true;
containers.webserver = {

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
maintainers = with lib.maintainers; [ kampfschlaefer ];
};
machine =
nodes.machine =
{ pkgs, ... }:
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
virtualisation.writableStore = true;

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
maintainers = with lib.maintainers; [ montag451 ];
};
machine =
nodes.machine =
{ lib, ... }:
{
virtualisation.vlans = [];

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
maintainers = with lib.maintainers; [ aristid aszlig eelco kampfschlaefer ];
};
machine =
nodes.machine =
{ config, pkgs, lib, ... }:
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];

View file

@ -17,7 +17,7 @@ in import ./make-test-python.nix ({ pkgs, lib, ... }: {
maintainers = with lib.maintainers; [ aristid aszlig eelco kampfschlaefer ];
};
machine =
nodes.machine =
{ pkgs, ... }: {
imports = [ ../modules/installer/cd-dvd/channel.nix ];
virtualisation = {

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
maintainers = with lib.maintainers; [ patryk27 ];
};
machine = { ... }: {
nodes.machine = { ... }: {
# We're using the newest kernel, so that we can test containers with long names.
# Please see https://github.com/NixOS/nixpkgs/issues/38509 for details.
boot.kernelPackages = pkgs.linuxPackages_latest;

View file

@ -5,7 +5,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
meta = with pkgs.lib.maintainers; { maintainers = [ sorki ]; };
machine = { lib, ... }:
nodes.machine = { lib, ... }:
let
makeNested = subConf: {
containers.nested = {

View file

@ -11,7 +11,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
maintainers = with lib.maintainers; [ aristid aszlig eelco kampfschlaefer ianwookim ];
};
machine =
nodes.machine =
{ pkgs, ... }:
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
virtualisation.writableStore = true;

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
maintainers = with lib.maintainers; [ patryk27 ];
};
machine =
nodes.machine =
{ pkgs, ... }:
{ imports = [ ../modules/installer/cd-dvd/channel.nix ];
virtualisation.writableStore = true;

View file

@ -76,7 +76,7 @@ in
enableOCR = true;
machine = { pkgs, ... }:
nodes.machine = { pkgs, ... }:
{ imports = [ ./common/user-account.nix ./common/x11.nix ];
# chromium-based browsers refuse to run as root

View file

@ -3,7 +3,7 @@ import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... }:
{
name = "disable-installer-tools";
machine =
nodes.machine =
{ pkgs, lib, ... }:
{
system.disableInstallerTools = true;

View file

@ -5,7 +5,7 @@ import ./make-test-python.nix (
maintainers = with maintainers; [ jojosch ];
};
machine = { pkgs, lib, ... }: {
nodes.machine = { pkgs, lib, ... }: {
services.bind = {
enable = true;
extraOptions = "empty-zones-enable no;";

View file

@ -6,7 +6,7 @@ import ./make-test-python.nix (
maintainers = [ cole-h ];
};
machine =
nodes.machine =
{ ... }:
{
users.groups = { foobar = {}; barfoo = {}; baz = { gid = 1337; }; };

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
maintainers = [ ma27 ];
};
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
environment.systemPackages = [ pkgs.jq ];
services.documize = {

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
maintainers = [ fgaz ];
};
machine = { config, pkgs, ... }: {
nodes.machine = { config, pkgs, ... }: {
imports = [
./common/x11.nix
];

View file

@ -1,7 +1,7 @@
import ./make-test-python.nix {
name = "dovecot";
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
imports = [ common/user-account.nix ];
services.postfix.enable = true;
services.dovecot2 = {

View file

@ -2,7 +2,7 @@ import ./make-test-python.nix ({ ... }:
{
name = "ecryptfs";
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
imports = [ ./common/user-account.nix ];
boot.kernelModules = [ "ecryptfs" ];
security.pam.enableEcryptfs = true;

View file

@ -6,7 +6,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
enableOCR = true;
machine =
nodes.machine =
{ ... }:
{ imports = [ ./common/x11.nix ];

View file

@ -6,7 +6,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
maintainers = [ romildo ];
};
machine = { ... }:
nodes.machine = { ... }:
{
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
maintainers = [ nequissimus ];
};
machine = { pkgs, ... }:
nodes.machine = { pkgs, ... }:
{
boot.kernelPackages = pkgs.linuxPackages;
environment.etc.plainFile.text = ''

View file

@ -9,7 +9,7 @@ in {
maintainers = [ felschr ];
};
machine = { pkgs, ... }:
nodes.machine = { pkgs, ... }:
{
services.etebase-server = {
inherit dataDir;

View file

@ -5,7 +5,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
maintainers = [ _3699n ];
};
machine = { config, pkgs, ... }: {
nodes.machine = { config, pkgs, ... }: {
environment.systemPackages = [ pkgs.curl pkgs.etesync-dav ];
};

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... } : {
maintainers = [ evils ];
};
machine = { ... }: {
nodes.machine = { ... }: {
imports = [ ../modules/profiles/minimal.nix ];
hardware.fancontrol.enable = true;
hardware.fancontrol.config = ''

View file

@ -5,7 +5,7 @@ import ../make-test-python.nix (
# copy_from_host works only for store paths
rec {
name = "fcitx";
machine =
nodes.machine =
{
pkgs,
...

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, firefoxPackage, ... }: {
maintainers = [ eelco shlevy ];
};
machine =
nodes.machine =
{ pkgs, ... }:
{ imports = [ ./common/x11.nix ];

View file

@ -1,7 +1,7 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "fish";
machine =
nodes.machine =
{ pkgs, ... }:
{

View file

@ -1,7 +1,7 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "fluentd";
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
services.fluentd = {
enable = true;
config = ''

View file

@ -6,7 +6,7 @@ import ./make-test-python.nix ({ lib, ... }:
jtojnar
];
machine = { config, pkgs, ... }: {
nodes.machine = { config, pkgs, ... }: {
fonts.enableDefaultFonts = true; # Background fonts
fonts.fonts = with pkgs; [
noto-fonts-emoji

View file

@ -1,7 +1,7 @@
import ./make-test-python.nix {
name = "fsck";
machine = { lib, ... }: {
nodes.machine = { lib, ... }: {
virtualisation.emptyDiskImages = [ 1 ];
virtualisation.fileSystems = {

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
maintainers = [ fgaz ];
};
machine = { config, pkgs, ... }: {
nodes.machine = { config, pkgs, ... }: {
imports = [
./common/x11.nix
];

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
maintainers = with maintainers; [bachp ];
};
machine = { ... }: {
nodes.machine = { ... }: {
services.geth."mainnet" = {
enable = true;
http = {

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
maintainers = teams.gnome.members;
};
machine = { nodes, ... }: let
nodes.machine = { nodes, ... }: let
user = nodes.machine.config.users.users.alice;
in

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
maintainers = teams.gnome.members;
};
machine =
nodes.machine =
{ ... }:
{ imports = [ ./common/user-account.nix ];

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
maintainers = [ ma27 ];
};
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
environment.systemPackages = [ pkgs.jq ];
services.gotify = {

View file

@ -2,7 +2,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "graylog";
meta.maintainers = with lib.maintainers; [ ];
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
virtualisation.memorySize = 4096;
virtualisation.diskSize = 4096;

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
maintainers = [ ma27 ];
};
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
services.grocy = {
enable = true;
hostName = "localhost";

View file

@ -5,7 +5,7 @@ import ./make-test-python.nix ({ lib, ... }: {
maintainers = [ rnhmjoj ];
};
machine = { ... }: {
nodes.machine = { ... }: {
virtualisation.useBootLoader = true;
boot.loader.timeout = null;

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... } : {
maintainers = [ joachifm ];
};
machine =
nodes.machine =
{ lib, pkgs, config, ... }:
with lib;
{ users.users.alice = { isNormalUser = true; extraGroups = [ "proc" ]; };

View file

@ -5,7 +5,7 @@ import ./make-test-python.nix ({ lib, ...} : {
maintainers = with lib.maintainers; [ thibautmarty ];
};
machine = { pkgs, lib, ... }: {
nodes.machine = { pkgs, lib, ... }: {
imports = [ ./common/x11.nix ./common/user-account.nix ];
test-support.displayManager.auto.user = "alice";
services.xserver.displayManager.defaultSession = lib.mkForce "none+herbstluftwm";

View file

@ -39,7 +39,7 @@ in makeTest {
nodes = {
# System configuration used for installing the installedConfig from above.
machine = { config, lib, pkgs, ... }: with lib; {
nodes.machine = { config, lib, pkgs, ... }: with lib; {
imports = [
../modules/profiles/installation-device.nix
../modules/profiles/base.nix

View file

@ -4,7 +4,7 @@ import ../make-test-python.nix ({ pkgs, ... }:
meta = with pkgs.lib.maintainers; {
maintainers = [ jflanglois ];
};
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
environment.systemPackages = [ pkgs.curl ];
services.hitch = {
enable = true;

View file

@ -5,7 +5,7 @@ import ../make-test-python.nix ({ pkgs, ...} : {
broken = true; # tries to download from registry-1.docker.io - how did this ever work?
};
machine = import ./machine.nix;
nodes.machine = import ./machine.nix;
testScript = ''
start_all()

View file

@ -24,7 +24,7 @@ in {
name = "hockeypuck";
meta.maintainers = with lib.maintainers; [ etu ];
machine = { ... }: {
nodes.machine = { ... }: {
# Used for test
environment.systemPackages = [ pkgs.gnupg ];

View file

@ -20,7 +20,7 @@ let
maintainers = [ primeos blitz ];
};
machine = { lib, ... }: {
nodes.machine = { lib, ... }: {
networking.hostName = hostName;
networking.domain = domain;

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... } : {
meta = with pkgs.lib.maintainers; {
maintainers = [ grahamc ];
};
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
services.hound = {
enable = true;
config = ''

View file

@ -20,7 +20,7 @@ let
maintainers = [ lewo ma27 ];
};
machine = { pkgs, lib, ... }: {
nodes.machine = { pkgs, lib, ... }: {
imports = [ baseConfig ];
services.hydra = { inherit package; };
};

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
maintainers = [ aszlig ];
};
machine = { lib, ... }: {
nodes.machine = { lib, ... }: {
imports = [ ./common/x11.nix ./common/user-account.nix ];
test-support.displayManager.auto.user = "alice";
services.xserver.displayManager.defaultSession = lib.mkForce "none+i3";

View file

@ -7,7 +7,7 @@ let
inherit (import ../../lib/testing-python.nix { inherit system pkgs; }) makeTest;
f = backend: makeTest {
name = "ihatemoney-${backend}";
machine = { nodes, lib, ... }: {
nodes.machine = { nodes, lib, ... }: {
services.ihatemoney = {
enable = true;
enablePublicProjectCreation = true;

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
name = "incron";
meta.maintainers = [ lib.maintainers.aanderse ];
machine =
nodes.machine =
{ ... }:
{ services.incron.enable = true;
services.incron.extraPackages = [ pkgs.coreutils ];

View file

@ -3,7 +3,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
meta.maintainers = [ pkgs.lib.maintainers.eelco ];
machine = { ... }: {
nodes.machine = { ... }: {
imports = [ ../modules/profiles/minimal.nix ];
boot.initrd.network.enable = true;
boot.initrd.network.postCommands =

View file

@ -11,7 +11,7 @@ let
meta.maintainers = [ lib.maintainers.lheckemann ];
machine = { ... }: {
nodes.machine = { ... }: {
virtualisation.useBootLoader = true;
boot.initrd.secrets = {
"/test" = secretInStore;

View file

@ -6,7 +6,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
maintainers = with pkgs.lib.maintainers; [ LunNova ];
};
machine = { config, ... }:
nodes.machine = { config, ... }:
let user = config.users.users.sybil; in
{
imports = [

View file

@ -43,7 +43,7 @@ let
maintainers = tested.meta.maintainers;
};
machine = { ... }: {
nodes.machine = { ... }: {
imports = [
testConfig
] ++ optional withX11 ../common/x11.nix;

View file

@ -5,7 +5,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
maintainers = [ sbruder ];
};
machine = { config, lib, pkgs, ... }: {
nodes.machine = { config, lib, pkgs, ... }: {
services.invidious = {
enable = true;
};

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
maintainers = [ asbachb ];
};
machine = { config, pkgs, ... }: {
nodes.machine = { config, pkgs, ... }: {
services.isso = {
enable = true;
settings = {

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ lib, pkgs, ... }:
name = "jellyfin";
meta.maintainers = with lib.maintainers; [ minijackson ];
machine =
nodes.machine =
{ ... }:
{
services.jellyfin.enable = true;

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
maintainers = teams.jitsi.members;
};
machine = { config, pkgs, ... }: {
nodes.machine = { config, pkgs, ... }: {
virtualisation.memorySize = 5120;
services.jitsi-meet = {

View file

@ -38,7 +38,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
maintainers = [ euank ];
};
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
environment.systemPackages = with pkgs; [ k3s gzip ];
# k3s uses enough resources the default vm fails.

View file

@ -38,7 +38,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
maintainers = [ euank ];
};
machine = { pkgs, ... }: {
nodes.machine = { pkgs, ... }: {
environment.systemPackages = with pkgs; [ k3s gzip ];
# k3s uses enough resources the default vm fails.

Some files were not shown because too many files have changed in this diff Show more