From cf16b3acfea8e6662ec47a3edd404e3e386559f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 15 Mar 2008 23:40:44 +0000 Subject: [PATCH] Add `portmap' job. svn path=/nixos/trunk/; revision=11140 --- system/ids.nix | 2 ++ system/options.nix | 12 ++++++++++++ upstart-jobs/default.nix | 6 ++++++ upstart-jobs/portmap.nix | 35 +++++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 upstart-jobs/portmap.nix diff --git a/system/ids.nix b/system/ids.nix index fee56a5303bf..73fa8c8a0bb1 100644 --- a/system/ids.nix +++ b/system/ids.nix @@ -12,6 +12,7 @@ ftp = 8; bitlbee = 9; avahi = 10; + portmap = 11; nixbld = 30000; # start of range of uids nobody = 65534; @@ -24,6 +25,7 @@ vsftpd = 7; ftp = 8; avahi = 10; + portmap = 11; audio = 17; users = 100; diff --git a/system/options.nix b/system/options.nix index a5bc2f1608db..098f28848c8c 100644 --- a/system/options.nix +++ b/system/options.nix @@ -923,6 +923,18 @@ }; + 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. + ''; + }; + }; + avahi = { enable = mkOption { diff --git a/upstart-jobs/default.nix b/upstart-jobs/default.nix index 708e14d2894b..1cb509030051 100644 --- a/upstart-jobs/default.nix +++ b/upstart-jobs/default.nix @@ -158,6 +158,12 @@ let servers = config.services.ntp.servers; }) + # portmap daemon. + ++ optional config.services.portmap.enable + (import ../upstart-jobs/portmap.nix { + inherit (pkgs) makePortmap; + }) + # Avahi daemon. ++ optional config.services.avahi.enable (import ../upstart-jobs/avahi-daemon.nix { diff --git a/upstart-jobs/portmap.nix b/upstart-jobs/portmap.nix new file mode 100644 index 000000000000..18ff06dc1af4 --- /dev/null +++ b/upstart-jobs/portmap.nix @@ -0,0 +1,35 @@ +{ makePortmap }: + +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"; + } + ]; + + groups = [ + { name = "portmap"; + inherit gid; + } + ]; + + job = + let portmap = makePortmap { daemonUID = uid; daemonGID = gid; }; + in + '' +description "ONC RPC portmap" + +start on network-interfaces/started +stop on network-interfaces/stop + +respawn ${portmap}/sbin/portmap +''; + +}