diff options
Diffstat (limited to 'gnu/packages/kerberos.scm')
-rw-r--r-- | gnu/packages/kerberos.scm | 153 |
1 files changed, 98 insertions, 55 deletions
diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm index 92cc84b673..82609ce66e 100644 --- a/gnu/packages/kerberos.scm +++ b/gnu/packages/kerberos.scm @@ -10,6 +10,8 @@ ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +31,7 @@ (define-module (gnu packages kerberos) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages dbm) #:use-module (gnu packages perl) @@ -41,19 +44,21 @@ #:use-module (gnu packages compression) #:use-module (gnu packages readline) #:use-module (gnu packages sqlite) + #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix utils) #:use-module (guix build-system gnu)) (define-public mit-krb5 (package (name "mit-krb5") - (replacement mit-krb5-1.18.4) - (version "1.18") + (replacement mit-krb5-1.19.2) + (version "1.19.1") (source (origin (method url-fetch) (uri (list @@ -63,15 +68,17 @@ (string-append "https://kerberos.org/dist/krb5/" (version-major+minor version) "/krb5-" version ".tar.gz"))) - (patches (search-patches "mit-krb5-qualify-short-hostnames.patch" - "mit-krb5-hurd.patch")) + (patches (search-patches "mit-krb5-hurd.patch")) (sha256 (base32 - "121c5xsy3x0i4wdkrpw62yhvji6virbh6n30ypazkp0isws3k4bk")))) + "02xjpsfy84l6v7vjlxzhrl6mx2zrmxz0v01w2j33bv73nxzgh5ps")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) - ("perl" ,perl))) + ("perl" ,perl) + ("tcl" ,tcl))) ;required for some tests + (inputs + `(("openssl" ,openssl))) (arguments `(;; XXX: On 32-bit systems, 'kdb5_util' hangs on an fcntl/F_SETLKW call ;; while running the tests in 'src/tests'. Also disable tests when @@ -95,20 +102,14 @@ (modify-phases %standard-phases (add-after 'unpack 'enter-source-directory (lambda _ - (chdir "src") - #t)) + (chdir "src"))) (add-before 'check 'pre-check (lambda* (#:key inputs native-inputs #:allow-other-keys) (let ((perl (assoc-ref (or native-inputs inputs) "perl"))) (substitute* "plugins/kdb/db2/libdb2/test/run.test" (("/bin/cat") (string-append perl "/bin/perl")) (("D/bin/sh") (string-append "D" (which "sh"))) - (("bindir=/bin/.") (string-append "bindir=" perl "/bin")))) - - ;; avoid service names since /etc/services is unavailable - (substitute* "tests/resolve/Makefile" - (("-p telnet") "-p 23")) - #t))))) + (("bindir=/bin/.") (string-append "bindir=" perl "/bin"))))))))) (synopsis "MIT Kerberos 5") (description "Massachusetts Institute of Technology implementation of Kerberos. @@ -120,27 +121,22 @@ cryptography.") (home-page "https://web.mit.edu/kerberos/") (properties '((cpe-name . "kerberos"))))) -(define-public mit-krb5-1.18.4 - ;; Hide the package to avoid displaying the confusing "1.1a" version in the - ;; user interface. - (hidden-package - (package - (inherit mit-krb5) - ; version 1.18.4 - (version "1.1a") - (source (origin - (method url-fetch) - (uri (list - (string-append "https://web.mit.edu/kerberos/dist/krb5/" - "1.18" - "/krb5-1.18.4.tar.gz") - (string-append "https://kerberos.org/dist/krb5/" - "1.18" - "/krb5-1.18.4.tar.gz"))) - (patches (search-patches "mit-krb5-hurd.patch")) - (sha256 - (base32 - "1j4zm5npv3yxrwrsdwlxias0ycj4qfxzgnz0h9zffla7b4pmw236"))))))) +(define mit-krb5-1.19.2 + (package + (inherit mit-krb5) + (version "1.19.2") + (source (origin + (inherit (package-source mit-krb5)) + (uri (list + (string-append "https://web.mit.edu/kerberos/dist/krb5/" + (version-major+minor version) + "/krb5-" version ".tar.gz") + (string-append "https://kerberos.org/dist/krb5/" + (version-major+minor version) + "/krb5-" version ".tar.gz"))) + (sha256 + (base32 + "0snz1jm2w4dkk65zcz953jmmv9mqa30fanch2bk8r3rs9vp3yi8h")))))) (define-public shishi (package @@ -212,30 +208,70 @@ After installation, the system administrator should generate keys using #t)))) (build-system gnu-build-system) (arguments - '(#:configure-flags (list - ;; Avoid 7 MiB of .a files. - "--disable-static" + `(#:configure-flags + ,#~(list + ;; Avoid 7 MiB of .a files. + "--disable-static" - ;; Do not build libedit. - (string-append - "--with-readline-lib=" - (assoc-ref %build-inputs "readline") "/lib") - (string-append - "--with-readline-include=" - (assoc-ref %build-inputs "readline") "/include") + ;; Do not build libedit. + (string-append + "--with-readline-lib=" + (assoc-ref %build-inputs "readline") "/lib") + (string-append + "--with-readline-include=" + (assoc-ref %build-inputs "readline") "/include") - ;; Do not build sqlite. - (string-append - "--with-sqlite3=" - (assoc-ref %build-inputs "sqlite"))) + ;; Do not build sqlite. + (string-append + "--with-sqlite3=" + (assoc-ref %build-inputs "sqlite")) + #$@(if (%current-target-system) + ;; The configure script is too pessimistic. + ;; Setting this also resolves a linking error. + #~("ac_cv_func_getpwnam_r_posix=yes" + ;; Allow 'slc' and 'asn1_compile' to be found. + (string-append "--with-cross-tools=" + #+(file-append this-package + "/libexec/heimdal"))) + #~())) #:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure - (lambda _ - (substitute* '("appl/afsutil/pagsh.c" - "tools/Makefile.in") - (("/bin/sh") (which "sh"))) - #t)) + ;; TODO(core-updates): Unconditionally use the + ;; %current-target-system branch. + (,(if (%current-target-system) + 'lambda* + 'lambda) + ,(if (%current-target-system) + '(#:key inputs #:allow-other-keys) + '_) + ,@(if (%current-target-system) + `((substitute* "configure" + ;; The e2fsprogs input is included for libcom_err, + ;; let's use it even if cross-compiling. + (("test \"\\$\\{krb_cv_com_err\\}\" = \"yes\"") + ":") + ;; Our 'compile_et' is not in --with-cross-tools, + ;; which confuses heimdal. + (("ac_cv_prog_COMPILE_ET=\\$\\{with_cross_tools\\}compile_et") + "ac_cv_PROG_COMPILE_ET=compile_et"))) + '()) + ,@(if (%current-target-system) + '((substitute* '("appl/afsutil/pagsh.c" "appl/su/su.c") + (("/bin/sh") + (search-input-file inputs "bin/sh")) + ;; Use the cross-compiled bash instead of the + ;; native bash (XXX shouldn't _PATH_BSHELL point + ;; to a cross-compiled bash?). + (("_PATH_BSHELL") + (string-append + "\"" (search-input-file inputs "bin/sh") "\""))) + (substitute* '("tools/Makefile.in") + (("/bin/sh") (which "sh")))) + '((substitute* '("appl/afsutil/pagsh.c" + "tools/Makefile.in") + (("/bin/sh") (which "sh"))) + #t)))) (add-before 'check 'pre-check (lambda _ ;; For 'getxxyyy-test'. @@ -251,8 +287,15 @@ After installation, the system administrator should generate keys using #:parallel-tests? #f)) (native-inputs `(("e2fsprogs" ,e2fsprogs) ;for 'compile_et' ("texinfo" ,texinfo) - ("unzip" ,unzip))) ;for tests + ("unzip" ,unzip) ;for tests + ,@(if (%current-target-system) + `(("perl" ,perl)) + '()))) (inputs `(("readline" ,readline) + ;; TODO(core-updates): Make this input unconditional. + ,@(if (%current-target-system) + `(("bash-minimal" ,bash-minimal)) + '()) ("bdb" ,bdb) ("e2fsprogs" ,e2fsprogs) ;for libcom_err ("sqlite" ,sqlite))) |