about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/kerberos
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-12-06 19:57:55 +0000
committerAlyssa Ross <hi@alyssa.is>2023-02-08 13:48:30 +0000
commitbf3aadfdd39aa197e18bade671fab6726349ffa4 (patch)
tree698567af766ed441d757b57a7b21e68d4a342a2b /nixpkgs/pkgs/development/libraries/kerberos
parentf4afc5a01d9539ce09e47494e679c51f80723d07 (diff)
parent99665eb45f58d959d2cb9e49ddb960c79d596f33 (diff)
downloadnixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.gz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.bz2
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.lz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.xz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.zst
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.zip
Merge commit '99665eb45f58d959d2cb9e49ddb960c79d596f33'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/kerberos')
-rw-r--r--nixpkgs/pkgs/development/libraries/kerberos/krb5.nix64
1 files changed, 37 insertions, 27 deletions
diff --git a/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix b/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix
index c632c2fdac9e..7397824f9a76 100644
--- a/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix
+++ b/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchurl, pkg-config, perl, bison, bootstrap_cmds
 , openssl, openldap, libedit, keyutils
+, nixosTests
 
 # Extra Arguments
 , type ? ""
@@ -16,56 +17,62 @@
 let
   libOnly = type == "lib";
 in
-with lib;
 stdenv.mkDerivation rec {
-  name = "${type}krb5-${version}";
-  version = "1.19.2";
+  pname = "${type}krb5";
+  version = "1.20";
 
   src = fetchurl {
-    url = "https://kerberos.org/dist/krb5/${versions.majorMinor version}/krb5-${version}.tar.gz";
-    sha256 = "0snz1jm2w4dkk65zcz953jmmv9mqa30fanch2bk8r3rs9vp3yi8h";
+    url = "https://kerberos.org/dist/krb5/${lib.versions.majorMinor version}/krb5-${version}.tar.gz";
+    sha256 = "sha256-fgIr3TyFGDAXP5+qoAaiMKDg/a1MlT6Fv/S/DaA24S8";
   };
 
   outputs = [ "out" "dev" ];
 
-  configureFlags = [ "--with-tcl=no" "--localstatedir=/var/lib"]
+  configureFlags = [ "--localstatedir=/var/lib" ]
     # krb5's ./configure does not allow passing --enable-shared and --enable-static at the same time.
     # See https://bbs.archlinux.org/viewtopic.php?pid=1576737#p1576737
-    ++ optional staticOnly [ "--enable-static" "--disable-shared" ]
-    ++ optional stdenv.isFreeBSD ''WARN_CFLAGS=""''
-    ++ optionals (stdenv.buildPlatform != stdenv.hostPlatform)
+    ++ lib.optional staticOnly [ "--enable-static" "--disable-shared" ]
+    ++ lib.optional stdenv.isFreeBSD ''WARN_CFLAGS=""''
+    ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform)
        [ "krb5_cv_attr_constructor_destructor=yes,yes"
          "ac_cv_func_regcomp=yes"
          "ac_cv_printf_positional=yes"
        ];
 
   nativeBuildInputs = [ pkg-config perl ]
-    ++ optional (!libOnly) bison
+    ++ lib.optional (!libOnly) bison
     # Provides the mig command used by the build scripts
-    ++ optional stdenv.isDarwin bootstrap_cmds;
+    ++ lib.optional stdenv.isDarwin bootstrap_cmds;
 
   buildInputs = [ openssl ]
-    ++ optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.libc != "bionic" && !(stdenv.hostPlatform.useLLVM or false)) [ keyutils ]
-    ++ optionals (!libOnly) [ openldap libedit ];
+    ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.libc != "bionic" && !(stdenv.hostPlatform.useLLVM or false)) [ keyutils ]
+    ++ lib.optionals (!libOnly) [ openldap libedit ];
 
-  preConfigure = "cd ./src";
+  sourceRoot = "krb5-${version}/src";
+
+  libFolders = [ "util" "include" "lib" "build-tools" ];
+
+  buildPhase = lib.optionalString libOnly ''
+    runHook preBuild
 
-  buildPhase = optionalString libOnly ''
     MAKE="make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES"
-    (cd util; $MAKE)
-    (cd include; $MAKE)
-    (cd lib; $MAKE)
-    (cd build-tools; $MAKE)
+    for folder in $libFolders; do
+      $MAKE -C $folder
+    done
+
+    runHook postBuild
   '';
 
-  installPhase = optionalString libOnly ''
+  installPhase = lib.optionalString libOnly ''
+    runHook preInstall
+
     mkdir -p "$out"/{bin,sbin,lib/pkgconfig,share/{et,man/man1}} \
       "$dev"/include/{gssapi,gssrpc,kadm5,krb5}
-    (cd util; $MAKE install)
-    (cd include; $MAKE install)
-    (cd lib; $MAKE install)
-    (cd build-tools; $MAKE install)
-    ${postInstall}
+    for folder in $libFolders; do
+      $MAKE -C $folder install
+    done
+
+    runHook postInstall
   '';
 
   # not via outputBin, due to reference from libkrb5.so
@@ -76,12 +83,15 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
   doCheck = false; # fails with "No suitable file for testing purposes"
 
-  meta = {
+  meta = with lib; {
     description = "MIT Kerberos 5";
     homepage = "http://web.mit.edu/kerberos/";
     license = licenses.mit;
     platforms = platforms.unix ++ platforms.windows;
   };
 
-  passthru.implementation = "krb5";
+  passthru = {
+    implementation = "krb5";
+    tests = { inherit (nixosTests) kerberos; };
+  };
 }