Merge #29785: curl: enable kerberos

This commit is contained in:
Vladimír Čunát 2017-12-19 15:18:24 +01:00
commit 9b54a00160
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
6 changed files with 42 additions and 21 deletions

View File

@ -19,32 +19,41 @@ stdenv.mkDerivation rec {
sha256 = "0zn8s7anb10hw3nzwjz7vg10fgmmgvwnibn2zrn3nppjxn9f6f8n"; sha256 = "0zn8s7anb10hw3nzwjz7vg10fgmmgvwnibn2zrn3nppjxn9f6f8n";
}; };
outputs = [ "out" "dev" ];
configureFlags = [ "--with-tcl=no" "--localstatedir=/var/lib"] configureFlags = [ "--with-tcl=no" "--localstatedir=/var/lib"]
++ optional stdenv.isFreeBSD ''WARN_CFLAGS=""''; ++ optional stdenv.isFreeBSD ''WARN_CFLAGS=""'';
nativeBuildInputs = [ pkgconfig perl yacc ] nativeBuildInputs = [ pkgconfig perl ]
++ optional (!libOnly) yacc
# Provides the mig command used by the build scripts # Provides the mig command used by the build scripts
++ optional stdenv.isDarwin bootstrap_cmds; ++ optional (stdenv.isDarwin && !libOnly) bootstrap_cmds;
buildInputs = [ openssl ] buildInputs = [ openssl ]
++ optionals (!libOnly) [ openldap libedit ]; ++ optionals (!libOnly) [ openldap libedit ];
preConfigure = "cd ./src"; preConfigure = "cd ./src";
buildPhase = optionalString libOnly '' buildPhase = optionalString libOnly ''
(cd util; make -j $NIX_BUILD_CORES) MAKE="make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES"
(cd include; make -j $NIX_BUILD_CORES) (cd util; $MAKE)
(cd lib; make -j $NIX_BUILD_CORES) (cd include; $MAKE)
(cd build-tools; make -j $NIX_BUILD_CORES) (cd lib; $MAKE)
(cd build-tools; $MAKE)
''; '';
installPhase = optionalString libOnly '' installPhase = optionalString libOnly ''
mkdir -p $out/{bin,include/{gssapi,gssrpc,kadm5,krb5},lib/pkgconfig,sbin,share/{et,man/man1}} mkdir -p "$out"/{bin,sbin,lib/pkgconfig,share/{et,man/man1}} \
(cd util; make -j $NIX_BUILD_CORES install) "$dev"/include/{gssapi,gssrpc,kadm5,krb5}
(cd include; make -j $NIX_BUILD_CORES install) (cd util; $MAKE install)
(cd lib; make -j $NIX_BUILD_CORES install) (cd include; $MAKE install)
(cd build-tools; make -j $NIX_BUILD_CORES install) (cd lib; $MAKE install)
rm -rf $out/{sbin,share} (cd build-tools; $MAKE install)
find $out/bin -type f | grep -v 'krb5-config' | xargs rm ${postInstall}
'';
# not via outputBin, due to reference from libkrb5.so
postInstall = ''
moveToOutput bin "$dev"
''; '';
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
APU="$(echo "${aprutil.dev}"/bin/*-config)" CC="${ APU="$(echo "${aprutil.dev}"/bin/*-config)" CC="${
if stdenv.cc.isClang then "clang" else "${stdenv.cc}/bin/gcc" if stdenv.cc.isClang then "clang" else "${stdenv.cc}/bin/gcc"
}" ${ }" ${
if (stdenv.isDarwin || stdenv.isCygwin) then "" else "GSSAPI=\"${kerberos}\"" if (stdenv.isDarwin || stdenv.isCygwin) then "" else "GSSAPI=\"${kerberos.dev}\""
} }
''; '';

View File

@ -1,10 +1,17 @@
{ stdenv, fetchurl, lib, pkgconfig, utillinux, libcap, libtirpc, libevent, libnfsidmap { stdenv, fetchurl, lib, pkgconfig, utillinux, libcap, libtirpc, libevent, libnfsidmap
, sqlite, kerberos, kmod, libuuid, keyutils, lvm2, systemd, coreutils, tcp_wrappers , sqlite, kerberos, kmod, libuuid, keyutils, lvm2, systemd, coreutils, tcp_wrappers
, buildEnv
}: }:
let let
statdPath = lib.makeBinPath [ systemd utillinux coreutils ]; statdPath = lib.makeBinPath [ systemd utillinux coreutils ];
# Not nice; feel free to find a nicer solution.
kerberosEnv = buildEnv {
name = "kerberos-env-${kerberos.version}";
paths = with lib; [ (getDev kerberos) (getLib kerberos) ];
};
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "nfs-utils-${version}"; name = "nfs-utils-${version}";
version = "2.1.1"; version = "2.1.1";
@ -26,7 +33,7 @@ in stdenv.mkDerivation rec {
configureFlags = configureFlags =
[ "--enable-gss" [ "--enable-gss"
"--with-statedir=/var/lib/nfs" "--with-statedir=/var/lib/nfs"
"--with-krb5=${kerberos}" "--with-krb5=${kerberosEnv}"
"--with-systemd=$(out)/etc/systemd/system" "--with-systemd=$(out)/etc/systemd/system"
"--enable-libmount-mount" "--enable-libmount-mount"
] ]

View File

@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
./regen.sh ./regen.sh
${stdenv.lib.optionalString (kerberos != null) ${stdenv.lib.optionalString (kerberos != null)
"export KRB5_CONFIG=${kerberos}/bin/krb5-config"} "export KRB5_CONFIG=${kerberos.dev}/bin/krb5-config"}
configureFlagsArray=( configureFlagsArray=(
"--with-linux-kernel-build=$TMP/linux" "--with-linux-kernel-build=$TMP/linux"

View File

@ -6,7 +6,7 @@
, sslSupport ? false, openssl ? null , sslSupport ? false, openssl ? null
, gnutlsSupport ? false, gnutls ? null , gnutlsSupport ? false, gnutls ? null
, scpSupport ? false, libssh2 ? null , scpSupport ? false, libssh2 ? null
, gssSupport ? false, gss ? null , gssSupport ? false, kerberos ? null
, c-aresSupport ? false, c-ares ? null , c-aresSupport ? false, c-ares ? null
, brotliSupport ? false, brotli ? null , brotliSupport ? false, brotli ? null
}: }:
@ -21,6 +21,7 @@ assert gnutlsSupport -> gnutls != null;
assert scpSupport -> libssh2 != null; assert scpSupport -> libssh2 != null;
assert c-aresSupport -> c-ares != null; assert c-aresSupport -> c-ares != null;
assert brotliSupport -> brotli != null; assert brotliSupport -> brotli != null;
assert gssSupport -> kerberos != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "curl-7.57.0"; name = "curl-7.57.0";
@ -45,7 +46,7 @@ stdenv.mkDerivation rec {
optional idnSupport libidn ++ optional idnSupport libidn ++
optional ldapSupport openldap ++ optional ldapSupport openldap ++
optional zlibSupport zlib ++ optional zlibSupport zlib ++
optional gssSupport gss ++ optional gssSupport kerberos ++
optional c-aresSupport c-ares ++ optional c-aresSupport c-ares ++
optional sslSupport openssl ++ optional sslSupport openssl ++
optional gnutlsSupport gnutls ++ optional gnutlsSupport gnutls ++
@ -70,7 +71,7 @@ stdenv.mkDerivation rec {
( if brotliSupport then "--with-brotli" else "--without-brotli" ) ( if brotliSupport then "--with-brotli" else "--without-brotli" )
] ]
++ stdenv.lib.optional c-aresSupport "--enable-ares=${c-ares}" ++ stdenv.lib.optional c-aresSupport "--enable-ares=${c-ares}"
++ stdenv.lib.optional gssSupport "--with-gssapi=${gss}"; ++ stdenv.lib.optional gssSupport "--with-gssapi=${kerberos.dev}";
CXX = "c++"; CXX = "c++";
CXXCPP = "c++ -E"; CXXCPP = "c++ -E";

View File

@ -184,7 +184,7 @@ with pkgs;
# `fetchurl' downloads a file from the network. # `fetchurl' downloads a file from the network.
fetchurl = import ../build-support/fetchurl { fetchurl = import ../build-support/fetchurl {
inherit curl stdenv; inherit stdenv curl;
}; };
fetchRepoProject = callPackage ../build-support/fetchrepoproject { }; fetchRepoProject = callPackage ../build-support/fetchrepoproject { };
@ -1676,6 +1676,7 @@ with pkgs;
zlibSupport = true; zlibSupport = true;
sslSupport = zlibSupport; sslSupport = zlibSupport;
scpSupport = zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin; scpSupport = zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin;
gssSupport = true;
}; };
curl_unix_socket = callPackage ../tools/networking/curl-unix-socket rec { }; curl_unix_socket = callPackage ../tools/networking/curl-unix-socket rec { };
@ -8969,7 +8970,10 @@ with pkgs;
krb5Full = callPackage ../development/libraries/kerberos/krb5.nix { krb5Full = callPackage ../development/libraries/kerberos/krb5.nix {
inherit (darwin) bootstrap_cmds; inherit (darwin) bootstrap_cmds;
}; };
libkrb5 = krb5Full.override { type = "lib"; }; libkrb5 = krb5Full.override {
fetchurl = fetchurlBoot;
type = "lib";
};
languageMachines = recurseIntoAttrs (import ../development/libraries/languagemachines/packages.nix { inherit callPackage; }); languageMachines = recurseIntoAttrs (import ../development/libraries/languagemachines/packages.nix { inherit callPackage; });