diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2014-07-02 22:54:20 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2014-07-02 22:54:41 +0200 |
commit | aceb30cd9373b9ab5fc4ac4a027474f4d6263510 (patch) | |
tree | a57c8cd0e35a295ce1a6ea44e042ac21979c2b64 /nixos | |
parent | 51fd35e7b5ab69b60d8c9c87883139e71182f28f (diff) | |
parent | 68bffbd0b7f82e5981a1722c0e010ceb2dc4d37c (diff) | |
download | nixlib-aceb30cd9373b9ab5fc4ac4a027474f4d6263510.tar nixlib-aceb30cd9373b9ab5fc4ac4a027474f4d6263510.tar.gz nixlib-aceb30cd9373b9ab5fc4ac4a027474f4d6263510.tar.bz2 nixlib-aceb30cd9373b9ab5fc4ac4a027474f4d6263510.tar.lz nixlib-aceb30cd9373b9ab5fc4ac4a027474f4d6263510.tar.xz nixlib-aceb30cd9373b9ab5fc4ac4a027474f4d6263510.tar.zst nixlib-aceb30cd9373b9ab5fc4ac4a027474f4d6263510.zip |
Merge master into x-updates
Adds the mass-rebuilding python update.
Diffstat (limited to 'nixos')
110 files changed, 313 insertions, 168 deletions
diff --git a/nixos/lib/test-driver/log2html.xsl b/nixos/lib/test-driver/log2html.xsl index 8e907d85ffac..ce8a9c6de2b2 100644 --- a/nixos/lib/test-driver/log2html.xsl +++ b/nixos/lib/test-driver/log2html.xsl @@ -9,8 +9,8 @@ <xsl:template match="logfile"> <html> <head> - <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> - <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> + <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> + <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> <script type="text/javascript" src="treebits.js" /> <link rel="stylesheet" href="logfile.css" type="text/css" /> <title>Log File</title> diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix index 942a2158b15f..063b9bf6c7af 100644 --- a/nixos/lib/testing.nix +++ b/nixos/lib/testing.nix @@ -37,7 +37,7 @@ rec { # `driver' is the script that runs the network. runTests = driver: stdenv.mkDerivation { - name = "vm-test-run"; + name = "vm-test-run-${driver.testName}"; requiredSystemFeatures = [ "kvm" "nixos-test" ]; @@ -68,9 +68,10 @@ rec { makeTest = - { testScript, makeCoverageReport ? false, ... } @ t: + { testScript, makeCoverageReport ? false, name ? "unnamed", ... } @ t: let + testDriverName = "nixos-test-driver-${name}"; nodes = buildVirtualNetwork ( t.nodes or (if t ? machine then { machine = t.machine; } else { })); @@ -88,10 +89,11 @@ rec { # Generate onvenience wrappers for running the test driver # interactively with the specified network, and for starting the # VMs from the command line. - driver = runCommand "nixos-test-driver" + driver = runCommand testDriverName { buildInputs = [ makeWrapper]; testScript = testScript'; preferLocalBuild = true; + testName = name; } '' mkdir -p $out/bin diff --git a/nixos/modules/config/ldap.nix b/nixos/modules/config/ldap.nix index 8171f460385b..7fcb1aaf63dd 100644 --- a/nixos/modules/config/ldap.nix +++ b/nixos/modules/config/ldap.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, ... }: -with lib; with pkgs; +with lib; let diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix index 43717697ebd3..fd1e55f673ae 100644 --- a/nixos/modules/config/networking.nix +++ b/nixos/modules/config/networking.nix @@ -14,7 +14,7 @@ in options = { - networking.extraHosts = pkgs.lib.mkOption { + networking.extraHosts = lib.mkOption { type = types.lines; default = ""; example = "192.168.0.1 lanlocalhost"; @@ -23,7 +23,7 @@ in ''; }; - networking.dnsSingleRequest = pkgs.lib.mkOption { + networking.dnsSingleRequest = lib.mkOption { type = types.bool; default = false; description = '' diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix index 9802b898a5d8..67e536f4fd93 100644 --- a/nixos/modules/config/pulseaudio.nix +++ b/nixos/modules/config/pulseaudio.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, ... }: -with lib; with pkgs; +with lib; let diff --git a/nixos/modules/config/swap.nix b/nixos/modules/config/swap.nix index ac1c32387c5e..1dc7ebb96aff 100644 --- a/nixos/modules/config/swap.nix +++ b/nixos/modules/config/swap.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, utils, ... }: -with lib; with utils; +with lib; { diff --git a/nixos/modules/config/sysctl.nix b/nixos/modules/config/sysctl.nix index 542360219193..3b6ccd380c75 100644 --- a/nixos/modules/config/sysctl.nix +++ b/nixos/modules/config/sysctl.nix @@ -6,8 +6,12 @@ let sysctlOption = mkOptionType { name = "sysctl option value"; - check = x: isBool x || isString x || isInt x || isNull x; - merge = args: defs: (last defs).value; # FIXME: hacky way to allow overriding in configuration.nix. + check = val: + let + checkType = x: isBool x || isString x || isInt x || isNull x; + in + checkType val || (val._type or "" == "override" && checkType val.content); + merge = loc: defs: mergeOneOption loc (filterOverrides defs); }; in diff --git a/nixos/modules/config/unix-odbc-drivers.nix b/nixos/modules/config/unix-odbc-drivers.nix index b725e6cae732..98929392acec 100644 --- a/nixos/modules/config/unix-odbc-drivers.nix +++ b/nixos/modules/config/unix-odbc-drivers.nix @@ -27,7 +27,7 @@ with lib; environment.etc."odbcinst.ini".text = let inis = config.environment.unixODBCDrivers; - in pkgs.lib.concatStringsSep "\n" inis; + in lib.concatStringsSep "\n" inis; }; diff --git a/nixos/modules/hardware/network/intel-2100bg.nix b/nixos/modules/hardware/network/intel-2100bg.nix index 1e0033eb414a..89fdce415dda 100644 --- a/nixos/modules/hardware/network/intel-2100bg.nix +++ b/nixos/modules/hardware/network/intel-2100bg.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { @@ -6,9 +6,9 @@ options = { - networking.enableIntel2100BGFirmware = pkgs.lib.mkOption { + networking.enableIntel2100BGFirmware = lib.mkOption { default = false; - type = pkgs.lib.types.bool; + type = lib.types.bool; description = '' Turn on this option if you want firmware for the Intel PRO/Wireless 2100BG to be loaded automatically. This is @@ -21,7 +21,7 @@ ###### implementation - config = pkgs.lib.mkIf config.networking.enableIntel2100BGFirmware { + config = lib.mkIf config.networking.enableIntel2100BGFirmware { hardware.enableAllFirmware = true; diff --git a/nixos/modules/hardware/network/intel-2200bg.nix b/nixos/modules/hardware/network/intel-2200bg.nix index ae5b69b7981d..1b70057d135b 100644 --- a/nixos/modules/hardware/network/intel-2200bg.nix +++ b/nixos/modules/hardware/network/intel-2200bg.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { @@ -6,9 +6,9 @@ options = { - networking.enableIntel2200BGFirmware = pkgs.lib.mkOption { + networking.enableIntel2200BGFirmware = lib.mkOption { default = false; - type = pkgs.lib.types.bool; + type = lib.types.bool; description = '' Turn on this option if you want firmware for the Intel PRO/Wireless 2200BG to be loaded automatically. This is @@ -21,7 +21,7 @@ ###### implementation - config = pkgs.lib.mkIf config.networking.enableIntel2200BGFirmware { + config = lib.mkIf config.networking.enableIntel2200BGFirmware { hardware.enableAllFirmware = true; diff --git a/nixos/modules/hardware/network/intel-3945abg.nix b/nixos/modules/hardware/network/intel-3945abg.nix index 80baf260ab9a..f4f19d208348 100644 --- a/nixos/modules/hardware/network/intel-3945abg.nix +++ b/nixos/modules/hardware/network/intel-3945abg.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { @@ -6,9 +6,9 @@ options = { - networking.enableIntel3945ABGFirmware = pkgs.lib.mkOption { + networking.enableIntel3945ABGFirmware = lib.mkOption { default = false; - type = pkgs.lib.types.bool; + type = lib.types.bool; description = '' This option enables automatic loading of the firmware for the Intel PRO/Wireless 3945ABG. @@ -20,7 +20,7 @@ ###### implementation - config = pkgs.lib.mkIf config.networking.enableIntel3945ABGFirmware { + config = lib.mkIf config.networking.enableIntel3945ABGFirmware { hardware.enableAllFirmware = true; diff --git a/nixos/modules/hardware/network/ralink.nix b/nixos/modules/hardware/network/ralink.nix index 92f34d8643bc..0469ae3a1fb3 100644 --- a/nixos/modules/hardware/network/ralink.nix +++ b/nixos/modules/hardware/network/ralink.nix @@ -1,4 +1,4 @@ -{pkgs, config, ...}: +{pkgs, config, lib, ...}: { @@ -6,9 +6,9 @@ options = { - networking.enableRalinkFirmware = pkgs.lib.mkOption { + networking.enableRalinkFirmware = lib.mkOption { default = false; - type = pkgs.lib.types.bool; + type = lib.types.bool; description = '' Turn on this option if you want firmware for the RT73 NIC. ''; @@ -19,7 +19,7 @@ ###### implementation - config = pkgs.lib.mkIf config.networking.enableRalinkFirmware { + config = lib.mkIf config.networking.enableRalinkFirmware { hardware.enableAllFirmware = true; }; diff --git a/nixos/modules/hardware/network/rtl8192c.nix b/nixos/modules/hardware/network/rtl8192c.nix index 3aefb7bdd608..deae6355492c 100644 --- a/nixos/modules/hardware/network/rtl8192c.nix +++ b/nixos/modules/hardware/network/rtl8192c.nix @@ -1,4 +1,4 @@ -{pkgs, config, ...}: +{pkgs, config, lib, ...}: { @@ -6,9 +6,9 @@ options = { - networking.enableRTL8192cFirmware = pkgs.lib.mkOption { + networking.enableRTL8192cFirmware = lib.mkOption { default = false; - type = pkgs.lib.types.bool; + type = lib.types.bool; description = '' Turn on this option if you want firmware for the RTL8192c (and related) NICs. ''; @@ -19,7 +19,7 @@ ###### implementation - config = pkgs.lib.mkIf config.networking.enableRTL8192cFirmware { + config = lib.mkIf config.networking.enableRTL8192cFirmware { hardware.enableAllFirmware = true; }; diff --git a/nixos/modules/hardware/network/smc-2632w/default.nix b/nixos/modules/hardware/network/smc-2632w/default.nix index 318131be7493..650011aca817 100644 --- a/nixos/modules/hardware/network/smc-2632w/default.nix +++ b/nixos/modules/hardware/network/smc-2632w/default.nix @@ -1,9 +1,9 @@ -{pkgs, config, ...}: +{lib, config, ...}: { hardware = { pcmcia = { - firmware = [ (pkgs.lib.cleanSource ./firmware) ]; + firmware = [ (lib.cleanSource ./firmware) ]; }; }; } diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix index ab5c309bd422..f894c830eb6c 100644 --- a/nixos/modules/hardware/opengl.nix +++ b/nixos/modules/hardware/opengl.nix @@ -84,7 +84,7 @@ in config = mkIf cfg.enable { - assertions = pkgs.lib.singleton { + assertions = lib.singleton { assertion = cfg.driSupport32Bit -> pkgs.stdenv.isx86_64; message = "Option driSupport32Bit only makes sense on a 64-bit system."; }; diff --git a/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix b/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix index c274970c5536..c2a11a1a8b32 100644 --- a/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix +++ b/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix @@ -152,7 +152,7 @@ in # default root password is empty. services.openssh.enable = true; - jobs.openssh.startOn = pkgs.lib.mkOverride 50 ""; + jobs.openssh.startOn = lib.mkOverride 50 ""; boot.loader.grub.enable = false; boot.loader.generationsDir.enable = false; diff --git a/nixos/modules/installer/cd-dvd/system-tarball-pc.nix b/nixos/modules/installer/cd-dvd/system-tarball-pc.nix index 0357bf801960..1156003d3f47 100644 --- a/nixos/modules/installer/cd-dvd/system-tarball-pc.nix +++ b/nixos/modules/installer/cd-dvd/system-tarball-pc.nix @@ -109,7 +109,7 @@ in # not be started by default on the installation CD because the # default root password is empty. services.openssh.enable = true; - jobs.openssh.startOn = pkgs.lib.mkOverride 50 ""; + jobs.openssh.startOn = lib.mkOverride 50 ""; # To be able to use the systemTarball to catch troubles. boot.crashDump = { diff --git a/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix b/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix index 3626308bff80..2ed70c1daa95 100644 --- a/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix +++ b/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix @@ -165,7 +165,7 @@ in # not be started by default on the installation CD because the # default root password is empty. services.openssh.enable = true; - jobs.openssh.startOn = pkgs.lib.mkOverride 50 ""; + jobs.openssh.startOn = lib.mkOverride 50 ""; # cpufrequtils fails to build on non-pc powerManagement.enable = false; diff --git a/nixos/modules/installer/tools/nixos-rebuild.sh b/nixos/modules/installer/tools/nixos-rebuild.sh index d7b749573fa9..be37e61151aa 100644 --- a/nixos/modules/installer/tools/nixos-rebuild.sh +++ b/nixos/modules/installer/tools/nixos-rebuild.sh @@ -97,6 +97,16 @@ if [ -n "$upgrade" -a -z "$_NIXOS_REBUILD_REEXEC" ]; then nix-channel --update nixos fi +# Make sure that we use the Nix package we depend on, not something +# else from the PATH for nix-{env,instantiate,build}. This is +# important, because NixOS defaults the architecture of the rebuilt +# system to the architecture of the nix-* binaries used. So if on an +# amd64 system the user has an i686 Nix package in her PATH, then we +# would silently downgrade the whole system to be i686 NixOS on the +# next reboot. +if [ -z "$_NIXOS_REBUILD_REEXEC" ]; then + export PATH=@nix@/bin:$PATH +fi # Re-execute nixos-rebuild from the Nixpkgs tree. if [ -z "$_NIXOS_REBUILD_REEXEC" -a -n "$canRun" ]; then diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index 5ebf05e340f9..39da2f1f0be6 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -1,7 +1,7 @@ # This module generates nixos-install, nixos-rebuild, # nixos-generate-config, etc. -{ config, pkgs, modulesPath, ... }: +{ config, pkgs, modulesPath, lib, ... }: let @@ -32,6 +32,7 @@ let nixos-rebuild = makeProg { name = "nixos-rebuild"; src = ./nixos-rebuild.sh; + nix = config.nix.package; }; nixos-generate-config = makeProg { @@ -64,7 +65,7 @@ let test -e "$out/chrome/content/jquery-1.5.2.js" || cp -f "$jquery" "$out/chrome/content/jquery-1.5.2.js" ''; - gui = pkgs.lib.cleanSource "${modulesPath}/../gui"; + gui = lib.cleanSource "${modulesPath}/../gui"; jquery = pkgs.fetchurl { url = http://code.jquery.com/jquery-1.5.2.min.js; sha256 = "8f0a19ee8c606b35a10904951e0a27da1896eafe33c6e88cb7bcbe455f05a24a"; diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index 956215d9a97a..7e19f00f9095 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -1,19 +1,19 @@ # This module defines the global list of uids and gids. We keep a # central list to prevent id collisions. -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { options = { - ids.uids = pkgs.lib.mkOption { + ids.uids = lib.mkOption { internal = true; description = '' The user IDs used in NixOS. ''; }; - ids.gids = pkgs.lib.mkOption { + ids.gids = lib.mkOption { internal = true; description = '' The group IDs used in NixOS. diff --git a/nixos/modules/misc/lib.nix b/nixos/modules/misc/lib.nix index 18fc68a69883..be8000ac029d 100644 --- a/nixos/modules/misc/lib.nix +++ b/nixos/modules/misc/lib.nix @@ -1,11 +1,11 @@ -{ config, pkgs, ... }: +{ config, lib, ... }: { options = { - lib = pkgs.lib.mkOption { + lib = lib.mkOption { default = {}; - type = pkgs.lib.types.attrsOf pkgs.lib.types.attrs; + type = lib.types.attrsOf lib.types.attrs; description = '' This option allows modules to define helper functions, constants, etc. diff --git a/nixos/modules/misc/passthru.nix b/nixos/modules/misc/passthru.nix index b65f20d62f2d..f3c9f6ba651b 100644 --- a/nixos/modules/misc/passthru.nix +++ b/nixos/modules/misc/passthru.nix @@ -1,11 +1,11 @@ # This module allows you to export something from configuration # Use case: export kernel source expression for ease of configuring -{ config, pkgs, ... }: +{ config, lib, ... }: { options = { - passthru = pkgs.lib.mkOption { + passthru = lib.mkOption { visible = false; description = '' This attribute set will be exported as a system attribute. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 3bce68670fc7..94180372afe1 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -217,6 +217,7 @@ ./services/networking/prayer.nix ./services/networking/privoxy.nix ./services/networking/quassel.nix + ./services/networking/radicale.nix ./services/networking/radvd.nix ./services/networking/rdnssd.nix ./services/networking/rpcbind.nix diff --git a/nixos/modules/programs/blcr.nix b/nixos/modules/programs/blcr.nix index e1e31b4a56aa..804e1d01f12b 100644 --- a/nixos/modules/programs/blcr.nix +++ b/nixos/modules/programs/blcr.nix @@ -1,7 +1,7 @@ -{ config, pkgs, ... }: +{ config, lib, ... }: let - inherit (pkgs.lib) mkOption mkIf; + inherit (lib) mkOption mkIf; cfg = config.environment.blcr; blcrPkg = config.boot.kernelPackages.blcr; in diff --git a/nixos/modules/programs/screen.nix b/nixos/modules/programs/screen.nix index 1c63ebe6a11e..f82338a69d25 100644 --- a/nixos/modules/programs/screen.nix +++ b/nixos/modules/programs/screen.nix @@ -1,7 +1,7 @@ -{ config, pkgs, ... }: +{ config, lib, ... }: let - inherit (pkgs.lib) mkOption mkIf types; + inherit (lib) mkOption mkIf types; cfg = config.programs.screen; in diff --git a/nixos/modules/programs/shadow.nix b/nixos/modules/programs/shadow.nix index 5fcd2133a7e1..658b08b3d870 100644 --- a/nixos/modules/programs/shadow.nix +++ b/nixos/modules/programs/shadow.nix @@ -40,7 +40,7 @@ in options = { - users.defaultUserShell = pkgs.lib.mkOption { + users.defaultUserShell = lib.mkOption { description = '' This option defines the default shell assigned to user accounts. This must not be a store path, since the path is @@ -60,7 +60,7 @@ in config = { environment.systemPackages = - pkgs.lib.optional config.users.mutableUsers pkgs.shadow; + lib.optional config.users.mutableUsers pkgs.shadow; environment.etc = [ { # /etc/login.defs: global configuration for pwdutils. You diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix index 02340fd78e8c..b1b75a0068d4 100644 --- a/nixos/modules/security/pam.nix +++ b/nixos/modules/security/pam.nix @@ -189,7 +189,9 @@ let session required pam_env.so envfile=${config.system.build.pamEnvironment} session required pam_unix.so ${optionalString cfg.setLoginUid - "session required pam_loginuid.so"} + "session ${ + if config.boot.isContainer then "optional" else "required" + } pam_loginuid.so"} ${optionalString cfg.updateWtmp "session required ${pkgs.pam}/lib/security/pam_lastlog.so silent"} ${optionalString config.users.ldap.enable diff --git a/nixos/modules/services/amqp/activemq/default.nix b/nixos/modules/services/amqp/activemq/default.nix index f1f3d005f30f..f731900070e4 100644 --- a/nixos/modules/services/amqp/activemq/default.nix +++ b/nixos/modules/services/amqp/activemq/default.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, ... }: -with lib; with pkgs; +with lib; let diff --git a/nixos/modules/services/backup/sitecopy-backup.nix b/nixos/modules/services/backup/sitecopy-backup.nix index 5d3675fa3e9d..5f2b4e76aeeb 100644 --- a/nixos/modules/services/backup/sitecopy-backup.nix +++ b/nixos/modules/services/backup/sitecopy-backup.nix @@ -73,7 +73,7 @@ in touch ${stateDir}/sitecopy.secrets chown root ${stateDir}/sitecopy.secrets - ${pkgs.lib.concatStrings (map ( b: '' + ${lib.concatStrings (map ( b: '' unset secrets unset secret secrets=`grep '^${b.server}' ${stateDir}/sitecopy.secrets | head -1` diff --git a/nixos/modules/services/databases/openldap.nix b/nixos/modules/services/databases/openldap.nix index c95238b34515..eae4c114fc12 100644 --- a/nixos/modules/services/databases/openldap.nix +++ b/nixos/modules/services/databases/openldap.nix @@ -68,7 +68,7 @@ in users.extraUsers = optionalAttrs (cfg.user == "openldap") (singleton { name = "openldap"; - group = "openldap"; + group = cfg.group; uid = config.ids.uids.openldap; }); diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix index ad83cb553e1d..01c55479b2b4 100644 --- a/nixos/modules/services/databases/postgresql.nix +++ b/nixos/modules/services/databases/postgresql.nix @@ -85,7 +85,7 @@ in Defines how users authenticate themselves to the server. By default, "trust" access to local users will always be granted along with any other custom options. If you do not want this, - set this option using "pkgs.lib.mkForce" to override this + set this option using "lib.mkForce" to override this behaviour. ''; }; diff --git a/nixos/modules/services/desktops/gnome3/gnome-documents.nix b/nixos/modules/services/desktops/gnome3/gnome-documents.nix index 2279ef48fb9c..88bbdadfcbdd 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-documents.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-documents.nix @@ -1,8 +1,8 @@ # GNOME Documents daemon. -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: -with pkgs.lib; +with lib; let gnome3 = config.environment.gnome3.packageSet; diff --git a/nixos/modules/services/desktops/gnome3/gnome-keyring.nix b/nixos/modules/services/desktops/gnome3/gnome-keyring.nix index be14f1fcbc0c..566c8a50e269 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-keyring.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-keyring.nix @@ -1,8 +1,8 @@ # GNOME Keyring daemon. -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: -with pkgs.lib; +with lib; let gnome3 = config.environment.gnome3.packageSet; diff --git a/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix b/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix index a41fb0101f0f..82d04c62c70d 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix @@ -1,8 +1,8 @@ # GNOME Online Accounts daemon. -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: -with pkgs.lib; +with lib; let gnome3 = config.environment.gnome3.packageSet; diff --git a/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix b/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix index 030d4bac6a76..6acd633b62c9 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix @@ -1,8 +1,8 @@ # GNOME Online Miners daemon. -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: -with pkgs.lib; +with lib; let gnome3 = config.environment.gnome3.packageSet; diff --git a/nixos/modules/services/desktops/gnome3/gnome-user-share.nix b/nixos/modules/services/desktops/gnome3/gnome-user-share.nix index 3b6c713f7be3..e5c94cff7c84 100644 --- a/nixos/modules/services/desktops/gnome3/gnome-user-share.nix +++ b/nixos/modules/services/desktops/gnome3/gnome-user-share.nix @@ -1,8 +1,8 @@ # GNOME User Share daemon. -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: -with pkgs.lib; +with lib; let gnome3 = config.environment.gnome3.packageSet; diff --git a/nixos/modules/services/desktops/gnome3/gvfs.nix b/nixos/modules/services/desktops/gnome3/gvfs.nix index 1a003ddd1efb..7e1382b161e1 100644 --- a/nixos/modules/services/desktops/gnome3/gvfs.nix +++ b/nixos/modules/services/desktops/gnome3/gvfs.nix @@ -1,8 +1,8 @@ # gvfs backends -{ config, pkgs, ... }: +{ config, lib, ... }: -with pkgs.lib; +with lib; let gnome3 = config.environment.gnome3.packageSet; diff --git a/nixos/modules/services/desktops/gnome3/seahorse.nix b/nixos/modules/services/desktops/gnome3/seahorse.nix index 01e4a24f2672..45925aaca9b9 100644 --- a/nixos/modules/services/desktops/gnome3/seahorse.nix +++ b/nixos/modules/services/desktops/gnome3/seahorse.nix @@ -1,8 +1,8 @@ # Seahorse daemon. -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: -with pkgs.lib; +with lib; let gnome3 = config.environment.gnome3.packageSet; diff --git a/nixos/modules/services/desktops/gnome3/tracker.nix b/nixos/modules/services/desktops/gnome3/tracker.nix index 670e585c6f55..8c5935a5ee3c 100644 --- a/nixos/modules/services/desktops/gnome3/tracker.nix +++ b/nixos/modules/services/desktops/gnome3/tracker.nix @@ -1,8 +1,8 @@ # Tracker daemon. -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: -with pkgs.lib; +with lib; let gnome3 = config.environment.gnome3.packageSet; diff --git a/nixos/modules/services/hardware/acpid.nix b/nixos/modules/services/hardware/acpid.nix index a710636c1400..b87899e45983 100644 --- a/nixos/modules/services/hardware/acpid.nix +++ b/nixos/modules/services/hardware/acpid.nix @@ -16,7 +16,7 @@ let echo "event=${event.event}" > $fn echo "action=${pkgs.writeScript "${event.name}.sh" event.action}" >> $fn ''; - in pkgs.lib.concatMapStrings f events + in lib.concatMapStrings f events } ''; diff --git a/nixos/modules/services/hardware/amd-hybrid-graphics.nix b/nixos/modules/services/hardware/amd-hybrid-graphics.nix index d938867186d0..087bd0e04098 100644 --- a/nixos/modules/services/hardware/amd-hybrid-graphics.nix +++ b/nixos/modules/services/hardware/amd-hybrid-graphics.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { @@ -6,9 +6,9 @@ options = { - hardware.amdHybridGraphics.disable = pkgs.lib.mkOption { + hardware.amdHybridGraphics.disable = lib.mkOption { default = false; - type = pkgs.lib.types.bool; + type = lib.types.bool; description = '' Completely disable the AMD graphics card and use the integrated graphics processor instead. @@ -20,7 +20,7 @@ ###### implementation - config = pkgs.lib.mkIf config.hardware.amdHybridGraphics.disable { + config = lib.mkIf config.hardware.amdHybridGraphics.disable { systemd.services."amd-hybrid-graphics" = { path = [ pkgs.bash ]; description = "Disable AMD Card"; diff --git a/nixos/modules/services/hardware/nvidia-optimus.nix b/nixos/modules/services/hardware/nvidia-optimus.nix index 4c0ce794d4f7..9fe4021c4247 100644 --- a/nixos/modules/services/hardware/nvidia-optimus.nix +++ b/nixos/modules/services/hardware/nvidia-optimus.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: let kernel = config.boot.kernelPackages; in @@ -8,9 +8,9 @@ let kernel = config.boot.kernelPackages; in options = { - hardware.nvidiaOptimus.disable = pkgs.lib.mkOption { + hardware.nvidiaOptimus.disable = lib.mkOption { default = false; - type = pkgs.lib.types.bool; + type = lib.types.bool; description = '' Completely disable the NVIDIA graphics card and use the integrated graphics processor instead. @@ -22,7 +22,7 @@ let kernel = config.boot.kernelPackages; in ###### implementation - config = pkgs.lib.mkIf config.hardware.nvidiaOptimus.disable { + config = lib.mkIf config.hardware.nvidiaOptimus.disable { boot.blacklistedKernelModules = ["nouveau" "nvidia" "nvidiafb"]; boot.kernelModules = [ "bbswitch" ]; boot.extraModulePackages = [ kernel.bbswitch ]; diff --git a/nixos/modules/services/monitoring/monit.nix b/nixos/modules/services/monitoring/monit.nix index 2acc51c64a6a..642fac3b3a01 100644 --- a/nixos/modules/services/monitoring/monit.nix +++ b/nixos/modules/services/monitoring/monit.nix @@ -1,9 +1,9 @@ # Monit system watcher # http://mmonit.org/monit/ -{config, pkgs, ...}: +{config, pkgs, lib, ...}: -let inherit (pkgs.lib) mkOption mkIf; +let inherit (lib) mkOption mkIf; in { diff --git a/nixos/modules/services/monitoring/uptime.nix b/nixos/modules/services/monitoring/uptime.nix index 553110d7b80c..29616a085c8f 100644 --- a/nixos/modules/services/monitoring/uptime.nix +++ b/nixos/modules/services/monitoring/uptime.nix @@ -1,6 +1,6 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: let - inherit (pkgs.lib) mkOption mkEnableOption mkIf mkMerge types optionalAttrs optional; + inherit (lib) mkOption mkEnableOption mkIf mkMerge types optionalAttrs optional; cfg = config.services.uptime; diff --git a/nixos/modules/services/network-filesystems/openafs-client/default.nix b/nixos/modules/services/network-filesystems/openafs-client/default.nix index b34ebc3663e3..23ab39eb05f3 100644 --- a/nixos/modules/services/network-filesystems/openafs-client/default.nix +++ b/nixos/modules/services/network-filesystems/openafs-client/default.nix @@ -1,7 +1,7 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: let - inherit (pkgs.lib) mkOption mkIf; + inherit (lib) mkOption mkIf; cfg = config.services.openafsClient; diff --git a/nixos/modules/services/network-filesystems/rsyncd.nix b/nixos/modules/services/network-filesystems/rsyncd.nix index bc17add809b2..19aa7efd2ff4 100644 --- a/nixos/modules/services/network-filesystems/rsyncd.nix +++ b/nixos/modules/services/network-filesystems/rsyncd.nix @@ -1,6 +1,6 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: -with pkgs.lib; +with lib; let @@ -136,4 +136,4 @@ in networking.firewall.allowedTCPPorts = [ cfg.port ]; }; -} \ No newline at end of file +} diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix index 7ed1e4805d8f..482b61997ae1 100644 --- a/nixos/modules/services/networking/connman.nix +++ b/nixos/modules/services/networking/connman.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, ... }: -with lib; with pkgs; +with lib; let cfg = config.networking.connman; diff --git a/nixos/modules/services/networking/ddclient.nix b/nixos/modules/services/networking/ddclient.nix index c53cb68fb75f..bb94a8dacfa2 100644 --- a/nixos/modules/services/networking/ddclient.nix +++ b/nixos/modules/services/networking/ddclient.nix @@ -1,8 +1,8 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: let - inherit (pkgs.lib) mkOption mkIf singleton; + inherit (lib) mkOption mkIf singleton; inherit (pkgs) ddclient; diff --git a/nixos/modules/services/networking/dhcpd.nix b/nixos/modules/services/networking/dhcpd.nix index 89f686c28703..e5e1c103c686 100644 --- a/nixos/modules/services/networking/dhcpd.nix +++ b/nixos/modules/services/networking/dhcpd.nix @@ -18,7 +18,7 @@ let ${cfg.extraConfig} - ${pkgs.lib.concatMapStrings + ${lib.concatMapStrings (machine: '' host ${machine.hostName} { hardware ethernet ${machine.ethernetAddress}; diff --git a/nixos/modules/services/networking/gvpe.nix b/nixos/modules/services/networking/gvpe.nix index 594a2e80f345..c633ffedef49 100644 --- a/nixos/modules/services/networking/gvpe.nix +++ b/nixos/modules/services/networking/gvpe.nix @@ -1,9 +1,9 @@ # GNU Virtual Private Ethernet -{config, pkgs, ...}: +{config, pkgs, lib, ...}: let - inherit (pkgs.lib) mkOption mkIf; + inherit (lib) mkOption mkIf; cfg = config.services.gvpe; diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix index 54bdf19373d5..bc1c95d3fd36 100644 --- a/nixos/modules/services/networking/networkmanager.nix +++ b/nixos/modules/services/networking/networkmanager.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, ... }: -with lib; with pkgs; +with lib; let cfg = config.networking.networkmanager; @@ -151,7 +151,7 @@ in { { source = "${networkmanager_pptp}/etc/NetworkManager/VPN/nm-pptp-service.name"; target = "NetworkManager/VPN/nm-pptp-service.name"; } - ] ++ pkgs.lib.optional (cfg.appendNameservers == [] || cfg.insertNameservers == []) + ] ++ optional (cfg.appendNameservers == [] || cfg.insertNameservers == []) { source = overrideNameserversScript; target = "NetworkManager/dispatcher.d/02overridedns"; }; diff --git a/nixos/modules/services/networking/notbit.nix b/nixos/modules/services/networking/notbit.nix index 3e8c956f191e..2e1412ff7c83 100644 --- a/nixos/modules/services/networking/notbit.nix +++ b/nixos/modules/services/networking/notbit.nix @@ -1,6 +1,6 @@ { config, lib, pkgs, ... }: -with pkgs.lib; +with lib; let cfg = config.services.notbit; varDir = "/var/lib/notbit"; diff --git a/nixos/modules/services/networking/nsd.nix b/nixos/modules/services/networking/nsd.nix index adfee1caec58..db8cb1228719 100644 --- a/nixos/modules/services/networking/nsd.nix +++ b/nixos/modules/services/networking/nsd.nix @@ -1,6 +1,6 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: -with pkgs.lib; +with lib; let cfg = config.services.nsd; diff --git a/nixos/modules/services/networking/radicale.nix b/nixos/modules/services/networking/radicale.nix new file mode 100644 index 000000000000..fc9afc70aca4 --- /dev/null +++ b/nixos/modules/services/networking/radicale.nix @@ -0,0 +1,48 @@ +{config, lib, pkgs, ...}: + +with lib; + +let + + cfg = config.services.radicale; + + confFile = pkgs.writeText "radicale.conf" cfg.config; + +in + +{ + + options = { + + services.radicale.enable = mkOption { + type = types.bool; + default = false; + description = '' + Enable Radicale CalDAV and CardDAV server + ''; + }; + + services.radicale.config = mkOption { + type = types.string; + default = ""; + description = '' + Radicale configuration, this will set the service + configuration file + ''; + }; + }; + + config = mkIf cfg.enable { + + environment.systemPackages = [ pkgs.pythonPackages.radicale ]; + + jobs.radicale = { + description = "A Simple Calendar and Contact Server"; + startOn = "started network-interfaces"; + exec = "${pkgs.pythonPackages.radicale}/bin/radicale -C ${confFile} -d"; + daemonType = "fork"; + }; + + }; + +} diff --git a/nixos/modules/services/networking/teamspeak3.nix b/nixos/modules/services/networking/teamspeak3.nix index 2d3478d52f83..b3656d73dec0 100644 --- a/nixos/modules/services/networking/teamspeak3.nix +++ b/nixos/modules/services/networking/teamspeak3.nix @@ -1,6 +1,6 @@ -{ config, pkgs, ... }: +{ config, lib, pkgs, ... }: -with pkgs.lib; +with lib; let ts3 = pkgs.teamspeak_server; diff --git a/nixos/modules/services/scheduling/cron.nix b/nixos/modules/services/scheduling/cron.nix index 5da71b12dd76..9ce0bcbec7eb 100644 --- a/nixos/modules/services/scheduling/cron.nix +++ b/nixos/modules/services/scheduling/cron.nix @@ -15,7 +15,7 @@ let MAILTO="${config.services.cron.mailto}" ''} NIX_CONF_DIR=/etc/nix - ${pkgs.lib.concatStrings (map (job: job + "\n") config.services.cron.systemCronJobs)} + ${lib.concatStrings (map (job: job + "\n") config.services.cron.systemCronJobs)} ''; # Vixie cron requires build-time configuration for the sendmail path. diff --git a/nixos/modules/services/scheduling/fcron.nix b/nixos/modules/services/scheduling/fcron.nix index 346a64f2c3cb..ade8c19329ca 100644 --- a/nixos/modules/services/scheduling/fcron.nix +++ b/nixos/modules/services/scheduling/fcron.nix @@ -17,7 +17,7 @@ let MAILTO="${config.services.cron.mailto}" ''} NIX_CONF_DIR=/etc/nix - ${pkgs.lib.concatStrings (map (job: job + "\n") config.services.cron.systemCronJobs)} + ${lib.concatStrings (map (job: job + "\n") config.services.cron.systemCronJobs)} ''; allowdeny = target: users: diff --git a/nixos/modules/services/security/frandom.nix b/nixos/modules/services/security/frandom.nix index 9aae7b33a430..2d43d12e541d 100644 --- a/nixos/modules/services/security/frandom.nix +++ b/nixos/modules/services/security/frandom.nix @@ -1,4 +1,4 @@ -{pkgs, config, ...}: +{lib, config, ...}: let kernel = config.boot.kernelPackages; in @@ -9,9 +9,9 @@ in options = { - services.frandom.enable = pkgs.lib.mkOption { + services.frandom.enable = lib.mkOption { default = false; - type = pkgs.lib.types.bool; + type = lib.types.bool; description = '' enable the /dev/frandom device (a very fast random number generator) ''; @@ -22,7 +22,7 @@ in ###### implementation - config = pkgs.lib.mkIf config.services.frandom.enable { + config = lib.mkIf config.services.frandom.enable { boot.kernelModules = [ "frandom" ]; boot.extraModulePackages = [ kernel.frandom ]; services.udev.packages = [ kernel.frandom ]; diff --git a/nixos/modules/services/system/kerberos.nix b/nixos/modules/services/system/kerberos.nix index 8fb5debd20e4..3a0171ca1b9b 100644 --- a/nixos/modules/services/system/kerberos.nix +++ b/nixos/modules/services/system/kerberos.nix @@ -1,8 +1,8 @@ -{pkgs, config, ...}: +{pkgs, config, lib, ...}: let - inherit (pkgs.lib) mkOption mkIf singleton; + inherit (lib) mkOption mkIf singleton; inherit (pkgs) heimdal; @@ -36,7 +36,7 @@ in environment.systemPackages = [ heimdal ]; services.xinetd.enable = true; - services.xinetd.services = pkgs.lib.singleton + services.xinetd.services = lib.singleton { name = "kerberos-adm"; flags = "REUSE NAMEINARGS"; protocol = "tcp"; diff --git a/nixos/modules/services/system/nscd.nix b/nixos/modules/services/system/nscd.nix index 1ac82064a1f7..5460e962ea2c 100644 --- a/nixos/modules/services/system/nscd.nix +++ b/nixos/modules/services/system/nscd.nix @@ -7,7 +7,7 @@ let nssModulesPath = config.system.nssModules.path; cfg = config.services.nscd; - inherit (pkgs.lib) singleton; + inherit (lib) singleton; cfgFile = pkgs.writeText "nscd.conf" cfg.config; diff --git a/nixos/modules/services/system/uptimed.nix b/nixos/modules/services/system/uptimed.nix index 61eecd5c9ba8..ab46c508914d 100644 --- a/nixos/modules/services/system/uptimed.nix +++ b/nixos/modules/services/system/uptimed.nix @@ -1,8 +1,8 @@ -{pkgs, config, ...}: +{pkgs, config, lib, ...}: let - inherit (pkgs.lib) mkOption mkIf singleton; + inherit (lib) mkOption mkIf singleton; inherit (pkgs) uptimed; diff --git a/nixos/modules/services/ttys/kmscon.nix b/nixos/modules/services/ttys/kmscon.nix index 70555e5d8825..7783a1ada71d 100644 --- a/nixos/modules/services/ttys/kmscon.nix +++ b/nixos/modules/services/ttys/kmscon.nix @@ -1,6 +1,6 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: let - inherit (pkgs.lib) mkOption types mkIf optionalString; + inherit (lib) mkOption types mkIf optionalString; cfg = config.services.kmscon; diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix index b8359d4756b3..6d0416fbb155 100644 --- a/nixos/modules/services/web-servers/apache-httpd/default.nix +++ b/nixos/modules/services/web-servers/apache-httpd/default.nix @@ -594,17 +594,17 @@ in message = "SSL is enabled for HTTPD, but sslServerCert and/or sslServerKey haven't been specified."; } ]; - users.extraUsers = optional (mainCfg.user == "wwwrun") + users.extraUsers = optionalAttrs (mainCfg.user == "wwwrun") (singleton { name = "wwwrun"; - group = "wwwrun"; + group = mainCfg.group; description = "Apache httpd user"; uid = config.ids.uids.wwwrun; - }; + }); - users.extraGroups = optional (mainCfg.group == "wwwrun") + users.extraGroups = optionalAttrs (mainCfg.group == "wwwrun") (singleton { name = "wwwrun"; gid = config.ids.gids.wwwrun; - }; + }); environment.systemPackages = [httpd] ++ concatMap (svc: svc.extraPath) allSubservices; diff --git a/nixos/modules/services/web-servers/apache-httpd/mercurial.nix b/nixos/modules/services/web-servers/apache-httpd/mercurial.nix index 755b595c783d..1d4303b75b35 100644 --- a/nixos/modules/services/web-servers/apache-httpd/mercurial.nix +++ b/nixos/modules/services/web-servers/apache-httpd/mercurial.nix @@ -1,8 +1,8 @@ -{ config, pkgs, serverInfo, ... }: +{ config, pkgs, serverInfo, lib, ... }: let inherit (pkgs) mercurial; - inherit (pkgs.lib) mkOption; + inherit (lib) mkOption; urlPrefix = config.urlPrefix; diff --git a/nixos/modules/services/web-servers/apache-httpd/tomcat-connector.nix b/nixos/modules/services/web-servers/apache-httpd/tomcat-connector.nix index 1b754cf025eb..b2cd53ae55cd 100644 --- a/nixos/modules/services/web-servers/apache-httpd/tomcat-connector.nix +++ b/nixos/modules/services/web-servers/apache-httpd/tomcat-connector.nix @@ -1,7 +1,7 @@ -{ config, pkgs, serverInfo, ... }: +{ config, pkgs, serverInfo, lib, ... }: let - extraWorkersProperties = pkgs.lib.optionalString (config ? extraWorkersProperties) config.extraWorkersProperties; + extraWorkersProperties = lib.optionalString (config ? extraWorkersProperties) config.extraWorkersProperties; workersProperties = pkgs.writeText "workers.properties" '' # Define list of workers that will be used diff --git a/nixos/modules/services/x11/window-managers/openbox.nix b/nixos/modules/services/x11/window-managers/openbox.nix index 46b1945d33e8..8fc759dda68a 100644 --- a/nixos/modules/services/x11/window-managers/openbox.nix +++ b/nixos/modules/services/x11/window-managers/openbox.nix @@ -1,7 +1,7 @@ -{pkgs, config, ...}: +{lib, pkgs, config, ...}: let - inherit (pkgs.lib) mkOption mkIf; + inherit (lib) mkOption mkIf; cfg = config.services.xserver.windowManager.openbox; in diff --git a/nixos/modules/services/x11/window-managers/xmonad.nix b/nixos/modules/services/x11/window-managers/xmonad.nix index 87eff38a028a..74acfc219759 100644 --- a/nixos/modules/services/x11/window-managers/xmonad.nix +++ b/nixos/modules/services/x11/window-managers/xmonad.nix @@ -1,7 +1,7 @@ -{pkgs, config, ...}: +{pkgs, lib, config, ...}: let - inherit (pkgs.lib) mkOption mkIf optionals literalExample; + inherit (lib) mkOption mkIf optionals literalExample; cfg = config.services.xserver.windowManager.xmonad; xmonadEnv = cfg.haskellPackages.ghcWithPackages(self: [ self.xmonad @@ -48,7 +48,7 @@ in enableContribAndExtras = mkOption { default = false; example = true; - type = pkgs.lib.types.bool; + type = lib.types.bool; description = "Enable xmonad-{contrib,extras} in Xmonad."; }; }; diff --git a/nixos/modules/tasks/encrypted-devices.nix b/nixos/modules/tasks/encrypted-devices.nix index e56549149cb8..0370e36fbec2 100644 --- a/nixos/modules/tasks/encrypted-devices.nix +++ b/nixos/modules/tasks/encrypted-devices.nix @@ -1,6 +1,6 @@ -{ config, pkgs, modulesPath, ... }: +{ config, lib, ... }: -with pkgs.lib; +with lib; let fileSystems = attrValues config.fileSystems ++ config.swapDevices; diff --git a/nixos/modules/tasks/filesystems/f2fs.nix b/nixos/modules/tasks/filesystems/f2fs.nix index 8655107360c1..1ed7b1b6a62e 100644 --- a/nixos/modules/tasks/filesystems/f2fs.nix +++ b/nixos/modules/tasks/filesystems/f2fs.nix @@ -1,6 +1,6 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: -with pkgs.lib; +with lib; let inInitrd = any (fs: fs == "f2fs") config.boot.initrd.supportedFilesystems; diff --git a/nixos/modules/tasks/filesystems/unionfs-fuse.nix b/nixos/modules/tasks/filesystems/unionfs-fuse.nix index 177c97f85c78..5b7777180568 100644 --- a/nixos/modules/tasks/filesystems/unionfs-fuse.nix +++ b/nixos/modules/tasks/filesystems/unionfs-fuse.nix @@ -1,8 +1,8 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { - config = pkgs.lib.mkMerge [ - (pkgs.lib.mkIf (pkgs.lib.any (fs: fs == "unionfs-fuse") config.boot.initrd.supportedFilesystems) { + config = lib.mkMerge [ + (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.initrd.supportedFilesystems) { boot.initrd.kernelModules = [ "fuse" ]; boot.initrd.extraUtilsCommands = '' @@ -17,7 +17,7 @@ ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}/bin ''; }) - (pkgs.lib.mkIf (pkgs.lib.any (fs: fs == "unionfs-fuse") config.boot.supportedFilesystems) { + (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.supportedFilesystems) { system.fsPackages = [ pkgs.unionfs-fuse ]; }) ]; diff --git a/nixos/modules/testing/minimal-kernel.nix b/nixos/modules/testing/minimal-kernel.nix index 0cbca71e1326..a463cb803ade 100644 --- a/nixos/modules/testing/minimal-kernel.nix +++ b/nixos/modules/testing/minimal-kernel.nix @@ -1,7 +1,7 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: let - configfile = builtins.storePath (builtins.toFile "config" (pkgs.lib.concatStringsSep "\n" + configfile = builtins.storePath (builtins.toFile "config" (lib.concatStringsSep "\n" (map (builtins.getAttr "configLine") config.system.requiredKernelConfig)) ); diff --git a/nixos/modules/virtualisation/virtualbox-guest.nix b/nixos/modules/virtualisation/virtualbox-guest.nix index b3847daf12c0..a5a4db797877 100644 --- a/nixos/modules/virtualisation/virtualbox-guest.nix +++ b/nixos/modules/virtualisation/virtualbox-guest.nix @@ -11,7 +11,6 @@ let in -optionalAttrs (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) # ugly... { ###### interface @@ -33,6 +32,10 @@ optionalAttrs (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) # ugly... ###### implementation config = mkIf cfg.enable { + assertions = [ { + assertion = pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64; + message = "Virtualbox not currently supported on ${pkgs.stdenv.system}"; + } ]; environment.systemPackages = [ kernel.virtualboxGuestAdditions ]; diff --git a/nixos/tests/avahi.nix b/nixos/tests/avahi.nix index b6f18087c56f..3898ddb4e8e6 100644 --- a/nixos/tests/avahi.nix +++ b/nixos/tests/avahi.nix @@ -1,6 +1,7 @@ # Test whether `avahi-daemon' and `libnss-mdns' work as expected. import ./make-test.nix { + name = "avahi"; nodes = { one = diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix index b58657a5ecdb..002e012f65f0 100644 --- a/nixos/tests/bittorrent.nix +++ b/nixos/tests/bittorrent.nix @@ -23,6 +23,7 @@ let in { + name = "bittorrent"; nodes = { tracker = diff --git a/nixos/tests/check-filesystems.nix b/nixos/tests/check-filesystems.nix index 09401f9a3f44..71aa9649840f 100644 --- a/nixos/tests/check-filesystems.nix +++ b/nixos/tests/check-filesystems.nix @@ -6,6 +6,8 @@ with import ../lib/build-vms.nix { inherit nixos nixpkgs system; }; rec { + name = "check-filesystems"; + nodes = { share = {pkgs, config, ...}: { services.nfs.server.enable = true; diff --git a/nixos/tests/containers.nix b/nixos/tests/containers.nix index 8ad9cd6e0d79..f7dc8eb491d6 100644 --- a/nixos/tests/containers.nix +++ b/nixos/tests/containers.nix @@ -1,6 +1,7 @@ # Test for NixOS' container support. import ./make-test.nix { + name = "containers"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/firefox.nix b/nixos/tests/firefox.nix index b42d473b8025..77a6f6ac9e71 100644 --- a/nixos/tests/firefox.nix +++ b/nixos/tests/firefox.nix @@ -1,4 +1,5 @@ import ./make-test.nix ({ pkgs, ... }: { + name = "firefox"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/firewall.nix b/nixos/tests/firewall.nix index d10e10b1d91c..16922508c7c5 100644 --- a/nixos/tests/firewall.nix +++ b/nixos/tests/firewall.nix @@ -1,6 +1,7 @@ # Test the firewall module. import ./make-test.nix { + name = "firewall"; nodes = { walled = diff --git a/nixos/tests/gnome3.nix b/nixos/tests/gnome3.nix index f1a6ce633313..44668f57fc1e 100644 --- a/nixos/tests/gnome3.nix +++ b/nixos/tests/gnome3.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "gnome3"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/gnome3_12.nix b/nixos/tests/gnome3_12.nix index 92a1919b8cb2..439674b69d5d 100644 --- a/nixos/tests/gnome3_12.nix +++ b/nixos/tests/gnome3_12.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "gnome3_12"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/influxdb.nix b/nixos/tests/influxdb.nix index 278b264170fa..9f8ea061b960 100644 --- a/nixos/tests/influxdb.nix +++ b/nixos/tests/influxdb.nix @@ -1,6 +1,8 @@ # This test runs influxdb and checks if influxdb is up and running import ./make-test.nix { + name = "influxdb"; + nodes = { one = { config, pkgs, ... }: { services.influxdb.enable = true; diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 98e8142a0dfd..d3bbe7a8bd55 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -215,10 +215,11 @@ let ''; - makeInstallerTest = + makeInstallerTest = name: { createPartitions, testChannel ? false, useEFI ? false, grubVersion ? 2, grubDevice ? "/dev/vda" }: makeTest { inherit iso; + name = "installer-" + name; nodes = if testChannel then { inherit webserver; } else { }; testScript = testScriptFun { inherit createPartitions testChannel useEFI grubVersion grubDevice; @@ -233,7 +234,7 @@ in { # The (almost) simplest partitioning scheme: a swap partition and # one big filesystem partition. - simple = makeInstallerTest + simple = makeInstallerTest "simple" { createPartitions = '' $machine->succeed( @@ -251,7 +252,7 @@ in { }; # Same as the previous, but now with a separate /boot partition. - separateBoot = makeInstallerTest + separateBoot = makeInstallerTest "separateBoot" { createPartitions = '' $machine->succeed( @@ -273,7 +274,7 @@ in { # Create two physical LVM partitions combined into one volume group # that contains the logical swap and root partitions. - lvm = makeInstallerTest + lvm = makeInstallerTest "lvm" { createPartitions = '' $machine->succeed( @@ -295,7 +296,7 @@ in { ''; }; - swraid = makeInstallerTest + swraid = makeInstallerTest "swraid" { createPartitions = '' $machine->succeed( @@ -328,7 +329,7 @@ in { }; # Test a basic install using GRUB 1. - grub1 = makeInstallerTest + grub1 = makeInstallerTest "grub1" { createPartitions = '' $machine->succeed( @@ -348,7 +349,7 @@ in { }; # Test an EFI install. - efi = makeInstallerTest + efi = makeInstallerTest "efi" { createPartitions = '' $machine->succeed( @@ -369,6 +370,7 @@ in { # Rebuild the CD configuration with a little modification. rebuildCD = makeTest { inherit iso; + name = "rebuild-cd"; nodes = { }; testScript = '' diff --git a/nixos/tests/ipv6.nix b/nixos/tests/ipv6.nix index eb15363d3c32..af6fec6bfbf5 100644 --- a/nixos/tests/ipv6.nix +++ b/nixos/tests/ipv6.nix @@ -2,6 +2,7 @@ # solicication/advertisement using radvd works. import ./make-test.nix { + name = "ipv6"; nodes = { client = { config, pkgs, ... }: { }; diff --git a/nixos/tests/jenkins.nix b/nixos/tests/jenkins.nix index ad7ea78ac49b..28027c294bc6 100644 --- a/nixos/tests/jenkins.nix +++ b/nixos/tests/jenkins.nix @@ -4,6 +4,7 @@ # 3. jenkins service not started on slave node import ./make-test.nix { + name = "jenkins"; nodes = { diff --git a/nixos/tests/kde4.nix b/nixos/tests/kde4.nix index 99a82a6b95df..90c37397821e 100644 --- a/nixos/tests/kde4.nix +++ b/nixos/tests/kde4.nix @@ -1,4 +1,5 @@ import ./make-test.nix ({ pkgs, ... }: { + name = "kde4"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/kexec.nix b/nixos/tests/kexec.nix index b09287682c01..0f0565a60e95 100644 --- a/nixos/tests/kexec.nix +++ b/nixos/tests/kexec.nix @@ -1,6 +1,7 @@ # Test whether fast reboots via kexec work. import ./make-test.nix { + name = "kexec"; machine = { config, pkgs, ... }: { virtualisation.vlans = [ ]; }; diff --git a/nixos/tests/login.nix b/nixos/tests/login.nix index 44c53c231c81..e8373219ca68 100644 --- a/nixos/tests/login.nix +++ b/nixos/tests/login.nix @@ -1,6 +1,7 @@ import ./make-test.nix ({ pkgs, latestKernel ? false, ... }: { + name = "login"; machine = { config, pkgs, lib, ... }: diff --git a/nixos/tests/logstash.nix b/nixos/tests/logstash.nix index e6aba7a10126..7284cde7a33c 100644 --- a/nixos/tests/logstash.nix +++ b/nixos/tests/logstash.nix @@ -2,6 +2,7 @@ # elasticsearch is started. import ./make-test.nix { + name = "logstash"; nodes = { one = diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix index 8caef146ec87..c03db6c43353 100644 --- a/nixos/tests/misc.nix +++ b/nixos/tests/misc.nix @@ -1,6 +1,7 @@ # Miscellaneous small tests that don't warrant their own VM run. import ./make-test.nix { + name = "misc"; machine = { config, lib, pkgs, ... }: diff --git a/nixos/tests/mpich.nix b/nixos/tests/mpich.nix index 13cd0960d07c..a4ef7b624267 100644 --- a/nixos/tests/mpich.nix +++ b/nixos/tests/mpich.nix @@ -1,6 +1,8 @@ # Simple example to showcase distributed tests using NixOS VMs. import ./make-test.nix { + name = "mpich"; + nodes = { master = { config, pkgs, ... }: { diff --git a/nixos/tests/mumble.nix b/nixos/tests/mumble.nix index 68ab8b642b01..3759d73355d3 100644 --- a/nixos/tests/mumble.nix +++ b/nixos/tests/mumble.nix @@ -7,6 +7,8 @@ let }; in { + name = "mumble"; + nodes = { server = { config, pkgs, ... }: { services.murmur.enable = true; @@ -28,21 +30,21 @@ in $client1->execute("mumble mumble://client1\@server/test &"); $client2->execute("mumble mumble://client2\@server/test &"); - $client1->waitForWindow(qr/Mumble/); - $client2->waitForWindow(qr/Mumble/); - $server->sleep(3); # Wait some more for the Mumble UI - # cancel client audio configuration + $client1->waitForWindow(qr/Audio Tuning Wizard/); + $client2->waitForWindow(qr/Audio Tuning Wizard/); $client1->sendKeys("esc"); $client2->sendKeys("esc"); - $server->sleep(1); # cancel client cert configuration + $client1->waitForWindow(qr/Certificate Management/); + $client2->waitForWindow(qr/Certificate Management/); $client1->sendKeys("esc"); $client2->sendKeys("esc"); - $server->sleep(1); # accept server certificate + $client1->waitForWindow(qr/^Mumble$/); + $client2->waitForWindow(qr/^Mumble$/); $client1->sendChars("y"); $client2->sendChars("y"); diff --git a/nixos/tests/munin.nix b/nixos/tests/munin.nix index acc4b949ab57..31676c10df1b 100644 --- a/nixos/tests/munin.nix +++ b/nixos/tests/munin.nix @@ -2,6 +2,7 @@ # machine. import ./make-test.nix { + name = "munin"; nodes = { one = diff --git a/nixos/tests/mysql-replication.nix b/nixos/tests/mysql-replication.nix index 7d0cf6d85a1a..5786fdbc58cd 100644 --- a/nixos/tests/mysql-replication.nix +++ b/nixos/tests/mysql-replication.nix @@ -6,6 +6,8 @@ let in { + name = "mysql-replication"; + nodes = { master = { pkgs, config, ... }: diff --git a/nixos/tests/mysql.nix b/nixos/tests/mysql.nix index 566d03baf367..0a753b9b625b 100644 --- a/nixos/tests/mysql.nix +++ b/nixos/tests/mysql.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "mysql"; nodes = { master = diff --git a/nixos/tests/nat.nix b/nixos/tests/nat.nix index 02981469e106..5fdcc0e97ca9 100644 --- a/nixos/tests/nat.nix +++ b/nixos/tests/nat.nix @@ -5,6 +5,7 @@ # for the client. import ./make-test.nix { + name = "nat"; nodes = { client = diff --git a/nixos/tests/nfs.nix b/nixos/tests/nfs.nix index 864d05626b67..61b2431c04c7 100644 --- a/nixos/tests/nfs.nix +++ b/nixos/tests/nfs.nix @@ -17,6 +17,7 @@ let in { + name = "nfs"; nodes = { client1 = client; diff --git a/nixos/tests/openssh.nix b/nixos/tests/openssh.nix index 0b9714c275da..692618c5a84d 100644 --- a/nixos/tests/openssh.nix +++ b/nixos/tests/openssh.nix @@ -1,4 +1,22 @@ -import ./make-test.nix ({ pkgs, ... }: { +import ./make-test.nix ({ pkgs, ... }: + +let + snakeOilPrivateKey = pkgs.writeText "privkey.snakeoil" '' + -----BEGIN EC PRIVATE KEY----- + MHcCAQEEIHQf/khLvYrQ8IOika5yqtWvI0oquHlpRLTZiJy5dRJmoAoGCCqGSM49 + AwEHoUQDQgAEKF0DYGbBwbj06tA3fd/+yP44cvmwmHBWXZCKbS+RQlAKvLXMWkpN + r1lwMyJZoSGgBHoUahoYjTh9/sJL7XLJtA== + -----END EC PRIVATE KEY----- + ''; + + snakeOilPublicKey = pkgs.lib.concatStrings [ + "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHA" + "yNTYAAABBBChdA2BmwcG49OrQN33f/sj+OHL5sJhwVl2Qim0vkUJQCry1zFpKTa" + "9ZcDMiWaEhoAR6FGoaGI04ff7CS+1yybQ= sakeoil" + ]; + +in { + name = "openssh"; nodes = { @@ -9,6 +27,9 @@ import ./make-test.nix ({ pkgs, ... }: { services.openssh.enable = true; security.pam.services.sshd.limits = [ { domain = "*"; item = "memlock"; type = "-"; value = 1024; } ]; + users.extraUsers.root.openssh.authorizedKeys.keys = [ + snakeOilPublicKey + ]; }; client = @@ -23,15 +44,25 @@ import ./make-test.nix ({ pkgs, ... }: { $server->waitForUnit("sshd"); - $server->succeed("mkdir -m 700 /root/.ssh"); - $server->copyFileFromHost("key.pub", "/root/.ssh/authorized_keys"); + subtest "manual-authkey", sub { + $server->succeed("mkdir -m 700 /root/.ssh"); + $server->copyFileFromHost("key.pub", "/root/.ssh/authorized_keys"); + + $client->succeed("mkdir -m 700 /root/.ssh"); + $client->copyFileFromHost("key", "/root/.ssh/id_dsa"); + $client->succeed("chmod 600 /root/.ssh/id_dsa"); - $client->succeed("mkdir -m 700 /root/.ssh"); - $client->copyFileFromHost("key", "/root/.ssh/id_dsa"); - $client->succeed("chmod 600 /root/.ssh/id_dsa"); + $client->waitForUnit("network.target"); + $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'echo hello world' >&2"); + $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'ulimit -l' | grep 1024"); + }; - $client->waitForUnit("network.target"); - $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'echo hello world' >&2"); - $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'ulimit -l' | grep 1024"); + subtest "configured-authkey", sub { + $client->succeed("cat ${snakeOilPrivateKey} > privkey.snakeoil"); + $client->succeed("chmod 600 privkey.snakeoil"); + $client->succeed("ssh -o UserKnownHostsFile=/dev/null" . + " -o StrictHostKeyChecking=no -i privkey.snakeoil" . + " server true"); + }; ''; }) diff --git a/nixos/tests/partition.nix b/nixos/tests/partition.nix index 120ecaad8812..72fd37e041e5 100644 --- a/nixos/tests/partition.nix +++ b/nixos/tests/partition.nix @@ -63,6 +63,8 @@ let logvol / --size=1000 --grow --fstype=ext4 --name=root --vgname=nixos ''; in { + name = "partitiion"; + machine = { config, pkgs, ... }: { environment.systemPackages = [ pkgs.pythonPackages.nixpart diff --git a/nixos/tests/phabricator.nix b/nixos/tests/phabricator.nix index 8a8c6cb784cc..53038474c91a 100644 --- a/nixos/tests/phabricator.nix +++ b/nixos/tests/phabricator.nix @@ -1,4 +1,5 @@ import ./make-test.nix ({ pkgs, ... }: { + name = "phabricator"; nodes = { storage = diff --git a/nixos/tests/printing.nix b/nixos/tests/printing.nix index 16f9812d93b5..a55e077c2696 100644 --- a/nixos/tests/printing.nix +++ b/nixos/tests/printing.nix @@ -1,6 +1,7 @@ # Test printing via CUPS. import ./make-test.nix ({pkgs, ... }: { + name = "printing"; nodes = { diff --git a/nixos/tests/proxy.nix b/nixos/tests/proxy.nix index 88dbdb2720fb..01f0f3fe17a3 100644 --- a/nixos/tests/proxy.nix +++ b/nixos/tests/proxy.nix @@ -14,6 +14,7 @@ let in { + name = "proxy"; nodes = { proxy = diff --git a/nixos/tests/quake3.nix b/nixos/tests/quake3.nix index 3ff12fd57c06..b16cb179982a 100644 --- a/nixos/tests/quake3.nix +++ b/nixos/tests/quake3.nix @@ -13,6 +13,7 @@ let in rec { + name = "quake3"; makeCoverageReport = true; diff --git a/nixos/tests/rabbitmq.nix b/nixos/tests/rabbitmq.nix index ffcdde9d87f2..3ef3f92764c9 100644 --- a/nixos/tests/rabbitmq.nix +++ b/nixos/tests/rabbitmq.nix @@ -1,6 +1,7 @@ # This test runs rabbitmq and checks if rabbitmq is up and running. import ./make-test.nix ({ pkgs, ... }: { + name = "rabbitmq"; nodes = { one = { config, pkgs, ... }: { diff --git a/nixos/tests/simple.nix b/nixos/tests/simple.nix index e21b919cdf80..1cd9058f9e54 100644 --- a/nixos/tests/simple.nix +++ b/nixos/tests/simple.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "simple"; machine = { config, pkgs, ... }: { }; diff --git a/nixos/tests/subversion.nix b/nixos/tests/subversion.nix index e6746dc08287..50277edbdd89 100644 --- a/nixos/tests/subversion.nix +++ b/nixos/tests/subversion.nix @@ -32,6 +32,7 @@ let in { + name = "subversion"; nodes = { webserver = diff --git a/nixos/tests/tomcat.nix b/nixos/tests/tomcat.nix index 3b0b1bb79117..f3ee3477b5ac 100644 --- a/nixos/tests/tomcat.nix +++ b/nixos/tests/tomcat.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "tomcat"; nodes = { server = diff --git a/nixos/tests/trac.nix b/nixos/tests/trac.nix index 3f17dafaca15..87a2d328b4a6 100644 --- a/nixos/tests/trac.nix +++ b/nixos/tests/trac.nix @@ -1,4 +1,5 @@ import ./make-test.nix ({ pkgs, ... }: { + name = "trac"; nodes = { storage = diff --git a/nixos/tests/udisks2.nix b/nixos/tests/udisks2.nix index e0c57d7c34d6..1d2f79e4f6c1 100644 --- a/nixos/tests/udisks2.nix +++ b/nixos/tests/udisks2.nix @@ -10,6 +10,7 @@ let in { + name = "udisks2"; machine = { config, pkgs, ... }: diff --git a/nixos/tests/xfce.nix b/nixos/tests/xfce.nix index ded37943e51d..ced0c6b9826b 100644 --- a/nixos/tests/xfce.nix +++ b/nixos/tests/xfce.nix @@ -1,4 +1,5 @@ import ./make-test.nix { + name = "xfce"; machine = { config, pkgs, ... }: |