mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-25 04:12:44 +03:00
Merge master into x-updates
Adds the mass-rebuilding python update.
This commit is contained in:
commit
aceb30cd93
@ -88,6 +88,8 @@
|
||||
url = http://www.eclipse.org/legal/epl-v10.html;
|
||||
};
|
||||
|
||||
free = "free";
|
||||
|
||||
gpl2 = {
|
||||
shortName = "GPLv2";
|
||||
fullName = "GNU General Public License version 2";
|
||||
@ -130,6 +132,12 @@
|
||||
url = http://www.opensource.org/licenses/ISC;
|
||||
};
|
||||
|
||||
ipa = {
|
||||
shortName = "IPA 1.0";
|
||||
fullName = "IPA Font License v1.0";
|
||||
url = http://ipafont.ipa.go.jp/ipafont/;
|
||||
};
|
||||
|
||||
ipl10 = {
|
||||
shortName = "IPL 1.0";
|
||||
fullName = "IBM Public License Version 1.0";
|
||||
@ -243,6 +251,12 @@
|
||||
|
||||
unfreeRedistributableFirmware = "unfree-redistributable-firmware";
|
||||
|
||||
wadalab = {
|
||||
shortName = "wadalab";
|
||||
fullName = "Wadalab Font License";
|
||||
url = https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab;
|
||||
};
|
||||
|
||||
zlib = {
|
||||
shortName = "zlib";
|
||||
fullName = "zlib license";
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
_1126 = "Christian Lask <mail@elfsechsundzwanzig.de>";
|
||||
aforemny = "Alexander Foremny <alexanderforemny@googlemail.com>";
|
||||
ak = "Alexander Kjeldaas <ak@formalprivacy.com>";
|
||||
akc = "Anders Claesson <akc@akc.is>";
|
||||
algorith = "Dries Van Daele <dries_van_daele@telenet.be>";
|
||||
all = "Nix Committers <nix-commits@lists.science.uu.nl>";
|
||||
@ -37,6 +38,7 @@
|
||||
emery = "Emery Hemingway <emery@vfemail.net>";
|
||||
ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
|
||||
falsifian = "James Cook <james.cook@utoronto.ca>";
|
||||
flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
|
||||
fuuzetsu = "Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>";
|
||||
garbas = "Rok Garbas <rok@garbas.si>";
|
||||
goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
with pkgs;
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
|
@ -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 = ''
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
with pkgs;
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, utils, ... }:
|
||||
|
||||
with lib;
|
||||
with utils;
|
||||
with lib;
|
||||
|
||||
{
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
{pkgs, config, ...}:
|
||||
{lib, config, ...}:
|
||||
|
||||
{
|
||||
hardware = {
|
||||
pcmcia = {
|
||||
firmware = [ (pkgs.lib.cleanSource ./firmware) ];
|
||||
firmware = [ (lib.cleanSource ./firmware) ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -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.";
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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 = {
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
with pkgs;
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
|
@ -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`
|
||||
|
@ -68,7 +68,7 @@ in
|
||||
|
||||
users.extraUsers = optionalAttrs (cfg.user == "openldap") (singleton
|
||||
{ name = "openldap";
|
||||
group = "openldap";
|
||||
group = cfg.group;
|
||||
uid = config.ids.uids.openldap;
|
||||
});
|
||||
|
||||
|
@ -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.
|
||||
'';
|
||||
};
|
||||
|
@ -1,8 +1,8 @@
|
||||
# GNOME Documents daemon.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
gnome3 = config.environment.gnome3.packageSet;
|
||||
|
@ -1,8 +1,8 @@
|
||||
# GNOME Keyring daemon.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
gnome3 = config.environment.gnome3.packageSet;
|
||||
|
@ -1,8 +1,8 @@
|
||||
# GNOME Online Accounts daemon.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
gnome3 = config.environment.gnome3.packageSet;
|
||||
|
@ -1,8 +1,8 @@
|
||||
# GNOME Online Miners daemon.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
gnome3 = config.environment.gnome3.packageSet;
|
||||
|
@ -1,8 +1,8 @@
|
||||
# GNOME User Share daemon.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
gnome3 = config.environment.gnome3.packageSet;
|
||||
|
@ -1,8 +1,8 @@
|
||||
# gvfs backends
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{ config, lib, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
gnome3 = config.environment.gnome3.packageSet;
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Seahorse daemon.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
gnome3 = config.environment.gnome3.packageSet;
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Tracker daemon.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
gnome3 = config.environment.gnome3.packageSet;
|
||||
|
@ -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
|
||||
}
|
||||
'';
|
||||
|
||||
|
@ -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";
|
||||
|
@ -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 ];
|
||||
|
@ -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
|
||||
|
||||
{
|
||||
|
@ -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;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
inherit (pkgs.lib) mkOption mkIf;
|
||||
inherit (lib) mkOption mkIf;
|
||||
|
||||
cfg = config.services.openafsClient;
|
||||
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
with pkgs;
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.networking.connman;
|
||||
|
@ -1,8 +1,8 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
|
||||
inherit (pkgs.lib) mkOption mkIf singleton;
|
||||
inherit (lib) mkOption mkIf singleton;
|
||||
|
||||
inherit (pkgs) ddclient;
|
||||
|
||||
|
@ -18,7 +18,7 @@ let
|
||||
|
||||
${cfg.extraConfig}
|
||||
|
||||
${pkgs.lib.concatMapStrings
|
||||
${lib.concatMapStrings
|
||||
(machine: ''
|
||||
host ${machine.hostName} {
|
||||
hardware ethernet ${machine.ethernetAddress};
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.notbit;
|
||||
varDir = "/var/lib/notbit";
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.nsd;
|
||||
|
48
nixos/modules/services/networking/radicale.nix
Normal file
48
nixos/modules/services/networking/radicale.nix
Normal file
@ -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";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
ts3 = pkgs.teamspeak_server;
|
||||
|
@ -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.
|
||||
|
@ -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:
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
|
@ -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;
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
{pkgs, config, ...}:
|
||||
{pkgs, config, lib, ...}:
|
||||
|
||||
let
|
||||
|
||||
inherit (pkgs.lib) mkOption mkIf singleton;
|
||||
inherit (lib) mkOption mkIf singleton;
|
||||
|
||||
inherit (pkgs) uptimed;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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.";
|
||||
};
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ config, pkgs, modulesPath, ... }:
|
||||
{ config, lib, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
fileSystems = attrValues config.fileSystems ++ config.swapDevices;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
with lib;
|
||||
|
||||
let
|
||||
inInitrd = any (fs: fs == "f2fs") config.boot.initrd.supportedFilesystems;
|
||||
|
@ -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 ];
|
||||
})
|
||||
];
|
||||
|
@ -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))
|
||||
);
|
||||
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
# Test whether `avahi-daemon' and `libnss-mdns' work as expected.
|
||||
|
||||
import ./make-test.nix {
|
||||
name = "avahi";
|
||||
|
||||
nodes = {
|
||||
one =
|
||||
|
@ -23,6 +23,7 @@ let
|
||||
in
|
||||
|
||||
{
|
||||
name = "bittorrent";
|
||||
|
||||
nodes =
|
||||
{ tracker =
|
||||
|
@ -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;
|
||||
|
@ -1,6 +1,7 @@
|
||||
# Test for NixOS' container support.
|
||||
|
||||
import ./make-test.nix {
|
||||
name = "containers";
|
||||
|
||||
machine =
|
||||
{ config, pkgs, ... }:
|
||||
|
@ -1,4 +1,5 @@
|
||||
import ./make-test.nix ({ pkgs, ... }: {
|
||||
name = "firefox";
|
||||
|
||||
machine =
|
||||
{ config, pkgs, ... }:
|
||||
|
@ -1,6 +1,7 @@
|
||||
# Test the firewall module.
|
||||
|
||||
import ./make-test.nix {
|
||||
name = "firewall";
|
||||
|
||||
nodes =
|
||||
{ walled =
|
||||
|
@ -1,4 +1,5 @@
|
||||
import ./make-test.nix {
|
||||
name = "gnome3";
|
||||
|
||||
machine =
|
||||
{ config, pkgs, ... }:
|
||||
|
@ -1,4 +1,5 @@
|
||||
import ./make-test.nix {
|
||||
name = "gnome3_12";
|
||||
|
||||
machine =
|
||||
{ config, pkgs, ... }:
|
||||
|
@ -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;
|
||||
|
@ -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 =
|
||||
''
|
||||
|
@ -2,6 +2,7 @@
|
||||
# solicication/advertisement using radvd works.
|
||||
|
||||
import ./make-test.nix {
|
||||
name = "ipv6";
|
||||
|
||||
nodes =
|
||||
{ client = { config, pkgs, ... }: { };
|
||||
|
@ -4,6 +4,7 @@
|
||||
# 3. jenkins service not started on slave node
|
||||
|
||||
import ./make-test.nix {
|
||||
name = "jenkins";
|
||||
|
||||
nodes = {
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
import ./make-test.nix ({ pkgs, ... }: {
|
||||
name = "kde4";
|
||||
|
||||
machine =
|
||||
{ config, pkgs, ... }:
|
||||
|
@ -1,6 +1,7 @@
|
||||
# Test whether fast reboots via kexec work.
|
||||
|
||||
import ./make-test.nix {
|
||||
name = "kexec";
|
||||
|
||||
machine = { config, pkgs, ... }:
|
||||
{ virtualisation.vlans = [ ]; };
|
||||
|
@ -1,6 +1,7 @@
|
||||
import ./make-test.nix ({ pkgs, latestKernel ? false, ... }:
|
||||
|
||||
{
|
||||
name = "login";
|
||||
|
||||
machine =
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
@ -2,6 +2,7 @@
|
||||
# elasticsearch is started.
|
||||
|
||||
import ./make-test.nix {
|
||||
name = "logstash";
|
||||
|
||||
nodes = {
|
||||
one =
|
||||
|
@ -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, ... }:
|
||||
|
@ -1,6 +1,8 @@
|
||||
# Simple example to showcase distributed tests using NixOS VMs.
|
||||
|
||||
import ./make-test.nix {
|
||||
name = "mpich";
|
||||
|
||||
nodes = {
|
||||
master =
|
||||
{ config, pkgs, ... }: {
|
||||
|
@ -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");
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
# machine.
|
||||
|
||||
import ./make-test.nix {
|
||||
name = "munin";
|
||||
|
||||
nodes = {
|
||||
one =
|
||||
|
@ -6,6 +6,8 @@ let
|
||||
in
|
||||
|
||||
{
|
||||
name = "mysql-replication";
|
||||
|
||||
nodes = {
|
||||
master =
|
||||
{ pkgs, config, ... }:
|
||||
|
@ -1,4 +1,5 @@
|
||||
import ./make-test.nix {
|
||||
name = "mysql";
|
||||
|
||||
nodes = {
|
||||
master =
|
||||
|
@ -5,6 +5,7 @@
|
||||
# for the client.
|
||||
|
||||
import ./make-test.nix {
|
||||
name = "nat";
|
||||
|
||||
nodes =
|
||||
{ client =
|
||||
|
@ -17,6 +17,7 @@ let
|
||||
in
|
||||
|
||||
{
|
||||
name = "nfs";
|
||||
|
||||
nodes =
|
||||
{ client1 = client;
|
||||
|
@ -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");
|
||||
};
|
||||
'';
|
||||
})
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user