From adafcb8f3299f32d2424984e862c4c67fe391036 Mon Sep 17 00:00:00 2001 From: Marc Weber Date: Fri, 6 Mar 2009 12:26:22 +0000 Subject: [PATCH] Convert "portmap" svn path=/nixos/branches/fix-style/; revision=14375 --- system/options.nix | 13 +----- upstart-jobs/default.nix | 6 --- upstart-jobs/portmap.nix | 85 ++++++++++++++++++++++++++++------------ 3 files changed, 61 insertions(+), 43 deletions(-) diff --git a/system/options.nix b/system/options.nix index 31dc9c60443..a5fea0b2632 100644 --- a/system/options.nix +++ b/system/options.nix @@ -480,18 +480,6 @@ in }; - portmap = { - - enable = mkOption { - default = false; - description = '' - Whether to enable `portmap', an ONC RPC directory service - notably used by NFS and NIS, and which can be queried - using the rpcinfo(1) command. - ''; - }; - }; - bitlbee = { enable = mkOption { @@ -1543,6 +1531,7 @@ in (import ../upstart-jobs/sshd.nix) (import ../upstart-jobs/lshd.nix) # GNU lshd SSH2 deamon (TODO: does neither start nor generate seed file ?) (import ../upstart-jobs/ntpd.nix) + (import ../upstart-jobs/portmap.nix) # nix (import ../upstart-jobs/nix.nix) # nix options and daemon diff --git a/upstart-jobs/default.nix b/upstart-jobs/default.nix index b912fbee5a2..25426b16566 100644 --- a/upstart-jobs/default.nix +++ b/upstart-jobs/default.nix @@ -148,12 +148,6 @@ let gnunetConfig = config.services.gnunet; }) - # portmap daemon. - ++ optional config.services.portmap.enable - (import ../upstart-jobs/portmap.nix { - inherit (pkgs) makePortmap; - }) - # Apache httpd. ++ optional (config.services.httpd.enable && !config.services.httpd.experimental) (import ../upstart-jobs/httpd.nix { diff --git a/upstart-jobs/portmap.nix b/upstart-jobs/portmap.nix index 18ff06dc1af..0c3368545c2 100644 --- a/upstart-jobs/portmap.nix +++ b/upstart-jobs/portmap.nix @@ -1,35 +1,70 @@ -{ makePortmap }: +{pkgs, config, ...}: + +###### interface +let + inherit (pkgs.lib) mkOption mkIf; + + options = { + services = { + portmap = { + enable = mkOption { + default = false; + description = '' + Whether to enable `portmap', an ONC RPC directory service + notably used by NFS and NIS, and which can be queried + using the rpcinfo(1) command. + ''; + }; + }; + }; + }; +in + +###### implementation let uid = (import ../system/ids.nix).uids.portmap; gid = (import ../system/ids.nix).gids.portmap; in -{ - name = "portmap"; - - users = [ - { name = "portmap"; - inherit uid; - description = "portmap daemon user"; - home = "/var/empty"; - } + +mkIf config.services.portmap.enable { + + require = [ + options ]; - groups = [ - { name = "portmap"; - inherit gid; - } - ]; - job = - let portmap = makePortmap { daemonUID = uid; daemonGID = gid; }; - in - '' -description "ONC RPC portmap" + users = { + extraUsers = [ + { name = "portmap"; + inherit uid; + description = "portmap daemon user"; + home = "/var/empty"; + } + ]; -start on network-interfaces/started -stop on network-interfaces/stop + extraGroups = [ + { name = "portmap"; + inherit gid; + } + ]; + }; -respawn ${portmap}/sbin/portmap -''; - + services = { + extraJobs = [{ + name = "portmap"; + + + job = + let portmap = pkgs.makePortmap { daemonUID = uid; daemonGID = gid; }; + in + '' + description "ONC RPC portmap" + + start on network-interfaces/started + stop on network-interfaces/stop + + respawn ${portmap}/sbin/portmap + ''; + }]; + }; }