summary refs log tree commit diff
path: root/pkgs/tools/networking/openssh/default.nix
blob: 8a1d4666342353f6d5194cad513802479ad1a97d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
{ stdenv, fetchurl, zlib, openssl, perl
, pamSupport ? false, pam ? null
, etcDir ? null
, hpnSupport ? false
}:

assert pamSupport -> pam != null;

stdenv.mkDerivation (rec {
  name = "openssh-5.2p1";

  src = fetchurl {
    url = "ftp://ftp.nluug.nl/pub/security/OpenSSH/${name}.tar.gz";
    sha256 = "1bpc6i07hlakb9vrxr8zb1yxnc9avsv7kjwrcagdgcyh6w6728s0";
  };

  buildInputs = [zlib openssl perl
    (if pamSupport then pam else null)
  ];

  configureFlags = "
    --with-mantype=man
    ${if pamSupport then "--with-pam" else "--without-pam"}
    ${if etcDir != null then "--sysconfdir=${etcDir}" else ""}
  ";

  preConfigure = "
    configureFlags=\"$configureFlags --with-privsep-path=$out/empty\"
    ensureDir $out/empty
  ";

  postInstall = "
    # Install ssh-copy-id, it's very useful.
    cp contrib/ssh-copy-id $out/bin/
    chmod +x $out/bin/ssh-copy-id
    cp contrib/ssh-copy-id.1 $out/share/man/man1/
  ";

  installTargets = "install-nosysconf";
} //
(if hpnSupport then
rec {
   hpnSrc = fetchurl {
     url = http://www.psc.edu/networking/projects/hpn-ssh/openssh-5.2p1-hpn13v6.diff.gz;
     sha256 = "1g91xl1vfg772072qcbcfzyqj7yfvm38xgk8zyy8wsl2g81rb8wh";
   };

   patchPhase = ''
     gunzip -c ${hpnSrc} | patch -p1
   '';
}
else {}))