Merge remote-tracking branch 'nixos/master' into feature/add-znc-module
Conflicts: nixos/modules/misc/ids.nix
This commit is contained in:
commit
7b768ba2f5
|
@ -21,18 +21,18 @@ all: NEWS.html NEWS.txt manual.html manual.pdf
|
|||
|
||||
NEWS.html: release-notes.xml
|
||||
$(XSLTPROC) --nonet --xinclude --output $@ $(NEWS_OPTS) \
|
||||
$(docbookxsl)/html/docbook.xsl release-notes.xml
|
||||
$(docbookxsl)/xhtml/docbook.xsl release-notes.xml
|
||||
|
||||
NEWS.txt: release-notes.xml
|
||||
$(XSLTPROC) --nonet --xinclude quote-literals.xsl release-notes.xml | \
|
||||
$(XSLTPROC) --nonet --output $@.tmp.html $(NEWS_OPTS) \
|
||||
$(docbookxsl)/html/docbook.xsl -
|
||||
$(docbookxsl)/xhtml/docbook.xsl -
|
||||
LANG=en_US w3m -dump $@.tmp.html > $@
|
||||
rm $@.tmp.html
|
||||
|
||||
manual.html: *.xml
|
||||
$(XSLTPROC) --nonet --xinclude --output manual.html \
|
||||
$(docbookxsl)/html/docbook.xsl manual.xml
|
||||
$(docbookxsl)/xhtml/docbook.xsl manual.xml
|
||||
|
||||
manual.pdf: *.xml
|
||||
$(dblatex) \
|
||||
|
|
|
@ -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>";
|
||||
|
|
|
@ -194,7 +194,7 @@ rec {
|
|||
|
||||
is transformed into
|
||||
|
||||
[ { boot = set1; } { boot = mkIf cond set2; services mkIf cond set3; } ].
|
||||
[ { boot = set1; } { boot = mkIf cond set2; services = mkIf cond set3; } ].
|
||||
|
||||
This transform is the critical step that allows mkIf conditions
|
||||
to refer to the full configuration without creating an infinite
|
||||
|
|
|
@ -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.
|
||||
|
@ -134,7 +134,8 @@
|
|||
teamspeak = 124;
|
||||
influxdb = 125;
|
||||
nsd = 126;
|
||||
znc = 127;
|
||||
gitolite = 127;
|
||||
znc = 128;
|
||||
|
||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||
|
||||
|
@ -243,7 +244,7 @@
|
|||
teamspeak = 124;
|
||||
influxdb = 125;
|
||||
nsd = 126;
|
||||
znc = 127;
|
||||
znc = 128;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399!
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -147,6 +147,7 @@
|
|||
./services/misc/felix.nix
|
||||
./services/misc/folding-at-home.nix
|
||||
./services/misc/gpsd.nix
|
||||
./services/misc/gitolite.nix
|
||||
./services/misc/nix-daemon.nix
|
||||
./services/misc/nix-gc.nix
|
||||
./services/misc/nix-ssh-serve.nix
|
||||
|
@ -216,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
|
||||
|
|
|
@ -14,6 +14,7 @@ let virtualbox = config.boot.kernelPackages.virtualbox; in
|
|||
services.udev.extraRules =
|
||||
''
|
||||
KERNEL=="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660", TAG+="systemd"
|
||||
KERNEL=="vboxdrvu", OWNER="root", GROUP="root", MODE="0666", TAG+="systemd"
|
||||
KERNEL=="vboxnetctl", OWNER="root", GROUP="root", MODE="0600", TAG+="systemd"
|
||||
SUBSYSTEM=="usb_device", ACTION=="add", RUN+="${virtualbox}/libexec/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
|
||||
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="${virtualbox}/libexec/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.gitolite;
|
||||
pubkeyFile = pkgs.writeText "gitolite-admin.pub" cfg.adminPubkey;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.gitolite = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable gitolite management under the
|
||||
<literal>gitolite</literal> user. The Gitolite home
|
||||
directory is <literal>/var/lib/gitolite</literal>. After
|
||||
switching to a configuration with Gitolite enabled, you can
|
||||
then run <literal>git clone
|
||||
gitolite@host:gitolite-admin.git</literal> to manage it further.
|
||||
'';
|
||||
};
|
||||
|
||||
adminPubkey = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
Initial administrative public key for Gitolite. This should
|
||||
be an SSH Public Key. Note that this key will only be used
|
||||
once, upon the first initialization of the Gitolite user.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
users.extraUsers.gitolite = {
|
||||
description = "Gitolite user";
|
||||
home = "/var/lib/gitolite";
|
||||
createHome = true;
|
||||
uid = config.ids.uids.gitolite;
|
||||
useDefaultShell = true;
|
||||
};
|
||||
|
||||
systemd.services."gitolite-init" = {
|
||||
description = "Gitolite initialization";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig.User = "gitolite";
|
||||
serviceConfig.Type = "oneshot";
|
||||
serviceConfig.RemainAfterExit = true;
|
||||
|
||||
path = [ pkgs.gitolite pkgs.git pkgs.perl pkgs.bash pkgs.openssh ];
|
||||
script = ''
|
||||
cd /var/lib/gitolite
|
||||
mkdir -p .gitolite/logs
|
||||
if [ ! -d repositories ]; then
|
||||
gitolite setup -pk ${pubkeyFile}
|
||||
fi
|
||||
gitolite setup # Upgrade if needed
|
||||
'';
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.gitolite pkgs.git ];
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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, ... }:
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue