openssh: Build with Kerberos by default

This can be disabled with the `withKerberos` flag if desired.
Make the relevant assertions lazy,
so that if an overlay is used to set kerberos to null,
a later override can explicitly set `withKerberos` to false.

Don't build with GSSAPI by default;
the patchset is large and a bit hairy,
and it is reasonable to follow upstream who has not merged it
in not enabling it by default.
This commit is contained in:
Aneesh Agrawal
2018-01-28 16:36:00 -05:00
committed by Graham Christensen
parent 192f30f06a
commit 716d1612af
4 changed files with 6 additions and 13 deletions
+5 -9
View File
@@ -1,15 +1,12 @@
{ stdenv, fetchurl, fetchpatch, zlib, openssl, perl, libedit, pkgconfig, pam, autoreconfHook
, etcDir ? null
, hpnSupport ? false
, withKerberos ? false
, withKerberos ? true
, withGssapiPatches ? false
, kerberos
, linkOpenssl? true
}:
assert withKerberos -> kerberos != null;
assert withGssapiPatches -> withKerberos;
let
# **please** update this patch when you update to a new openssh release.
@@ -23,8 +20,6 @@ let
in
with stdenv.lib;
stdenv.mkDerivation rec {
# Please ensure that openssh_with_kerberos still builds when
# bumping the version here!
name = "openssh-${version}";
version = if hpnSupport then "7.5p1" else "7.6p1";
@@ -47,7 +42,7 @@ stdenv.mkDerivation rec {
# See discussion in https://github.com/NixOS/nixpkgs/pull/16966
./dont_create_privsep_path.patch
]
++ optional withGssapiPatches gssapiPatch;
++ optional withGssapiPatches (assert withKerberos; gssapiPatch);
postPatch =
# On Hydra this makes installation fail (sometimes?),
@@ -59,7 +54,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ zlib openssl libedit pam ]
++ optional withKerberos kerberos
++ optional hpnSupport autoreconfHook;
++ optional hpnSupport autoreconfHook
;
preConfigure = ''
# Setting LD causes `configure' and `make' to disagree about which linker
@@ -78,7 +74,7 @@ stdenv.mkDerivation rec {
"--disable-strip"
(if pam != null then "--with-pam" else "--without-pam")
] ++ optional (etcDir != null) "--sysconfdir=${etcDir}"
++ optional withKerberos "--with-kerberos5=${kerberos}"
++ optional withKerberos (assert kerberos != null; "--with-kerberos5=${kerberos}")
++ optional stdenv.isDarwin "--disable-libutil"
++ optional (!linkOpenssl) "--without-openssl";