3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/servers/portmap/default.nix
Eelco Dolstra 0ac7828c6b * portmap: Set SO_REUSEADDR to ensure that portmap can restart
properly.

svn path=/nixpkgs/trunk/; revision=33166
2012-03-16 17:42:14 +00:00

45 lines
1.2 KiB
Nix

{ fetchurl, stdenv, lib, tcpWrapper
, daemonUser ? false, daemonUID ? false, daemonGID ? false }:
assert daemonUser -> (!daemonUID && !daemonGID);
stdenv.mkDerivation rec {
name = "portmap-6.0";
src = fetchurl {
url = "http://neil.brown.name/portmap/${name}.tgz";
sha256 = "1pj13ll4mbfwjwpn3fbg03qq9im6v2i8fcpa3ffp4viykz9j1j02";
};
patches = [ ./reuse-socket.patch ];
postPatch = ''
substituteInPlace "Makefile" --replace "/usr/share" "" \
--replace "install -o root -g root" "install"
'';
makeFlags =
lib.optional (daemonUser != false) "RPCUSER=\"${daemonUser}\""
++ lib.optional (daemonUID != false) "DAEMON_UID=${toString daemonUID}"
++ lib.optional (daemonGID != false) "DAEMON_GID=${toString daemonGID}";
buildInputs = [ tcpWrapper ];
installPhase = ''
mkdir -p "$out/sbin" "$out/man/man8"
make install BASEDIR=$out
'';
meta = {
description = "ONC RPC portmapper";
longDescription = ''
Portmap is part of the ONC RPC software collection implementing
remote procedure calls (RPCs) between computer programs. It is
widely used by NFS and NIS, among others.
'';
homepage = http://neil.brown.name/portmap/;
license = "BSD";
};
}