2007-11-15 17:16:16 +00:00
|
|
|
{config, pkgs, nix, modprobe, nssModulesPath, nixEnvVars}:
|
2006-12-11 15:32:10 +00:00
|
|
|
|
|
|
|
let
|
|
|
|
|
|
|
|
makeJob = import ../upstart-jobs/make-job.nix {
|
|
|
|
inherit (pkgs) runCommand;
|
|
|
|
};
|
|
|
|
|
2007-11-09 18:49:45 +00:00
|
|
|
optional = cond: service: pkgs.lib.optional cond (makeJob service);
|
2006-12-16 18:24:49 +00:00
|
|
|
|
2007-04-04 18:10:38 +01:00
|
|
|
requiredTTYs =
|
2007-11-09 18:49:45 +00:00
|
|
|
(config.services.mingetty.ttys)
|
2007-04-04 18:10:38 +01:00
|
|
|
++ [10] /* !!! sync with syslog.conf */ ;
|
|
|
|
|
2007-11-23 10:56:12 +00:00
|
|
|
|
2006-12-11 15:32:10 +00:00
|
|
|
jobs = map makeJob [
|
|
|
|
# Syslogd.
|
|
|
|
(import ../upstart-jobs/syslogd.nix {
|
|
|
|
inherit (pkgs) sysklogd;
|
|
|
|
})
|
|
|
|
|
2006-12-13 12:17:38 +00:00
|
|
|
# The udev daemon creates devices nodes and runs programs when
|
|
|
|
# hardware events occur.
|
|
|
|
(import ../upstart-jobs/udev.nix {
|
2007-03-03 23:20:08 +00:00
|
|
|
inherit (pkgs) stdenv writeText substituteAll udev procps;
|
2007-01-15 09:20:34 +00:00
|
|
|
inherit (pkgs.lib) cleanSource;
|
2007-03-03 23:20:08 +00:00
|
|
|
firmwareDirs =
|
2007-11-09 18:49:45 +00:00
|
|
|
pkgs.lib.optional (config.networking.enableIntel2200BGFirmware) pkgs.ipw2200fw
|
2007-09-28 08:58:40 +01:00
|
|
|
++
|
2007-11-09 18:49:45 +00:00
|
|
|
(config.services.udev.addFirmware);
|
2007-07-22 03:07:02 +01:00
|
|
|
extraUdevPkgs =
|
2007-11-09 18:49:45 +00:00
|
|
|
pkgs.lib.optional (config.services.hal.enable) pkgs.hal;
|
2006-12-13 12:17:38 +00:00
|
|
|
})
|
|
|
|
|
2006-12-24 01:07:28 +00:00
|
|
|
# Makes LVM logical volumes available.
|
|
|
|
(import ../upstart-jobs/lvm.nix {
|
2007-03-04 01:16:24 +00:00
|
|
|
inherit modprobe;
|
2007-06-28 10:57:36 +01:00
|
|
|
inherit (pkgs) lvm2 devicemapper;
|
2006-12-24 01:07:28 +00:00
|
|
|
})
|
|
|
|
|
2007-01-11 00:40:28 +00:00
|
|
|
# Activate software RAID arrays.
|
|
|
|
(import ../upstart-jobs/swraid.nix {
|
2007-03-04 01:16:24 +00:00
|
|
|
inherit modprobe;
|
|
|
|
inherit (pkgs) mdadm;
|
2007-01-11 00:40:28 +00:00
|
|
|
})
|
|
|
|
|
2006-12-11 15:32:10 +00:00
|
|
|
# Hardware scan; loads modules for PCI devices.
|
|
|
|
(import ../upstart-jobs/hardware-scan.nix {
|
2007-03-04 01:16:24 +00:00
|
|
|
inherit modprobe;
|
2007-11-09 18:49:45 +00:00
|
|
|
doHardwareScan = config.boot.hardwareScan;
|
|
|
|
kernelModules = config.boot.kernelModules;
|
2006-12-11 15:32:10 +00:00
|
|
|
})
|
|
|
|
|
2006-12-21 14:22:40 +00:00
|
|
|
# Mount file systems.
|
|
|
|
(import ../upstart-jobs/filesystems.nix {
|
2006-12-21 20:08:15 +00:00
|
|
|
inherit (pkgs) utillinux e2fsprogs;
|
2007-11-09 18:49:45 +00:00
|
|
|
fileSystems = config.fileSystems;
|
2006-12-21 14:22:40 +00:00
|
|
|
})
|
|
|
|
|
2006-12-21 01:07:23 +00:00
|
|
|
# Swapping.
|
|
|
|
(import ../upstart-jobs/swap.nix {
|
2007-01-10 13:07:57 +00:00
|
|
|
inherit (pkgs) utillinux library;
|
2007-11-09 18:49:45 +00:00
|
|
|
swapDevices = config.swapDevices;
|
2006-12-21 01:07:23 +00:00
|
|
|
})
|
|
|
|
|
2006-12-11 15:32:10 +00:00
|
|
|
# Network interfaces.
|
|
|
|
(import ../upstart-jobs/network-interfaces.nix {
|
2007-11-23 17:12:37 +00:00
|
|
|
inherit modprobe config;
|
2007-05-24 15:50:17 +01:00
|
|
|
inherit (pkgs) nettools wirelesstools bash writeText;
|
2006-12-11 15:32:10 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
# Nix daemon - required for multi-user Nix.
|
|
|
|
(import ../upstart-jobs/nix-daemon.nix {
|
2007-11-15 17:16:16 +00:00
|
|
|
inherit config pkgs nix nixEnvVars;
|
2006-12-11 15:32:10 +00:00
|
|
|
})
|
|
|
|
|
2007-01-10 17:09:00 +00:00
|
|
|
# Cron daemon.
|
|
|
|
(import ../upstart-jobs/cron.nix {
|
|
|
|
inherit (pkgs) cron;
|
|
|
|
})
|
|
|
|
|
2007-01-11 23:55:25 +00:00
|
|
|
# Name service cache daemon.
|
|
|
|
(import ../upstart-jobs/nscd.nix {
|
2007-06-10 21:13:12 +01:00
|
|
|
inherit (pkgs) glibc;
|
2007-01-15 17:19:41 +00:00
|
|
|
inherit nssModulesPath;
|
2007-01-11 23:55:25 +00:00
|
|
|
})
|
|
|
|
|
2007-04-04 18:10:38 +01:00
|
|
|
# Console font and keyboard maps.
|
|
|
|
(import ../upstart-jobs/kbd.nix {
|
|
|
|
inherit (pkgs) glibc kbd gzip;
|
|
|
|
ttyNumbers = requiredTTYs;
|
2007-11-09 18:49:45 +00:00
|
|
|
defaultLocale = config.i18n.defaultLocale;
|
|
|
|
consoleFont = config.i18n.consoleFont;
|
|
|
|
consoleKeyMap = config.i18n.consoleKeyMap;
|
2007-04-04 18:10:38 +01:00
|
|
|
})
|
|
|
|
|
2006-12-11 15:32:10 +00:00
|
|
|
# Handles the maintenance/stalled event (single-user shell).
|
|
|
|
(import ../upstart-jobs/maintenance-shell.nix {
|
|
|
|
inherit (pkgs) bash;
|
|
|
|
})
|
|
|
|
|
|
|
|
# Ctrl-alt-delete action.
|
|
|
|
(import ../upstart-jobs/ctrl-alt-delete.nix)
|
|
|
|
|
|
|
|
]
|
|
|
|
|
2007-02-12 16:00:55 +00:00
|
|
|
# DHCP client.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.networking.useDHCP
|
2007-02-12 16:00:55 +00:00
|
|
|
(import ../upstart-jobs/dhclient.nix {
|
2007-02-22 14:26:53 +00:00
|
|
|
inherit (pkgs) nettools dhcp lib;
|
2007-11-09 18:49:45 +00:00
|
|
|
interfaces = config.networking.interfaces;
|
2007-02-12 16:00:55 +00:00
|
|
|
})
|
|
|
|
|
2007-08-14 17:43:56 +01:00
|
|
|
# ifplugd daemon for monitoring Ethernet cables.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.networking.interfaceMonitor.enable
|
2007-08-14 17:43:56 +01:00
|
|
|
(import ../upstart-jobs/ifplugd.nix {
|
|
|
|
inherit (pkgs) ifplugd writeScript bash;
|
|
|
|
inherit config;
|
|
|
|
})
|
|
|
|
|
2007-03-16 16:41:38 +00:00
|
|
|
# DHCP server.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.dhcpd.enable
|
2007-03-16 16:41:38 +00:00
|
|
|
(import ../upstart-jobs/dhcpd.nix {
|
|
|
|
inherit (pkgs) dhcp;
|
2007-11-09 18:49:45 +00:00
|
|
|
configFile = config.services.dhcpd.configFile;
|
|
|
|
interfaces = config.services.dhcpd.interfaces;
|
2007-03-16 16:41:38 +00:00
|
|
|
})
|
|
|
|
|
2006-12-16 18:24:49 +00:00
|
|
|
# SSH daemon.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.sshd.enable
|
2006-12-16 18:24:49 +00:00
|
|
|
(import ../upstart-jobs/sshd.nix {
|
2007-06-10 21:13:12 +01:00
|
|
|
inherit (pkgs) writeText openssh glibc;
|
2007-01-07 10:19:16 +00:00
|
|
|
inherit (pkgs.xorg) xauth;
|
2007-01-15 17:19:41 +00:00
|
|
|
inherit nssModulesPath;
|
2007-11-09 18:49:45 +00:00
|
|
|
forwardX11 = config.services.sshd.forwardX11;
|
|
|
|
allowSFTP = config.services.sshd.allowSFTP;
|
2006-12-16 18:24:49 +00:00
|
|
|
})
|
|
|
|
|
2006-12-21 23:43:17 +00:00
|
|
|
# NTP daemon.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.ntp.enable
|
2006-12-21 23:43:17 +00:00
|
|
|
(import ../upstart-jobs/ntpd.nix {
|
2007-03-04 01:16:24 +00:00
|
|
|
inherit modprobe;
|
2007-06-10 21:13:12 +01:00
|
|
|
inherit (pkgs) ntp glibc writeText;
|
2007-11-09 18:49:45 +00:00
|
|
|
servers = config.services.ntp.servers;
|
2006-12-21 23:43:17 +00:00
|
|
|
})
|
|
|
|
|
2006-12-16 18:24:49 +00:00
|
|
|
# X server.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.xserver.enable
|
2006-12-16 18:24:49 +00:00
|
|
|
(import ../upstart-jobs/xserver.nix {
|
2007-02-26 23:11:32 +00:00
|
|
|
inherit config;
|
2007-10-03 15:48:41 +01:00
|
|
|
inherit (pkgs) writeText lib xterm slim xorg mesa
|
2007-04-02 16:01:09 +01:00
|
|
|
gnome compiz feh kdebase kdelibs xkeyboard_config
|
2007-09-24 10:02:43 +01:00
|
|
|
openssh x11_ssh_askpass nvidiaDrivers synaptics;
|
2007-10-03 15:48:41 +01:00
|
|
|
stdenv = pkgs.stdenvNewSetupScript;
|
2007-05-28 16:39:25 +01:00
|
|
|
libX11 = pkgs.xlibs.libX11;
|
|
|
|
libXext = pkgs.xlibs.libXext;
|
2007-09-25 20:00:20 +01:00
|
|
|
fontDirectories = import ../system/fonts.nix {inherit pkgs config;};
|
2007-11-09 18:49:45 +00:00
|
|
|
isClone = config.services.xserver.isClone;
|
2006-12-16 18:24:49 +00:00
|
|
|
})
|
|
|
|
|
2006-12-18 19:20:03 +00:00
|
|
|
# Apache httpd.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.httpd.enable
|
2006-12-18 19:20:03 +00:00
|
|
|
(import ../upstart-jobs/httpd.nix {
|
2006-12-18 19:46:48 +00:00
|
|
|
inherit config pkgs;
|
2007-06-10 21:13:12 +01:00
|
|
|
inherit (pkgs) glibc;
|
2007-11-23 10:56:12 +00:00
|
|
|
extraConfig = pkgs.lib.concatStringsSep "\n"
|
|
|
|
(map (job: job.extraHttpdConfig) jobs);
|
2006-12-18 19:20:03 +00:00
|
|
|
})
|
|
|
|
|
2007-12-03 04:48:31 +00:00
|
|
|
# Postgres SQL server
|
|
|
|
++ optional config.services.postgresql.enable
|
|
|
|
(import ../upstart-jobs/postgresql.nix {
|
|
|
|
inherit config pkgs;
|
|
|
|
startDependency = if config.services.gw6c.enable then
|
|
|
|
"gw6c" else "network-interfaces";
|
|
|
|
})
|
|
|
|
|
2007-05-28 16:39:25 +01:00
|
|
|
# Samba service.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.samba.enable
|
2007-05-28 16:39:25 +01:00
|
|
|
(import ../upstart-jobs/samba.nix {
|
|
|
|
inherit pkgs;
|
2007-06-10 21:13:12 +01:00
|
|
|
inherit (pkgs) glibc samba;
|
2007-05-28 16:39:25 +01:00
|
|
|
})
|
|
|
|
|
2007-04-02 18:31:58 +01:00
|
|
|
# CUPS (printing) daemon.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.printing.enable
|
2007-04-02 18:31:58 +01:00
|
|
|
(import ../upstart-jobs/cupsd.nix {
|
|
|
|
inherit (pkgs) writeText cups;
|
|
|
|
})
|
|
|
|
|
2007-07-09 12:21:04 +01:00
|
|
|
# Gateway6
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.gw6c.enable
|
2007-07-09 12:21:04 +01:00
|
|
|
(import ../upstart-jobs/gw6c.nix {
|
|
|
|
inherit config pkgs;
|
|
|
|
})
|
|
|
|
|
2007-11-05 08:54:30 +00:00
|
|
|
# X Font Server
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.xfs.enable
|
2007-11-05 08:54:30 +00:00
|
|
|
(import ../upstart-jobs/xfs.nix {
|
|
|
|
inherit config pkgs;
|
|
|
|
})
|
|
|
|
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.ircdHybrid.enable
|
2007-08-08 21:42:25 +01:00
|
|
|
(import ../upstart-jobs/ircd-hybrid.nix {
|
|
|
|
inherit config pkgs;
|
|
|
|
})
|
|
|
|
|
2007-03-01 00:36:00 +00:00
|
|
|
# ALSA sound support.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.sound.enable
|
2007-03-01 00:36:00 +00:00
|
|
|
(import ../upstart-jobs/alsa.nix {
|
2007-03-04 01:16:24 +00:00
|
|
|
inherit modprobe;
|
|
|
|
inherit (pkgs) alsaUtils;
|
2007-03-01 00:36:00 +00:00
|
|
|
})
|
|
|
|
|
2007-06-08 19:56:55 +01:00
|
|
|
# D-Bus system-wide daemon.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.dbus.enable
|
2007-06-08 19:56:55 +01:00
|
|
|
(import ../upstart-jobs/dbus.nix {
|
|
|
|
inherit (pkgs) stdenv dbus;
|
2007-06-09 21:05:04 +01:00
|
|
|
dbusServices =
|
2007-11-09 18:49:45 +00:00
|
|
|
pkgs.lib.optional (config.services.hal.enable) pkgs.hal;
|
2007-06-09 21:05:04 +01:00
|
|
|
})
|
|
|
|
|
|
|
|
# HAL daemon.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.hal.enable
|
2007-06-09 21:05:04 +01:00
|
|
|
(import ../upstart-jobs/hal.nix {
|
|
|
|
inherit (pkgs) stdenv hal;
|
2007-06-08 19:56:55 +01:00
|
|
|
})
|
|
|
|
|
2007-11-12 16:43:35 +00:00
|
|
|
# Nagios system/network monitoring daemon.
|
|
|
|
++ optional config.services.nagios.enable
|
|
|
|
(import ../upstart-jobs/nagios {
|
|
|
|
inherit config pkgs;
|
|
|
|
})
|
|
|
|
|
2006-12-11 15:32:10 +00:00
|
|
|
# Handles the reboot/halt events.
|
|
|
|
++ (map
|
|
|
|
(event: makeJob (import ../upstart-jobs/halt.nix {
|
|
|
|
inherit (pkgs) bash utillinux;
|
|
|
|
inherit event;
|
|
|
|
}))
|
|
|
|
["reboot" "halt" "system-halt" "power-off"]
|
|
|
|
)
|
|
|
|
|
|
|
|
# The terminals on ttyX.
|
|
|
|
++ (map
|
|
|
|
(ttyNumber: makeJob (import ../upstart-jobs/mingetty.nix {
|
2007-01-08 22:41:41 +00:00
|
|
|
inherit (pkgs) mingetty;
|
|
|
|
inherit ttyNumber;
|
|
|
|
loginProgram = "${pkgs.pam_login}/bin/login";
|
2006-12-11 15:32:10 +00:00
|
|
|
}))
|
2007-11-09 18:49:45 +00:00
|
|
|
(config.services.mingetty.ttys)
|
2006-12-11 15:32:10 +00:00
|
|
|
)
|
|
|
|
|
2007-01-08 22:41:41 +00:00
|
|
|
# Transparent TTY backgrounds.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ optional config.services.ttyBackgrounds.enable
|
2007-01-08 22:41:41 +00:00
|
|
|
(import ../upstart-jobs/tty-backgrounds.nix {
|
|
|
|
inherit (pkgs) stdenv splashutils;
|
|
|
|
|
|
|
|
backgrounds =
|
|
|
|
|
|
|
|
let
|
|
|
|
|
|
|
|
specificThemes =
|
2007-11-09 18:49:45 +00:00
|
|
|
config.services.ttyBackgrounds.defaultSpecificThemes
|
|
|
|
++ config.services.ttyBackgrounds.specificThemes;
|
2007-01-08 22:41:41 +00:00
|
|
|
|
|
|
|
overridenTTYs = map (x: x.tty) specificThemes;
|
|
|
|
|
|
|
|
# Use the default theme for all the mingetty ttys and for the
|
|
|
|
# syslog tty, except those for which a specific theme is
|
|
|
|
# specified.
|
|
|
|
defaultTTYs =
|
|
|
|
pkgs.library.filter (x: !(pkgs.library.elem x overridenTTYs)) requiredTTYs;
|
|
|
|
|
|
|
|
in
|
|
|
|
(map (ttyNumber: {
|
|
|
|
tty = ttyNumber;
|
2007-11-09 18:49:45 +00:00
|
|
|
theme = config.services.ttyBackgrounds.defaultTheme;
|
2007-01-08 22:41:41 +00:00
|
|
|
}) defaultTTYs)
|
|
|
|
++ specificThemes;
|
|
|
|
|
|
|
|
})
|
|
|
|
|
2006-12-18 17:41:46 +00:00
|
|
|
# User-defined events.
|
2007-11-09 18:49:45 +00:00
|
|
|
++ (map makeJob (config.services.extraJobs))
|
2006-12-18 17:41:46 +00:00
|
|
|
|
2006-12-18 19:46:48 +00:00
|
|
|
# For the built-in logd job.
|
2007-06-08 16:41:12 +01:00
|
|
|
++ [(makeJob { jobDrv = pkgs.upstart; })];
|
2007-11-23 10:56:12 +00:00
|
|
|
|
2006-12-18 19:46:48 +00:00
|
|
|
|
2007-11-23 10:56:12 +00:00
|
|
|
in import ../upstart-jobs/gather.nix {
|
|
|
|
inherit (pkgs) runCommand;
|
|
|
|
inherit jobs;
|
2006-12-11 15:32:10 +00:00
|
|
|
}
|