Author: viric
Date: Wed Mar 21 11:58:06 2012
New Revision: 33330
URL: https://nixos.org/websvn/nix/?rev=33330&sc=1
Log:
Adding idmapd, for NFSv4.
Patch by Rickard Nilsson.
This may fix rpc.statd start.
Modified:
nixos/trunk/modules/services/network-filesystems/nfsd.nix
nixos/trunk/modules/tasks/filesystems.nix
nixos/trunk/modules/tasks/filesystems/nfs.nix
Modified: nixos/trunk/modules/services/network-filesystems/nfsd.nix
==============================================================================
--- nixos/trunk/modules/services/network-filesystems/nfsd.nix Wed Mar 21
11:56:33 2012 (r33329)
+++ nixos/trunk/modules/services/network-filesystems/nfsd.nix Wed Mar 21
11:58:06 2012 (r33330)
@@ -69,7 +69,7 @@
services.portmap.enable = true;
- services.nfs.client.enable = true; # needed for statd
+ services.nfs.client.enable = true; # needed for statd and idmapd
environment.systemPackages = [ pkgs.nfsUtils ];
@@ -105,6 +105,7 @@
postStart =
''
ensure statd
+ ensure idmapd
'';
};
Modified: nixos/trunk/modules/tasks/filesystems.nix
==============================================================================
--- nixos/trunk/modules/tasks/filesystems.nix Wed Mar 21 11:56:33 2012
(r33329)
+++ nixos/trunk/modules/tasks/filesystems.nix Wed Mar 21 11:58:06 2012
(r33330)
@@ -187,6 +187,7 @@
${optionalString config.services.nfs.client.enable ''
ensure statd || true
+ ensure idmapd || true
''}
echo "mounting filesystems..."
Modified: nixos/trunk/modules/tasks/filesystems/nfs.nix
==============================================================================
--- nixos/trunk/modules/tasks/filesystems/nfs.nix Wed Mar 21 11:56:33
2012 (r33329)
+++ nixos/trunk/modules/tasks/filesystems/nfs.nix Wed Mar 21 11:58:06
2012 (r33330)
@@ -6,6 +6,27 @@
inInitrd = any (fs: fs == "nfs") config.boot.initrd.supportedFilesystems;
+ nfsStateDir = "/var/lib/nfs";
+
+ rpcMountpoint = "${nfsStateDir}/rpc_pipefs";
+
+ idmapdConfFile = {
+ target = "idmapd.conf";
+ source = pkgs.writeText "idmapd.conf" ''
+ [General]
+ Pipefs-Directory = ${rpcMountpoint}
+ ${optionalString (config.networking.domain != "")
+ "Domain = ${config.networking.domain}"}
+
+ [Mapping]
+ Nobody-User = nobody
+ Nobody-Group = nogroup
+
+ [Translation]
+ Method = nsswitch
+ '';
+ };
+
in
{
@@ -40,6 +61,8 @@
cp -v ${pkgs.klibc}/lib/klibc/bin.static/nfsmount $out/bin
'';
+ environment.etc = singleton idmapdConfFile;
+
jobs.statd =
{ description = "Kernel NFS server - Network Status Monitor";
@@ -50,9 +73,8 @@
preStart =
''
ensure portmap
- mkdir -p /var/lib/nfs
- mkdir -p /var/lib/nfs/sm
- mkdir -p /var/lib/nfs/sm.bak
+ mkdir -p ${nfsStateDir}/sm
+ mkdir -p ${nfsStateDir}/sm.bak
sm-notify -d
'';
@@ -61,5 +83,29 @@
exec = "rpc.statd --no-notify";
};
+ jobs.idmapd =
+ { description = "Kernel NFS server - ID Map Daemon";
+
+ path = [ pkgs.nfsUtils pkgs.sysvtools pkgs.utillinux ];
+
+ stopOn = "starting shutdown";
+
+ preStart =
+ ''
+ ensure portmap
+ mkdir -p ${rpcMountpoint}
+ mount -t rpc_pipefs rpc_pipefs ${rpcMountpoint}
+ '';
+
+ postStop =
+ ''
+ umount ${rpcMountpoint}
+ '';
+
+ daemonType = "fork";
+
+ exec = "rpc.idmapd";
+ };
+
};
}
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits