diff options
author | William A. Kennington III <william@wkennington.com> | 2015-05-28 00:53:47 -0700 |
---|---|---|
committer | William A. Kennington III <william@wkennington.com> | 2015-05-28 02:20:08 -0700 |
commit | 85932bc5a998060e76090273b51d35133a7a2dbb (patch) | |
tree | 7127b2ef72a1ef9d6286f0e3c64a71c44f582d5a /pkgs/development/libraries/kerberos | |
parent | 4389ae5208ec9b7e80b3b0e4ee10e2709333519f (diff) | |
download | nixlib-85932bc5a998060e76090273b51d35133a7a2dbb.tar nixlib-85932bc5a998060e76090273b51d35133a7a2dbb.tar.gz nixlib-85932bc5a998060e76090273b51d35133a7a2dbb.tar.bz2 nixlib-85932bc5a998060e76090273b51d35133a7a2dbb.tar.lz nixlib-85932bc5a998060e76090273b51d35133a7a2dbb.tar.xz nixlib-85932bc5a998060e76090273b51d35133a7a2dbb.tar.zst nixlib-85932bc5a998060e76090273b51d35133a7a2dbb.zip |
krb5: 1.13.1 -> 1.13.2
Diffstat (limited to 'pkgs/development/libraries/kerberos')
-rw-r--r-- | pkgs/development/libraries/kerberos/krb5.nix | 120 |
1 files changed, 103 insertions, 17 deletions
diff --git a/pkgs/development/libraries/kerberos/krb5.nix b/pkgs/development/libraries/kerberos/krb5.nix index 41c570ee554e..c60ff03aa67a 100644 --- a/pkgs/development/libraries/kerberos/krb5.nix +++ b/pkgs/development/libraries/kerberos/krb5.nix @@ -1,41 +1,127 @@ -{ stdenv, fetchurl, pkgconfig, perl, ncurses, yacc, openssl, openldap, bootstrap_cmds }: +{ stdenv, fetchurl, pkgconfig, perl +, yacc, bootstrap_cmds +# Optional Dependencies +, libedit ? null, readline ? null, ncurses ? null, libverto ? null +, openldap ? null, db ? null + +# Crypto Dependencies +, openssl ? null, nss ? null, nspr ? null + +# Extra Arguments +, prefix ? "" +}: + +with stdenv; let - pname = "krb5"; - version = "1.13.1"; - name = "${pname}-${version}"; - webpage = http://web.mit.edu/kerberos/; -in + libOnly = prefix == "lib"; + + optOpenssl = shouldUsePkg openssl; + optNss = shouldUsePkg nss; + optNspr = shouldUsePkg nspr; + optLibedit = if libOnly then null else shouldUsePkg libedit; + optReadline = if libOnly then null else shouldUsePkg readline; + optNcurses = if libOnly then null else shouldUsePkg ncurses; + optLibverto = shouldUsePkg libverto; + optOpenldap = if libOnly then null else shouldUsePkg openldap; + optDb = if libOnly then null else shouldUsePkg db; + + # Prefer the openssl implementation + cryptoStr = if optOpenssl != null then "openssl" + else if optNss != null && optNspr != null then "nss" + else "builtin"; + + cryptoInputs = { + "openssl" = [ optOpenssl ]; + "nss" = [ optNss optNspr ]; + "builtin" = [ ]; + }.${cryptoStr}; + + tlsStr = if optOpenssl != null then "openssl" + else "no"; -stdenv.mkDerivation (rec { - inherit name; + tlsInputs = { + "openssl" = [ optOpenssl ]; + "no" = [ ]; + }.${tlsStr}; + + # Libedit is less buggy in krb5, readline breaks tests + lineParserStr = if optLibedit != null then "libedit" + else if optReadline != null && optNcurses != null then "readline" + else "no"; + + lineParserInputs = { + "libedit" = [ optLibedit ]; + "readline" = [ optReadline optNcurses ]; + "no" = [ ]; + }.${lineParserStr}; +in +with stdenv.lib; +stdenv.mkDerivation rec { + name = "${prefix}krb5-${version}"; + version = "1.13.2"; src = fetchurl { - url = "${webpage}dist/krb5/1.13/${name}-signed.tar"; - sha256 = "0gk6jvr64rf6l4xcyxn8i3fr5d1j7dhqvwyv3vw2qdkzz7yjkxjd"; + url = "${meta.homepage}dist/krb5/1.13/krb5-${version}-signed.tar"; + sha256 = "1qbdzyrws7d0q4filsibh28z54pd5l987jr0ygv43iq9085w6a75"; }; - buildInputs = [ pkgconfig perl ncurses yacc openssl openldap ] + nativeBuildInputs = [ pkgconfig perl ]; + buildInputs = [ yacc optOpenssl optLibverto optOpenldap ] + ++ cryptoInputs ++ tlsInputs ++ lineParserInputs # Provides the mig command used by the build scripts - ++ stdenv.lib.optional stdenv.isDarwin bootstrap_cmds ; + ++ stdenv.lib.optional stdenv.isDarwin bootstrap_cmds; unpackPhase = '' tar -xf $src - tar -xzf ${name}.tar.gz - cd ${name}/src + tar -xzf krb5-${version}.tar.gz + cd krb5-${version}/src ''; - configureFlags = [ "--with-tcl=no" ]; + configureFlags = [ + (mkOther "sysconfdir" "/etc") + (mkOther "localstatedir" "/var") + (mkEnable false "athena" null) + (mkWith false "vague-errors" null) + (mkWith true "crypto-impl" cryptoStr) + (mkWith true "pkinit-crypto-impl" cryptoStr) + (mkWith true "tls-impl" tlsStr) + (mkEnable true "aesni" null) + (mkEnable true "kdc-lookaside-cache" null) + (mkEnable (optOpenssl != null) "pkinit" null) + (mkWith (lineParserStr == "libedit") "libedit" null) + (mkWith (lineParserStr == "readline") "readline" null) + (mkWith (optLibverto != null) "system-verto" null) + (mkWith (optOpenldap != null) "ldap" null) + (mkWith false "tcl" null) + (mkWith (optDb != null) "system-db" null) + ]; + + buildPhase = optionalString libOnly '' + (cd util; make) + (cd include; make) + (cd lib; make) + (cd build-tools; make) + ''; + + installPhase = optionalString libOnly '' + mkdir -p $out/{bin,include/{gssapi,gssrpc,kadm5,krb5},lib/pkgconfig,sbin,share/{et,man/man1}} + (cd util; make install) + (cd include; make install) + (cd lib; make install) + (cd build-tools; make install) + rm -rf $out/{bin,sbin,share} + ''; enableParallelBuilding = true; meta = with stdenv.lib; { + homepage = http://web.mit.edu/kerberos/; description = "MIT Kerberos 5"; - homepage = webpage; license = "MPL"; platforms = platforms.unix; maintainers = with maintainers; [ wkennington ]; }; passthru.implementation = "krb5"; -}) +} |