mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 04:19:00 +02:00
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
|
NEWS.html: release-notes.xml
|
||||||
$(XSLTPROC) --nonet --xinclude --output $@ $(NEWS_OPTS) \
|
$(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
|
NEWS.txt: release-notes.xml
|
||||||
$(XSLTPROC) --nonet --xinclude quote-literals.xsl release-notes.xml | \
|
$(XSLTPROC) --nonet --xinclude quote-literals.xsl release-notes.xml | \
|
||||||
$(XSLTPROC) --nonet --output $@.tmp.html $(NEWS_OPTS) \
|
$(XSLTPROC) --nonet --output $@.tmp.html $(NEWS_OPTS) \
|
||||||
$(docbookxsl)/html/docbook.xsl -
|
$(docbookxsl)/xhtml/docbook.xsl -
|
||||||
LANG=en_US w3m -dump $@.tmp.html > $@
|
LANG=en_US w3m -dump $@.tmp.html > $@
|
||||||
rm $@.tmp.html
|
rm $@.tmp.html
|
||||||
|
|
||||||
manual.html: *.xml
|
manual.html: *.xml
|
||||||
$(XSLTPROC) --nonet --xinclude --output manual.html \
|
$(XSLTPROC) --nonet --xinclude --output manual.html \
|
||||||
$(docbookxsl)/html/docbook.xsl manual.xml
|
$(docbookxsl)/xhtml/docbook.xsl manual.xml
|
||||||
|
|
||||||
manual.pdf: *.xml
|
manual.pdf: *.xml
|
||||||
$(dblatex) \
|
$(dblatex) \
|
||||||
|
|
|
@ -88,6 +88,8 @@
|
||||||
url = http://www.eclipse.org/legal/epl-v10.html;
|
url = http://www.eclipse.org/legal/epl-v10.html;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
free = "free";
|
||||||
|
|
||||||
gpl2 = {
|
gpl2 = {
|
||||||
shortName = "GPLv2";
|
shortName = "GPLv2";
|
||||||
fullName = "GNU General Public License version 2";
|
fullName = "GNU General Public License version 2";
|
||||||
|
@ -130,6 +132,12 @@
|
||||||
url = http://www.opensource.org/licenses/ISC;
|
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 = {
|
ipl10 = {
|
||||||
shortName = "IPL 1.0";
|
shortName = "IPL 1.0";
|
||||||
fullName = "IBM Public License Version 1.0";
|
fullName = "IBM Public License Version 1.0";
|
||||||
|
@ -243,6 +251,12 @@
|
||||||
|
|
||||||
unfreeRedistributableFirmware = "unfree-redistributable-firmware";
|
unfreeRedistributableFirmware = "unfree-redistributable-firmware";
|
||||||
|
|
||||||
|
wadalab = {
|
||||||
|
shortName = "wadalab";
|
||||||
|
fullName = "Wadalab Font License";
|
||||||
|
url = https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab;
|
||||||
|
};
|
||||||
|
|
||||||
zlib = {
|
zlib = {
|
||||||
shortName = "zlib";
|
shortName = "zlib";
|
||||||
fullName = "zlib license";
|
fullName = "zlib license";
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
_1126 = "Christian Lask <mail@elfsechsundzwanzig.de>";
|
_1126 = "Christian Lask <mail@elfsechsundzwanzig.de>";
|
||||||
aforemny = "Alexander Foremny <alexanderforemny@googlemail.com>";
|
aforemny = "Alexander Foremny <alexanderforemny@googlemail.com>";
|
||||||
|
ak = "Alexander Kjeldaas <ak@formalprivacy.com>";
|
||||||
akc = "Anders Claesson <akc@akc.is>";
|
akc = "Anders Claesson <akc@akc.is>";
|
||||||
algorith = "Dries Van Daele <dries_van_daele@telenet.be>";
|
algorith = "Dries Van Daele <dries_van_daele@telenet.be>";
|
||||||
all = "Nix Committers <nix-commits@lists.science.uu.nl>";
|
all = "Nix Committers <nix-commits@lists.science.uu.nl>";
|
||||||
|
@ -37,6 +38,7 @@
|
||||||
emery = "Emery Hemingway <emery@vfemail.net>";
|
emery = "Emery Hemingway <emery@vfemail.net>";
|
||||||
ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
|
ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
|
||||||
falsifian = "James Cook <james.cook@utoronto.ca>";
|
falsifian = "James Cook <james.cook@utoronto.ca>";
|
||||||
|
flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
|
||||||
fuuzetsu = "Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>";
|
fuuzetsu = "Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>";
|
||||||
garbas = "Rok Garbas <rok@garbas.si>";
|
garbas = "Rok Garbas <rok@garbas.si>";
|
||||||
goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
|
goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
|
||||||
|
|
|
@ -194,7 +194,7 @@ rec {
|
||||||
|
|
||||||
is transformed into
|
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
|
This transform is the critical step that allows mkIf conditions
|
||||||
to refer to the full configuration without creating an infinite
|
to refer to the full configuration without creating an infinite
|
||||||
|
|
|
@ -9,8 +9,8 @@
|
||||||
<xsl:template match="logfile">
|
<xsl:template match="logfile">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<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="//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/jqueryui/1.10.3/jquery-ui.min.js"></script>
|
||||||
<script type="text/javascript" src="treebits.js" />
|
<script type="text/javascript" src="treebits.js" />
|
||||||
<link rel="stylesheet" href="logfile.css" type="text/css" />
|
<link rel="stylesheet" href="logfile.css" type="text/css" />
|
||||||
<title>Log File</title>
|
<title>Log File</title>
|
||||||
|
|
|
@ -37,7 +37,7 @@ rec {
|
||||||
# `driver' is the script that runs the network.
|
# `driver' is the script that runs the network.
|
||||||
runTests = driver:
|
runTests = driver:
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "vm-test-run";
|
name = "vm-test-run-${driver.testName}";
|
||||||
|
|
||||||
requiredSystemFeatures = [ "kvm" "nixos-test" ];
|
requiredSystemFeatures = [ "kvm" "nixos-test" ];
|
||||||
|
|
||||||
|
@ -68,9 +68,10 @@ rec {
|
||||||
|
|
||||||
|
|
||||||
makeTest =
|
makeTest =
|
||||||
{ testScript, makeCoverageReport ? false, ... } @ t:
|
{ testScript, makeCoverageReport ? false, name ? "unnamed", ... } @ t:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
testDriverName = "nixos-test-driver-${name}";
|
||||||
|
|
||||||
nodes = buildVirtualNetwork (
|
nodes = buildVirtualNetwork (
|
||||||
t.nodes or (if t ? machine then { machine = t.machine; } else { }));
|
t.nodes or (if t ? machine then { machine = t.machine; } else { }));
|
||||||
|
@ -88,10 +89,11 @@ rec {
|
||||||
# Generate onvenience wrappers for running the test driver
|
# Generate onvenience wrappers for running the test driver
|
||||||
# interactively with the specified network, and for starting the
|
# interactively with the specified network, and for starting the
|
||||||
# VMs from the command line.
|
# VMs from the command line.
|
||||||
driver = runCommand "nixos-test-driver"
|
driver = runCommand testDriverName
|
||||||
{ buildInputs = [ makeWrapper];
|
{ buildInputs = [ makeWrapper];
|
||||||
testScript = testScript';
|
testScript = testScript';
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
|
testName = name;
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
|
||||||
with pkgs;
|
with pkgs;
|
||||||
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ in
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
networking.extraHosts = pkgs.lib.mkOption {
|
networking.extraHosts = lib.mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
default = "";
|
default = "";
|
||||||
example = "192.168.0.1 lanlocalhost";
|
example = "192.168.0.1 lanlocalhost";
|
||||||
|
@ -23,7 +23,7 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.dnsSingleRequest = pkgs.lib.mkOption {
|
networking.dnsSingleRequest = lib.mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
|
||||||
with pkgs;
|
with pkgs;
|
||||||
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, pkgs, utils, ... }:
|
{ config, lib, pkgs, utils, ... }:
|
||||||
|
|
||||||
with lib;
|
|
||||||
with utils;
|
with utils;
|
||||||
|
with lib;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,12 @@ let
|
||||||
|
|
||||||
sysctlOption = mkOptionType {
|
sysctlOption = mkOptionType {
|
||||||
name = "sysctl option value";
|
name = "sysctl option value";
|
||||||
check = x: isBool x || isString x || isInt x || isNull x;
|
check = val:
|
||||||
merge = args: defs: (last defs).value; # FIXME: hacky way to allow overriding in configuration.nix.
|
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
|
in
|
||||||
|
|
|
@ -27,7 +27,7 @@ with lib;
|
||||||
|
|
||||||
environment.etc."odbcinst.ini".text =
|
environment.etc."odbcinst.ini".text =
|
||||||
let inis = config.environment.unixODBCDrivers;
|
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 = {
|
options = {
|
||||||
|
|
||||||
networking.enableIntel2100BGFirmware = pkgs.lib.mkOption {
|
networking.enableIntel2100BGFirmware = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
type = pkgs.lib.types.bool;
|
type = lib.types.bool;
|
||||||
description = ''
|
description = ''
|
||||||
Turn on this option if you want firmware for the Intel
|
Turn on this option if you want firmware for the Intel
|
||||||
PRO/Wireless 2100BG to be loaded automatically. This is
|
PRO/Wireless 2100BG to be loaded automatically. This is
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = pkgs.lib.mkIf config.networking.enableIntel2100BGFirmware {
|
config = lib.mkIf config.networking.enableIntel2100BGFirmware {
|
||||||
|
|
||||||
hardware.enableAllFirmware = true;
|
hardware.enableAllFirmware = true;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
networking.enableIntel2200BGFirmware = pkgs.lib.mkOption {
|
networking.enableIntel2200BGFirmware = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
type = pkgs.lib.types.bool;
|
type = lib.types.bool;
|
||||||
description = ''
|
description = ''
|
||||||
Turn on this option if you want firmware for the Intel
|
Turn on this option if you want firmware for the Intel
|
||||||
PRO/Wireless 2200BG to be loaded automatically. This is
|
PRO/Wireless 2200BG to be loaded automatically. This is
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = pkgs.lib.mkIf config.networking.enableIntel2200BGFirmware {
|
config = lib.mkIf config.networking.enableIntel2200BGFirmware {
|
||||||
|
|
||||||
hardware.enableAllFirmware = true;
|
hardware.enableAllFirmware = true;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
networking.enableIntel3945ABGFirmware = pkgs.lib.mkOption {
|
networking.enableIntel3945ABGFirmware = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
type = pkgs.lib.types.bool;
|
type = lib.types.bool;
|
||||||
description = ''
|
description = ''
|
||||||
This option enables automatic loading of the firmware for the Intel
|
This option enables automatic loading of the firmware for the Intel
|
||||||
PRO/Wireless 3945ABG.
|
PRO/Wireless 3945ABG.
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = pkgs.lib.mkIf config.networking.enableIntel3945ABGFirmware {
|
config = lib.mkIf config.networking.enableIntel3945ABGFirmware {
|
||||||
|
|
||||||
hardware.enableAllFirmware = true;
|
hardware.enableAllFirmware = true;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{pkgs, config, ...}:
|
{pkgs, config, lib, ...}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
networking.enableRalinkFirmware = pkgs.lib.mkOption {
|
networking.enableRalinkFirmware = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
type = pkgs.lib.types.bool;
|
type = lib.types.bool;
|
||||||
description = ''
|
description = ''
|
||||||
Turn on this option if you want firmware for the RT73 NIC.
|
Turn on this option if you want firmware for the RT73 NIC.
|
||||||
'';
|
'';
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = pkgs.lib.mkIf config.networking.enableRalinkFirmware {
|
config = lib.mkIf config.networking.enableRalinkFirmware {
|
||||||
hardware.enableAllFirmware = true;
|
hardware.enableAllFirmware = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{pkgs, config, ...}:
|
{pkgs, config, lib, ...}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
networking.enableRTL8192cFirmware = pkgs.lib.mkOption {
|
networking.enableRTL8192cFirmware = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
type = pkgs.lib.types.bool;
|
type = lib.types.bool;
|
||||||
description = ''
|
description = ''
|
||||||
Turn on this option if you want firmware for the RTL8192c (and related) NICs.
|
Turn on this option if you want firmware for the RTL8192c (and related) NICs.
|
||||||
'';
|
'';
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = pkgs.lib.mkIf config.networking.enableRTL8192cFirmware {
|
config = lib.mkIf config.networking.enableRTL8192cFirmware {
|
||||||
hardware.enableAllFirmware = true;
|
hardware.enableAllFirmware = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{pkgs, config, ...}:
|
{lib, config, ...}:
|
||||||
|
|
||||||
{
|
{
|
||||||
hardware = {
|
hardware = {
|
||||||
pcmcia = {
|
pcmcia = {
|
||||||
firmware = [ (pkgs.lib.cleanSource ./firmware) ];
|
firmware = [ (lib.cleanSource ./firmware) ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,7 +84,7 @@ in
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
assertions = pkgs.lib.singleton {
|
assertions = lib.singleton {
|
||||||
assertion = cfg.driSupport32Bit -> pkgs.stdenv.isx86_64;
|
assertion = cfg.driSupport32Bit -> pkgs.stdenv.isx86_64;
|
||||||
message = "Option driSupport32Bit only makes sense on a 64-bit system.";
|
message = "Option driSupport32Bit only makes sense on a 64-bit system.";
|
||||||
};
|
};
|
||||||
|
|
|
@ -152,7 +152,7 @@ in
|
||||||
# default root password is empty.
|
# default root password is empty.
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
||||||
jobs.openssh.startOn = pkgs.lib.mkOverride 50 "";
|
jobs.openssh.startOn = lib.mkOverride 50 "";
|
||||||
|
|
||||||
boot.loader.grub.enable = false;
|
boot.loader.grub.enable = false;
|
||||||
boot.loader.generationsDir.enable = false;
|
boot.loader.generationsDir.enable = false;
|
||||||
|
|
|
@ -109,7 +109,7 @@ in
|
||||||
# not be started by default on the installation CD because the
|
# not be started by default on the installation CD because the
|
||||||
# default root password is empty.
|
# default root password is empty.
|
||||||
services.openssh.enable = true;
|
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.
|
# To be able to use the systemTarball to catch troubles.
|
||||||
boot.crashDump = {
|
boot.crashDump = {
|
||||||
|
|
|
@ -165,7 +165,7 @@ in
|
||||||
# not be started by default on the installation CD because the
|
# not be started by default on the installation CD because the
|
||||||
# default root password is empty.
|
# default root password is empty.
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
jobs.openssh.startOn = pkgs.lib.mkOverride 50 "";
|
jobs.openssh.startOn = lib.mkOverride 50 "";
|
||||||
|
|
||||||
# cpufrequtils fails to build on non-pc
|
# cpufrequtils fails to build on non-pc
|
||||||
powerManagement.enable = false;
|
powerManagement.enable = false;
|
||||||
|
|
|
@ -97,6 +97,16 @@ if [ -n "$upgrade" -a -z "$_NIXOS_REBUILD_REEXEC" ]; then
|
||||||
nix-channel --update nixos
|
nix-channel --update nixos
|
||||||
fi
|
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.
|
# Re-execute nixos-rebuild from the Nixpkgs tree.
|
||||||
if [ -z "$_NIXOS_REBUILD_REEXEC" -a -n "$canRun" ]; then
|
if [ -z "$_NIXOS_REBUILD_REEXEC" -a -n "$canRun" ]; then
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# This module generates nixos-install, nixos-rebuild,
|
# This module generates nixos-install, nixos-rebuild,
|
||||||
# nixos-generate-config, etc.
|
# nixos-generate-config, etc.
|
||||||
|
|
||||||
{ config, pkgs, modulesPath, ... }:
|
{ config, pkgs, modulesPath, lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ let
|
||||||
nixos-rebuild = makeProg {
|
nixos-rebuild = makeProg {
|
||||||
name = "nixos-rebuild";
|
name = "nixos-rebuild";
|
||||||
src = ./nixos-rebuild.sh;
|
src = ./nixos-rebuild.sh;
|
||||||
|
nix = config.nix.package;
|
||||||
};
|
};
|
||||||
|
|
||||||
nixos-generate-config = makeProg {
|
nixos-generate-config = makeProg {
|
||||||
|
@ -64,7 +65,7 @@ let
|
||||||
test -e "$out/chrome/content/jquery-1.5.2.js" ||
|
test -e "$out/chrome/content/jquery-1.5.2.js" ||
|
||||||
cp -f "$jquery" "$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 {
|
jquery = pkgs.fetchurl {
|
||||||
url = http://code.jquery.com/jquery-1.5.2.min.js;
|
url = http://code.jquery.com/jquery-1.5.2.min.js;
|
||||||
sha256 = "8f0a19ee8c606b35a10904951e0a27da1896eafe33c6e88cb7bcbe455f05a24a";
|
sha256 = "8f0a19ee8c606b35a10904951e0a27da1896eafe33c6e88cb7bcbe455f05a24a";
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
# This module defines the global list of uids and gids. We keep a
|
# This module defines the global list of uids and gids. We keep a
|
||||||
# central list to prevent id collisions.
|
# central list to prevent id collisions.
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
ids.uids = pkgs.lib.mkOption {
|
ids.uids = lib.mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
description = ''
|
description = ''
|
||||||
The user IDs used in NixOS.
|
The user IDs used in NixOS.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
ids.gids = pkgs.lib.mkOption {
|
ids.gids = lib.mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
description = ''
|
description = ''
|
||||||
The group IDs used in NixOS.
|
The group IDs used in NixOS.
|
||||||
|
@ -134,7 +134,8 @@
|
||||||
teamspeak = 124;
|
teamspeak = 124;
|
||||||
influxdb = 125;
|
influxdb = 125;
|
||||||
nsd = 126;
|
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!
|
# 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;
|
teamspeak = 124;
|
||||||
influxdb = 125;
|
influxdb = 125;
|
||||||
nsd = 126;
|
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!
|
# 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 = {
|
options = {
|
||||||
lib = pkgs.lib.mkOption {
|
lib = lib.mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
|
|
||||||
type = pkgs.lib.types.attrsOf pkgs.lib.types.attrs;
|
type = lib.types.attrsOf lib.types.attrs;
|
||||||
|
|
||||||
description = ''
|
description = ''
|
||||||
This option allows modules to define helper functions, constants, etc.
|
This option allows modules to define helper functions, constants, etc.
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# This module allows you to export something from configuration
|
# This module allows you to export something from configuration
|
||||||
# Use case: export kernel source expression for ease of configuring
|
# Use case: export kernel source expression for ease of configuring
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
passthru = pkgs.lib.mkOption {
|
passthru = lib.mkOption {
|
||||||
visible = false;
|
visible = false;
|
||||||
description = ''
|
description = ''
|
||||||
This attribute set will be exported as a system attribute.
|
This attribute set will be exported as a system attribute.
|
||||||
|
|
|
@ -147,6 +147,7 @@
|
||||||
./services/misc/felix.nix
|
./services/misc/felix.nix
|
||||||
./services/misc/folding-at-home.nix
|
./services/misc/folding-at-home.nix
|
||||||
./services/misc/gpsd.nix
|
./services/misc/gpsd.nix
|
||||||
|
./services/misc/gitolite.nix
|
||||||
./services/misc/nix-daemon.nix
|
./services/misc/nix-daemon.nix
|
||||||
./services/misc/nix-gc.nix
|
./services/misc/nix-gc.nix
|
||||||
./services/misc/nix-ssh-serve.nix
|
./services/misc/nix-ssh-serve.nix
|
||||||
|
@ -216,6 +217,7 @@
|
||||||
./services/networking/prayer.nix
|
./services/networking/prayer.nix
|
||||||
./services/networking/privoxy.nix
|
./services/networking/privoxy.nix
|
||||||
./services/networking/quassel.nix
|
./services/networking/quassel.nix
|
||||||
|
./services/networking/radicale.nix
|
||||||
./services/networking/radvd.nix
|
./services/networking/radvd.nix
|
||||||
./services/networking/rdnssd.nix
|
./services/networking/rdnssd.nix
|
||||||
./services/networking/rpcbind.nix
|
./services/networking/rpcbind.nix
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pkgs.lib) mkOption mkIf;
|
inherit (lib) mkOption mkIf;
|
||||||
cfg = config.environment.blcr;
|
cfg = config.environment.blcr;
|
||||||
blcrPkg = config.boot.kernelPackages.blcr;
|
blcrPkg = config.boot.kernelPackages.blcr;
|
||||||
in
|
in
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pkgs.lib) mkOption mkIf types;
|
inherit (lib) mkOption mkIf types;
|
||||||
cfg = config.programs.screen;
|
cfg = config.programs.screen;
|
||||||
in
|
in
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ in
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
users.defaultUserShell = pkgs.lib.mkOption {
|
users.defaultUserShell = lib.mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
This option defines the default shell assigned to user
|
This option defines the default shell assigned to user
|
||||||
accounts. This must not be a store path, since the path is
|
accounts. This must not be a store path, since the path is
|
||||||
|
@ -60,7 +60,7 @@ in
|
||||||
config = {
|
config = {
|
||||||
|
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
pkgs.lib.optional config.users.mutableUsers pkgs.shadow;
|
lib.optional config.users.mutableUsers pkgs.shadow;
|
||||||
|
|
||||||
environment.etc =
|
environment.etc =
|
||||||
[ { # /etc/login.defs: global configuration for pwdutils. You
|
[ { # /etc/login.defs: global configuration for pwdutils. You
|
||||||
|
|
|
@ -14,6 +14,7 @@ let virtualbox = config.boot.kernelPackages.virtualbox; in
|
||||||
services.udev.extraRules =
|
services.udev.extraRules =
|
||||||
''
|
''
|
||||||
KERNEL=="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660", TAG+="systemd"
|
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"
|
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_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}"
|
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_env.so envfile=${config.system.build.pamEnvironment}
|
||||||
session required pam_unix.so
|
session required pam_unix.so
|
||||||
${optionalString cfg.setLoginUid
|
${optionalString cfg.setLoginUid
|
||||||
"session required pam_loginuid.so"}
|
"session ${
|
||||||
|
if config.boot.isContainer then "optional" else "required"
|
||||||
|
} pam_loginuid.so"}
|
||||||
${optionalString cfg.updateWtmp
|
${optionalString cfg.updateWtmp
|
||||||
"session required ${pkgs.pam}/lib/security/pam_lastlog.so silent"}
|
"session required ${pkgs.pam}/lib/security/pam_lastlog.so silent"}
|
||||||
${optionalString config.users.ldap.enable
|
${optionalString config.users.ldap.enable
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
|
||||||
with pkgs;
|
with pkgs;
|
||||||
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,7 @@ in
|
||||||
touch ${stateDir}/sitecopy.secrets
|
touch ${stateDir}/sitecopy.secrets
|
||||||
chown root ${stateDir}/sitecopy.secrets
|
chown root ${stateDir}/sitecopy.secrets
|
||||||
|
|
||||||
${pkgs.lib.concatStrings (map ( b: ''
|
${lib.concatStrings (map ( b: ''
|
||||||
unset secrets
|
unset secrets
|
||||||
unset secret
|
unset secret
|
||||||
secrets=`grep '^${b.server}' ${stateDir}/sitecopy.secrets | head -1`
|
secrets=`grep '^${b.server}' ${stateDir}/sitecopy.secrets | head -1`
|
||||||
|
|
|
@ -68,7 +68,7 @@ in
|
||||||
|
|
||||||
users.extraUsers = optionalAttrs (cfg.user == "openldap") (singleton
|
users.extraUsers = optionalAttrs (cfg.user == "openldap") (singleton
|
||||||
{ name = "openldap";
|
{ name = "openldap";
|
||||||
group = "openldap";
|
group = cfg.group;
|
||||||
uid = config.ids.uids.openldap;
|
uid = config.ids.uids.openldap;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ in
|
||||||
Defines how users authenticate themselves to the server. By
|
Defines how users authenticate themselves to the server. By
|
||||||
default, "trust" access to local users will always be granted
|
default, "trust" access to local users will always be granted
|
||||||
along with any other custom options. If you do not want this,
|
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.
|
behaviour.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# GNOME Documents daemon.
|
# GNOME Documents daemon.
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
gnome3 = config.environment.gnome3.packageSet;
|
gnome3 = config.environment.gnome3.packageSet;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# GNOME Keyring daemon.
|
# GNOME Keyring daemon.
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
gnome3 = config.environment.gnome3.packageSet;
|
gnome3 = config.environment.gnome3.packageSet;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# GNOME Online Accounts daemon.
|
# GNOME Online Accounts daemon.
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
gnome3 = config.environment.gnome3.packageSet;
|
gnome3 = config.environment.gnome3.packageSet;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# GNOME Online Miners daemon.
|
# GNOME Online Miners daemon.
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
gnome3 = config.environment.gnome3.packageSet;
|
gnome3 = config.environment.gnome3.packageSet;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# GNOME User Share daemon.
|
# GNOME User Share daemon.
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
gnome3 = config.environment.gnome3.packageSet;
|
gnome3 = config.environment.gnome3.packageSet;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# gvfs backends
|
# gvfs backends
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
gnome3 = config.environment.gnome3.packageSet;
|
gnome3 = config.environment.gnome3.packageSet;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# Seahorse daemon.
|
# Seahorse daemon.
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
gnome3 = config.environment.gnome3.packageSet;
|
gnome3 = config.environment.gnome3.packageSet;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# Tracker daemon.
|
# Tracker daemon.
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
gnome3 = config.environment.gnome3.packageSet;
|
gnome3 = config.environment.gnome3.packageSet;
|
||||||
|
|
|
@ -16,7 +16,7 @@ let
|
||||||
echo "event=${event.event}" > $fn
|
echo "event=${event.event}" > $fn
|
||||||
echo "action=${pkgs.writeScript "${event.name}.sh" event.action}" >> $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 = {
|
options = {
|
||||||
|
|
||||||
hardware.amdHybridGraphics.disable = pkgs.lib.mkOption {
|
hardware.amdHybridGraphics.disable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
type = pkgs.lib.types.bool;
|
type = lib.types.bool;
|
||||||
description = ''
|
description = ''
|
||||||
Completely disable the AMD graphics card and use the
|
Completely disable the AMD graphics card and use the
|
||||||
integrated graphics processor instead.
|
integrated graphics processor instead.
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = pkgs.lib.mkIf config.hardware.amdHybridGraphics.disable {
|
config = lib.mkIf config.hardware.amdHybridGraphics.disable {
|
||||||
systemd.services."amd-hybrid-graphics" = {
|
systemd.services."amd-hybrid-graphics" = {
|
||||||
path = [ pkgs.bash ];
|
path = [ pkgs.bash ];
|
||||||
description = "Disable AMD Card";
|
description = "Disable AMD Card";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
let kernel = config.boot.kernelPackages; in
|
let kernel = config.boot.kernelPackages; in
|
||||||
|
|
||||||
|
@ -8,9 +8,9 @@ let kernel = config.boot.kernelPackages; in
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
hardware.nvidiaOptimus.disable = pkgs.lib.mkOption {
|
hardware.nvidiaOptimus.disable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
type = pkgs.lib.types.bool;
|
type = lib.types.bool;
|
||||||
description = ''
|
description = ''
|
||||||
Completely disable the NVIDIA graphics card and use the
|
Completely disable the NVIDIA graphics card and use the
|
||||||
integrated graphics processor instead.
|
integrated graphics processor instead.
|
||||||
|
@ -22,7 +22,7 @@ let kernel = config.boot.kernelPackages; in
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = pkgs.lib.mkIf config.hardware.nvidiaOptimus.disable {
|
config = lib.mkIf config.hardware.nvidiaOptimus.disable {
|
||||||
boot.blacklistedKernelModules = ["nouveau" "nvidia" "nvidiafb"];
|
boot.blacklistedKernelModules = ["nouveau" "nvidia" "nvidiafb"];
|
||||||
boot.kernelModules = [ "bbswitch" ];
|
boot.kernelModules = [ "bbswitch" ];
|
||||||
boot.extraModulePackages = [ kernel.bbswitch ];
|
boot.extraModulePackages = [ kernel.bbswitch ];
|
||||||
|
|
66
nixos/modules/services/misc/gitolite.nix
Normal file
66
nixos/modules/services/misc/gitolite.nix
Normal file
|
@ -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
|
# Monit system watcher
|
||||||
# http://mmonit.org/monit/
|
# http://mmonit.org/monit/
|
||||||
|
|
||||||
{config, pkgs, ...}:
|
{config, pkgs, lib, ...}:
|
||||||
|
|
||||||
let inherit (pkgs.lib) mkOption mkIf;
|
let inherit (lib) mkOption mkIf;
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (pkgs.lib) mkOption mkEnableOption mkIf mkMerge types optionalAttrs optional;
|
inherit (lib) mkOption mkEnableOption mkIf mkMerge types optionalAttrs optional;
|
||||||
|
|
||||||
cfg = config.services.uptime;
|
cfg = config.services.uptime;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pkgs.lib) mkOption mkIf;
|
inherit (lib) mkOption mkIf;
|
||||||
|
|
||||||
cfg = config.services.openafsClient;
|
cfg = config.services.openafsClient;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
|
@ -136,4 +136,4 @@ in
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ cfg.port ];
|
networking.firewall.allowedTCPPorts = [ cfg.port ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
|
||||||
with pkgs;
|
with pkgs;
|
||||||
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.networking.connman;
|
cfg = config.networking.connman;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
inherit (pkgs.lib) mkOption mkIf singleton;
|
inherit (lib) mkOption mkIf singleton;
|
||||||
|
|
||||||
inherit (pkgs) ddclient;
|
inherit (pkgs) ddclient;
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ let
|
||||||
|
|
||||||
${cfg.extraConfig}
|
${cfg.extraConfig}
|
||||||
|
|
||||||
${pkgs.lib.concatMapStrings
|
${lib.concatMapStrings
|
||||||
(machine: ''
|
(machine: ''
|
||||||
host ${machine.hostName} {
|
host ${machine.hostName} {
|
||||||
hardware ethernet ${machine.ethernetAddress};
|
hardware ethernet ${machine.ethernetAddress};
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
# GNU Virtual Private Ethernet
|
# GNU Virtual Private Ethernet
|
||||||
|
|
||||||
{config, pkgs, ...}:
|
{config, pkgs, lib, ...}:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pkgs.lib) mkOption mkIf;
|
inherit (lib) mkOption mkIf;
|
||||||
|
|
||||||
cfg = config.services.gvpe;
|
cfg = config.services.gvpe;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
|
||||||
with pkgs;
|
with pkgs;
|
||||||
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.networking.networkmanager;
|
cfg = config.networking.networkmanager;
|
||||||
|
@ -151,7 +151,7 @@ in {
|
||||||
{ source = "${networkmanager_pptp}/etc/NetworkManager/VPN/nm-pptp-service.name";
|
{ source = "${networkmanager_pptp}/etc/NetworkManager/VPN/nm-pptp-service.name";
|
||||||
target = "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;
|
{ source = overrideNameserversScript;
|
||||||
target = "NetworkManager/dispatcher.d/02overridedns";
|
target = "NetworkManager/dispatcher.d/02overridedns";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.services.notbit;
|
cfg = config.services.notbit;
|
||||||
varDir = "/var/lib/notbit";
|
varDir = "/var/lib/notbit";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.nsd;
|
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
|
let
|
||||||
ts3 = pkgs.teamspeak_server;
|
ts3 = pkgs.teamspeak_server;
|
||||||
|
|
|
@ -15,7 +15,7 @@ let
|
||||||
MAILTO="${config.services.cron.mailto}"
|
MAILTO="${config.services.cron.mailto}"
|
||||||
''}
|
''}
|
||||||
NIX_CONF_DIR=/etc/nix
|
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.
|
# Vixie cron requires build-time configuration for the sendmail path.
|
||||||
|
|
|
@ -17,7 +17,7 @@ let
|
||||||
MAILTO="${config.services.cron.mailto}"
|
MAILTO="${config.services.cron.mailto}"
|
||||||
''}
|
''}
|
||||||
NIX_CONF_DIR=/etc/nix
|
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:
|
allowdeny = target: users:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{pkgs, config, ...}:
|
{lib, config, ...}:
|
||||||
|
|
||||||
let kernel = config.boot.kernelPackages;
|
let kernel = config.boot.kernelPackages;
|
||||||
in
|
in
|
||||||
|
@ -9,9 +9,9 @@ in
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
services.frandom.enable = pkgs.lib.mkOption {
|
services.frandom.enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
type = pkgs.lib.types.bool;
|
type = lib.types.bool;
|
||||||
description = ''
|
description = ''
|
||||||
enable the /dev/frandom device (a very fast random number generator)
|
enable the /dev/frandom device (a very fast random number generator)
|
||||||
'';
|
'';
|
||||||
|
@ -22,7 +22,7 @@ in
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = pkgs.lib.mkIf config.services.frandom.enable {
|
config = lib.mkIf config.services.frandom.enable {
|
||||||
boot.kernelModules = [ "frandom" ];
|
boot.kernelModules = [ "frandom" ];
|
||||||
boot.extraModulePackages = [ kernel.frandom ];
|
boot.extraModulePackages = [ kernel.frandom ];
|
||||||
services.udev.packages = [ kernel.frandom ];
|
services.udev.packages = [ kernel.frandom ];
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{pkgs, config, ...}:
|
{pkgs, config, lib, ...}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
inherit (pkgs.lib) mkOption mkIf singleton;
|
inherit (lib) mkOption mkIf singleton;
|
||||||
|
|
||||||
inherit (pkgs) heimdal;
|
inherit (pkgs) heimdal;
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ in
|
||||||
environment.systemPackages = [ heimdal ];
|
environment.systemPackages = [ heimdal ];
|
||||||
|
|
||||||
services.xinetd.enable = true;
|
services.xinetd.enable = true;
|
||||||
services.xinetd.services = pkgs.lib.singleton
|
services.xinetd.services = lib.singleton
|
||||||
{ name = "kerberos-adm";
|
{ name = "kerberos-adm";
|
||||||
flags = "REUSE NAMEINARGS";
|
flags = "REUSE NAMEINARGS";
|
||||||
protocol = "tcp";
|
protocol = "tcp";
|
||||||
|
|
|
@ -7,7 +7,7 @@ let
|
||||||
nssModulesPath = config.system.nssModules.path;
|
nssModulesPath = config.system.nssModules.path;
|
||||||
cfg = config.services.nscd;
|
cfg = config.services.nscd;
|
||||||
|
|
||||||
inherit (pkgs.lib) singleton;
|
inherit (lib) singleton;
|
||||||
|
|
||||||
cfgFile = pkgs.writeText "nscd.conf" cfg.config;
|
cfgFile = pkgs.writeText "nscd.conf" cfg.config;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{pkgs, config, ...}:
|
{pkgs, config, lib, ...}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
inherit (pkgs.lib) mkOption mkIf singleton;
|
inherit (lib) mkOption mkIf singleton;
|
||||||
|
|
||||||
inherit (pkgs) uptimed;
|
inherit (pkgs) uptimed;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (pkgs.lib) mkOption types mkIf optionalString;
|
inherit (lib) mkOption types mkIf optionalString;
|
||||||
|
|
||||||
cfg = config.services.kmscon;
|
cfg = config.services.kmscon;
|
||||||
|
|
||||||
|
|
|
@ -594,17 +594,17 @@ in
|
||||||
message = "SSL is enabled for HTTPD, but sslServerCert and/or sslServerKey haven't been specified."; }
|
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";
|
{ name = "wwwrun";
|
||||||
group = "wwwrun";
|
group = mainCfg.group;
|
||||||
description = "Apache httpd user";
|
description = "Apache httpd user";
|
||||||
uid = config.ids.uids.wwwrun;
|
uid = config.ids.uids.wwwrun;
|
||||||
};
|
});
|
||||||
|
|
||||||
users.extraGroups = optional (mainCfg.group == "wwwrun")
|
users.extraGroups = optionalAttrs (mainCfg.group == "wwwrun") (singleton
|
||||||
{ name = "wwwrun";
|
{ name = "wwwrun";
|
||||||
gid = config.ids.gids.wwwrun;
|
gid = config.ids.gids.wwwrun;
|
||||||
};
|
});
|
||||||
|
|
||||||
environment.systemPackages = [httpd] ++ concatMap (svc: svc.extraPath) allSubservices;
|
environment.systemPackages = [httpd] ++ concatMap (svc: svc.extraPath) allSubservices;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{ config, pkgs, serverInfo, ... }:
|
{ config, pkgs, serverInfo, lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pkgs) mercurial;
|
inherit (pkgs) mercurial;
|
||||||
inherit (pkgs.lib) mkOption;
|
inherit (lib) mkOption;
|
||||||
|
|
||||||
urlPrefix = config.urlPrefix;
|
urlPrefix = config.urlPrefix;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, serverInfo, ... }:
|
{ config, pkgs, serverInfo, lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
extraWorkersProperties = pkgs.lib.optionalString (config ? extraWorkersProperties) config.extraWorkersProperties;
|
extraWorkersProperties = lib.optionalString (config ? extraWorkersProperties) config.extraWorkersProperties;
|
||||||
|
|
||||||
workersProperties = pkgs.writeText "workers.properties" ''
|
workersProperties = pkgs.writeText "workers.properties" ''
|
||||||
# Define list of workers that will be used
|
# Define list of workers that will be used
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{pkgs, config, ...}:
|
{lib, pkgs, config, ...}:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pkgs.lib) mkOption mkIf;
|
inherit (lib) mkOption mkIf;
|
||||||
cfg = config.services.xserver.windowManager.openbox;
|
cfg = config.services.xserver.windowManager.openbox;
|
||||||
in
|
in
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{pkgs, config, ...}:
|
{pkgs, lib, config, ...}:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pkgs.lib) mkOption mkIf optionals literalExample;
|
inherit (lib) mkOption mkIf optionals literalExample;
|
||||||
cfg = config.services.xserver.windowManager.xmonad;
|
cfg = config.services.xserver.windowManager.xmonad;
|
||||||
xmonadEnv = cfg.haskellPackages.ghcWithPackages(self: [
|
xmonadEnv = cfg.haskellPackages.ghcWithPackages(self: [
|
||||||
self.xmonad
|
self.xmonad
|
||||||
|
@ -48,7 +48,7 @@ in
|
||||||
enableContribAndExtras = mkOption {
|
enableContribAndExtras = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
example = true;
|
example = true;
|
||||||
type = pkgs.lib.types.bool;
|
type = lib.types.bool;
|
||||||
description = "Enable xmonad-{contrib,extras} in Xmonad.";
|
description = "Enable xmonad-{contrib,extras} in Xmonad.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, pkgs, modulesPath, ... }:
|
{ config, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
fileSystems = attrValues config.fileSystems ++ config.swapDevices;
|
fileSystems = attrValues config.fileSystems ++ config.swapDevices;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
with pkgs.lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
inInitrd = any (fs: fs == "f2fs") config.boot.initrd.supportedFilesystems;
|
inInitrd = any (fs: fs == "f2fs") config.boot.initrd.supportedFilesystems;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
config = pkgs.lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(pkgs.lib.mkIf (pkgs.lib.any (fs: fs == "unionfs-fuse") config.boot.initrd.supportedFilesystems) {
|
(lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.initrd.supportedFilesystems) {
|
||||||
boot.initrd.kernelModules = [ "fuse" ];
|
boot.initrd.kernelModules = [ "fuse" ];
|
||||||
|
|
||||||
boot.initrd.extraUtilsCommands = ''
|
boot.initrd.extraUtilsCommands = ''
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}/bin
|
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 ];
|
system.fsPackages = [ pkgs.unionfs-fuse ];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
let
|
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))
|
(map (builtins.getAttr "configLine") config.system.requiredKernelConfig))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ let
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
optionalAttrs (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) # ugly...
|
|
||||||
{
|
{
|
||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
|
@ -33,6 +32,10 @@ optionalAttrs (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) # ugly...
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
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 ];
|
environment.systemPackages = [ kernel.virtualboxGuestAdditions ];
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# Test whether `avahi-daemon' and `libnss-mdns' work as expected.
|
# Test whether `avahi-daemon' and `libnss-mdns' work as expected.
|
||||||
|
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "avahi";
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
one =
|
one =
|
||||||
|
|
|
@ -23,6 +23,7 @@ let
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
name = "bittorrent";
|
||||||
|
|
||||||
nodes =
|
nodes =
|
||||||
{ tracker =
|
{ tracker =
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
with import ../lib/build-vms.nix { inherit nixos nixpkgs system; };
|
with import ../lib/build-vms.nix { inherit nixos nixpkgs system; };
|
||||||
|
|
||||||
rec {
|
rec {
|
||||||
|
name = "check-filesystems";
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
share = {pkgs, config, ...}: {
|
share = {pkgs, config, ...}: {
|
||||||
services.nfs.server.enable = true;
|
services.nfs.server.enable = true;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# Test for NixOS' container support.
|
# Test for NixOS' container support.
|
||||||
|
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "containers";
|
||||||
|
|
||||||
machine =
|
machine =
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import ./make-test.nix ({ pkgs, ... }: {
|
import ./make-test.nix ({ pkgs, ... }: {
|
||||||
|
name = "firefox";
|
||||||
|
|
||||||
machine =
|
machine =
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# Test the firewall module.
|
# Test the firewall module.
|
||||||
|
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "firewall";
|
||||||
|
|
||||||
nodes =
|
nodes =
|
||||||
{ walled =
|
{ walled =
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "gnome3";
|
||||||
|
|
||||||
machine =
|
machine =
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "gnome3_12";
|
||||||
|
|
||||||
machine =
|
machine =
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
# This test runs influxdb and checks if influxdb is up and running
|
# This test runs influxdb and checks if influxdb is up and running
|
||||||
|
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "influxdb";
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
one = { config, pkgs, ... }: {
|
one = { config, pkgs, ... }: {
|
||||||
services.influxdb.enable = true;
|
services.influxdb.enable = true;
|
||||||
|
|
|
@ -215,10 +215,11 @@ let
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
||||||
makeInstallerTest =
|
makeInstallerTest = name:
|
||||||
{ createPartitions, testChannel ? false, useEFI ? false, grubVersion ? 2, grubDevice ? "/dev/vda" }:
|
{ createPartitions, testChannel ? false, useEFI ? false, grubVersion ? 2, grubDevice ? "/dev/vda" }:
|
||||||
makeTest {
|
makeTest {
|
||||||
inherit iso;
|
inherit iso;
|
||||||
|
name = "installer-" + name;
|
||||||
nodes = if testChannel then { inherit webserver; } else { };
|
nodes = if testChannel then { inherit webserver; } else { };
|
||||||
testScript = testScriptFun {
|
testScript = testScriptFun {
|
||||||
inherit createPartitions testChannel useEFI grubVersion grubDevice;
|
inherit createPartitions testChannel useEFI grubVersion grubDevice;
|
||||||
|
@ -233,7 +234,7 @@ in {
|
||||||
|
|
||||||
# The (almost) simplest partitioning scheme: a swap partition and
|
# The (almost) simplest partitioning scheme: a swap partition and
|
||||||
# one big filesystem partition.
|
# one big filesystem partition.
|
||||||
simple = makeInstallerTest
|
simple = makeInstallerTest "simple"
|
||||||
{ createPartitions =
|
{ createPartitions =
|
||||||
''
|
''
|
||||||
$machine->succeed(
|
$machine->succeed(
|
||||||
|
@ -251,7 +252,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
# Same as the previous, but now with a separate /boot partition.
|
# Same as the previous, but now with a separate /boot partition.
|
||||||
separateBoot = makeInstallerTest
|
separateBoot = makeInstallerTest "separateBoot"
|
||||||
{ createPartitions =
|
{ createPartitions =
|
||||||
''
|
''
|
||||||
$machine->succeed(
|
$machine->succeed(
|
||||||
|
@ -273,7 +274,7 @@ in {
|
||||||
|
|
||||||
# Create two physical LVM partitions combined into one volume group
|
# Create two physical LVM partitions combined into one volume group
|
||||||
# that contains the logical swap and root partitions.
|
# that contains the logical swap and root partitions.
|
||||||
lvm = makeInstallerTest
|
lvm = makeInstallerTest "lvm"
|
||||||
{ createPartitions =
|
{ createPartitions =
|
||||||
''
|
''
|
||||||
$machine->succeed(
|
$machine->succeed(
|
||||||
|
@ -295,7 +296,7 @@ in {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
swraid = makeInstallerTest
|
swraid = makeInstallerTest "swraid"
|
||||||
{ createPartitions =
|
{ createPartitions =
|
||||||
''
|
''
|
||||||
$machine->succeed(
|
$machine->succeed(
|
||||||
|
@ -328,7 +329,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
# Test a basic install using GRUB 1.
|
# Test a basic install using GRUB 1.
|
||||||
grub1 = makeInstallerTest
|
grub1 = makeInstallerTest "grub1"
|
||||||
{ createPartitions =
|
{ createPartitions =
|
||||||
''
|
''
|
||||||
$machine->succeed(
|
$machine->succeed(
|
||||||
|
@ -348,7 +349,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
# Test an EFI install.
|
# Test an EFI install.
|
||||||
efi = makeInstallerTest
|
efi = makeInstallerTest "efi"
|
||||||
{ createPartitions =
|
{ createPartitions =
|
||||||
''
|
''
|
||||||
$machine->succeed(
|
$machine->succeed(
|
||||||
|
@ -369,6 +370,7 @@ in {
|
||||||
# Rebuild the CD configuration with a little modification.
|
# Rebuild the CD configuration with a little modification.
|
||||||
rebuildCD = makeTest
|
rebuildCD = makeTest
|
||||||
{ inherit iso;
|
{ inherit iso;
|
||||||
|
name = "rebuild-cd";
|
||||||
nodes = { };
|
nodes = { };
|
||||||
testScript =
|
testScript =
|
||||||
''
|
''
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
# solicication/advertisement using radvd works.
|
# solicication/advertisement using radvd works.
|
||||||
|
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "ipv6";
|
||||||
|
|
||||||
nodes =
|
nodes =
|
||||||
{ client = { config, pkgs, ... }: { };
|
{ client = { config, pkgs, ... }: { };
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
# 3. jenkins service not started on slave node
|
# 3. jenkins service not started on slave node
|
||||||
|
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "jenkins";
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import ./make-test.nix ({ pkgs, ... }: {
|
import ./make-test.nix ({ pkgs, ... }: {
|
||||||
|
name = "kde4";
|
||||||
|
|
||||||
machine =
|
machine =
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# Test whether fast reboots via kexec work.
|
# Test whether fast reboots via kexec work.
|
||||||
|
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "kexec";
|
||||||
|
|
||||||
machine = { config, pkgs, ... }:
|
machine = { config, pkgs, ... }:
|
||||||
{ virtualisation.vlans = [ ]; };
|
{ virtualisation.vlans = [ ]; };
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import ./make-test.nix ({ pkgs, latestKernel ? false, ... }:
|
import ./make-test.nix ({ pkgs, latestKernel ? false, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
name = "login";
|
||||||
|
|
||||||
machine =
|
machine =
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
# elasticsearch is started.
|
# elasticsearch is started.
|
||||||
|
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "logstash";
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
one =
|
one =
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# Miscellaneous small tests that don't warrant their own VM run.
|
# Miscellaneous small tests that don't warrant their own VM run.
|
||||||
|
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "misc";
|
||||||
|
|
||||||
machine =
|
machine =
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
# Simple example to showcase distributed tests using NixOS VMs.
|
# Simple example to showcase distributed tests using NixOS VMs.
|
||||||
|
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "mpich";
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
master =
|
master =
|
||||||
{ config, pkgs, ... }: {
|
{ config, pkgs, ... }: {
|
||||||
|
|
|
@ -7,6 +7,8 @@ let
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
name = "mumble";
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
server = { config, pkgs, ... }: {
|
server = { config, pkgs, ... }: {
|
||||||
services.murmur.enable = true;
|
services.murmur.enable = true;
|
||||||
|
@ -28,21 +30,21 @@ in
|
||||||
$client1->execute("mumble mumble://client1\@server/test &");
|
$client1->execute("mumble mumble://client1\@server/test &");
|
||||||
$client2->execute("mumble mumble://client2\@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
|
# cancel client audio configuration
|
||||||
|
$client1->waitForWindow(qr/Audio Tuning Wizard/);
|
||||||
|
$client2->waitForWindow(qr/Audio Tuning Wizard/);
|
||||||
$client1->sendKeys("esc");
|
$client1->sendKeys("esc");
|
||||||
$client2->sendKeys("esc");
|
$client2->sendKeys("esc");
|
||||||
$server->sleep(1);
|
|
||||||
|
|
||||||
# cancel client cert configuration
|
# cancel client cert configuration
|
||||||
|
$client1->waitForWindow(qr/Certificate Management/);
|
||||||
|
$client2->waitForWindow(qr/Certificate Management/);
|
||||||
$client1->sendKeys("esc");
|
$client1->sendKeys("esc");
|
||||||
$client2->sendKeys("esc");
|
$client2->sendKeys("esc");
|
||||||
$server->sleep(1);
|
|
||||||
|
|
||||||
# accept server certificate
|
# accept server certificate
|
||||||
|
$client1->waitForWindow(qr/^Mumble$/);
|
||||||
|
$client2->waitForWindow(qr/^Mumble$/);
|
||||||
$client1->sendChars("y");
|
$client1->sendChars("y");
|
||||||
$client2->sendChars("y");
|
$client2->sendChars("y");
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
# machine.
|
# machine.
|
||||||
|
|
||||||
import ./make-test.nix {
|
import ./make-test.nix {
|
||||||
|
name = "munin";
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
one =
|
one =
|
||||||
|
|
|
@ -6,6 +6,8 @@ let
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
name = "mysql-replication";
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
master =
|
master =
|
||||||
{ pkgs, config, ... }:
|
{ pkgs, config, ... }:
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue