diff options
Diffstat (limited to 'gnu/packages/kerberos.scm')
-rw-r--r-- | gnu/packages/kerberos.scm | 138 |
1 files changed, 78 insertions, 60 deletions
diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm index 92cc84b673..dc05c710a6 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, 2021 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,20 @@ #: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") + (version "1.19.2") (source (origin (method url-fetch) (uri (list @@ -63,15 +67,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")))) + "0snz1jm2w4dkk65zcz953jmmv9mqa30fanch2bk8r3rs9vp3yi8h")))) (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 +101,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,28 +120,6 @@ 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-public shishi (package (name "shishi") @@ -208,34 +186,72 @@ After installation, the system administrator should generate keys using (substitute* "configure" (("User=.*$") "User=Guix\n") (("Host=.*$") "Host=GNU") - (("Date=.*$") "Date=2019\n")) - #t)))) + (("Date=.*$") "Date=2019\n")))))) (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"))))))) (add-before 'check 'pre-check (lambda _ ;; For 'getxxyyy-test'. @@ -245,16 +261,18 @@ After installation, the system administrator should generate keys using ;; FIXME: figure out why 'kdc' tests fail. (with-output-to-file "tests/db/have-db.in" (lambda () - (format #t "#!~a~%exit 1~%" (which "sh")))) - #t))) + (format #t "#!~a~%exit 1~%" (which "sh"))))))) ;; Tests fail when run in parallel. #:parallel-tests? #f)) (native-inputs `(("e2fsprogs" ,e2fsprogs) ;for 'compile_et' ("texinfo" ,texinfo) - ("unzip" ,unzip))) ;for tests + ("unzip" ,unzip) ;for tests + ("perl" ,perl))) (inputs `(("readline" ,readline) + ("bash-minimal" ,bash-minimal) ("bdb" ,bdb) ("e2fsprogs" ,e2fsprogs) ;for libcom_err + ("mit-krb5" ,mit-krb5) ("sqlite" ,sqlite))) (home-page "http://www.h5l.org/") (synopsis "Kerberos 5 network authentication") |