@@ -1,127 +1,41 @@
|
||||
{ stdenv, fetchurl, pkgconfig, perl
|
||||
, yacc, bootstrap_cmds
|
||||
{ stdenv, fetchurl, pkgconfig, perl, ncurses, yacc, openssl, openldap, 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
|
||||
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";
|
||||
|
||||
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};
|
||||
pname = "krb5";
|
||||
version = "1.13.1";
|
||||
name = "${pname}-${version}";
|
||||
webpage = http://web.mit.edu/kerberos/;
|
||||
in
|
||||
with stdenv.lib;
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${prefix}krb5-${version}";
|
||||
version = "1.13.2";
|
||||
|
||||
stdenv.mkDerivation (rec {
|
||||
inherit name;
|
||||
|
||||
src = fetchurl {
|
||||
url = "${meta.homepage}dist/krb5/1.13/krb5-${version}-signed.tar";
|
||||
sha256 = "1qbdzyrws7d0q4filsibh28z54pd5l987jr0ygv43iq9085w6a75";
|
||||
url = "${webpage}dist/krb5/1.13/${name}-signed.tar";
|
||||
sha256 = "0gk6jvr64rf6l4xcyxn8i3fr5d1j7dhqvwyv3vw2qdkzz7yjkxjd";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig perl ];
|
||||
buildInputs = [ yacc optOpenssl optLibverto optOpenldap ]
|
||||
++ cryptoInputs ++ tlsInputs ++ lineParserInputs
|
||||
buildInputs = [ pkgconfig perl ncurses yacc openssl openldap ]
|
||||
# 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 krb5-${version}.tar.gz
|
||||
cd krb5-${version}/src
|
||||
tar -xzf ${name}.tar.gz
|
||||
cd ${name}/src
|
||||
'';
|
||||
|
||||
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}
|
||||
'';
|
||||
configureFlags = [ "--with-tcl=no" ];
|
||||
|
||||
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";
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ fetchurl, stdenv, libkrb5 }:
|
||||
{ fetchurl, stdenv, krb5 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "libtirpc-0.3.0";
|
||||
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "07d1wlfzf3ia09mjn3f3ay8isk7yx4a6ckfkzx5khnqlc7amkzna";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ libkrb5 ];
|
||||
propagatedBuildInputs = [ krb5 ];
|
||||
|
||||
# http://www.sourcemage.org/projects/grimoire/repository/revisions/d6344b6a3a94b88ed67925a474de5930803acfbf
|
||||
preConfigure = ''
|
||||
|
||||
Reference in New Issue
Block a user