X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/50a93adc05b611836e740c4b55571890f4c6770a..dc2f0e703aeaee8ab2d410683031007d7d983d81:/gnu/packages/openldap.scm diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm index 368a953cb5..14bf874f48 100644 --- a/gnu/packages/openldap.scm +++ b/gnu/packages/openldap.scm @@ -1,9 +1,12 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2019 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2016 Leo Famulari -;;; Copyright © 2017, 2018 Ricardo Wurmus +;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2019 Mathieu Othacehe +;;; Copyright © 2020 Lars-Dominik Braun +;;; Copyright © 2020 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,13 +32,14 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages gettext) #:use-module (gnu packages gnupg) - #:use-module (gnu packages gnuzilla) #:use-module (gnu packages groff) #:use-module (gnu packages icu4c) #:use-module (gnu packages kerberos) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages networking) + #:use-module (gnu packages nss) + #:use-module (gnu packages password-utils) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -47,8 +51,9 @@ #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages) - #:use-module ((guix licenses) #:select (openldap2.8 lgpl2.1+ gpl3+ psfl)) + #:use-module ((guix licenses) #:select (openldap2.8 lgpl2.1+ gpl3+ psfl expat)) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system python)) @@ -56,7 +61,8 @@ (define-public openldap (package (name "openldap") - (version "2.4.46") + (replacement openldap-2.4.50) + (version "2.4.49") (source (origin (method url-fetch) @@ -73,21 +79,34 @@ "openldap-release/openldap-" version ".tgz"))) (sha256 (base32 - "0bab1km8f2nan1x0zgwliknbxg0zlf2pafxrr867kblrdfwdr44s")))) + "0vp524rsngdcykf6ki7vprsyg7gj8z7hszg8xwxz50219fa1gcg3")))) (build-system gnu-build-system) (inputs `(("bdb" ,bdb-5.3) ("cyrus-sasl" ,cyrus-sasl) ("gnutls" ,gnutls) - ("groff" ,groff) - ("icu4c" ,icu4c) ("libgcrypt" ,libgcrypt) ("zlib" ,zlib))) - (native-inputs `(("libtool" ,libtool))) + (native-inputs `(("libtool" ,libtool) + ("groff" ,groff) + ("bdb" ,bdb-5.3))) (arguments `(#:tests? #f - #:configure-flags '("--disable-static") + #:configure-flags + '("--disable-static" + ,@(if (%current-target-system) + '("--with-yielding_select=yes" + "ac_cv_func_memcmp_working=yes") + '())) + ;; Disable install stripping as it breaks cross-compiling. + #:make-flags '("STRIP=") #:phases (modify-phases %standard-phases + ,@(if (%current-target-system) + '((add-before 'configure 'fix-cross-gcc + (lambda* (#:key target #:allow-other-keys) + (setenv "CC" (string-append target "-gcc")) + #t))) + '()) (add-after 'install 'patch-sasl-path ;; Give -L arguments for cyrus-sasl to avoid propagation. (lambda* (#:key inputs outputs #:allow-other-keys) @@ -108,17 +127,30 @@ (license openldap2.8) (home-page "https://www.openldap.org/"))) +(define openldap-2.4.50 + (package + (inherit openldap) + (version "2.4.50") + (source (origin + (method url-fetch) + (uri (string-append "https://www.openldap.org/software/download/" + "OpenLDAP/openldap-release/openldap-" version + ".tgz")) + (sha256 + (base32 + "1f46nlfwmys110j36sifm7ah8m8f3s10c3vaiikmmigmifapvdaw")))))) + (define-public nss-pam-ldapd (package (name "nss-pam-ldapd") - (version "0.9.10") + (version "0.9.11") (source (origin (method url-fetch) (uri (string-append "https://arthurdejong.org/nss-pam-ldapd/" "nss-pam-ldapd-" version ".tar.gz")) (sha256 (base32 - "1cqamcr6qpgwxijlr6kg7jspjamjra8w0haan0qssn0yxn95d7c0")))) + "1dna3r0q6sjhhlkhcp8x2zkslrd4y7701kk6fl5r940sdph1pmyh")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -145,7 +177,7 @@ `(("linux-pam" ,linux-pam) ("openldap" ,openldap) ("mit-krb5" ,mit-krb5) - ("python" ,python-2))) + ("python" ,python))) (home-page "https://arthurdejong.org/nss-pam-ldapd") (synopsis "NSS and PAM modules for LDAP") (description "nss-pam-ldapd provides a @dfn{Name Service Switch} (NSS) @@ -198,19 +230,23 @@ servers from Python programs.") (define-public 389-ds-base (package (name "389-ds-base") - (version "1.4.0.13") + (version "1.4.0.21") (source (origin (method url-fetch) (uri (string-append "https://releases.pagure.org/389-ds-base/" "389-ds-base-" version ".tar.bz2")) (sha256 (base32 - "01dm3zq3w5ami9pwcjbjz8wfbx9krjxybjrgc4wyhrxlzd90ylzj")))) + "1qd1ap5d5nxyiq0d19czfwc3h7iwl9lmr5sy7d7xmpr2by59aysr")))) (build-system gnu-build-system) (arguments `(#:modules ((srfi srfi-1) (guix build gnu-build-system) + ((guix build python-build-system) + #:select (python-version)) (guix build utils)) + #:imported-modules ((guix build python-build-system) + ,@%gnu-build-system-modules) #:configure-flags (list (string-append "--with-db=" (assoc-ref %build-inputs "bdb")) @@ -222,25 +258,49 @@ servers from Python programs.") (assoc-ref %build-inputs "pcre")) (string-append "--with-selinux=" (assoc-ref %build-inputs "libselinux")) + "--localstatedir=/var" + "--with-instconfigdir=/etc/dirsrv" ;; The Perl scripts are being removed in the 1.4.0 release. ;; Building them would require packaging of the outdated Mozilla ;; LDAP SDK (instead of OpenLDAP) and PerLDAP. "--disable-perl") #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-references + (lambda _ + (substitute* "include/ldaputil/certmap.h" + (("nss3/cert.h") "nss/cert.h")) + (substitute* "src/lib389/lib389/nss_ssl.py" + (("'/usr/bin/certutil'") + (string-append "'" (which "certutil") "'")) + (("'/usr/bin/c_rehash'") + (string-append "'" (which "perl") "', '" (which "c_rehash") "'"))) + #t)) + (add-after 'unpack 'overwrite-default-locations + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "src/lib389/lib389/paths.py" + (("/usr/share/dirsrv/inf/defaults.inf") + (string-append out "/share/dirsrv/inf/defaults.inf"))) + ;; This directory can only be specified relative to sysconfdir. This + ;; is used to determine where to look for installed directory + ;; servers, so in the absence of a search path it needs to be global. + (substitute* "ldap/admin/src/defaults.inf.in" + (("^initconfig_dir =.*") + "initconfig_dir = /etc/dirsrv/registry\n")) + ;; This is used to determine where to write certificate files + ;; when installing new directory server instances. + (substitute* '("src/lib389/lib389/instance/setup.py" + "src/lib389/lib389/instance/remove.py") + (("etc_dirsrv_path = .*") + "etc_dirsrv_path = '/etc/dirsrv/'\n")) + #t))) (add-after 'unpack 'fix-install-location-of-python-tools (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (get-python-version - ;; FIXME: copied from python-build-system - (lambda (python) - (let* ((version (last (string-split python #\-))) - (components (string-split version #\.)) - (major+minor (take components 2))) - (string-join major+minor ".")))) (pythondir (string-append out "/lib/python" - (get-python-version (assoc-ref inputs "python")) + (python-version (assoc-ref inputs "python")) "/site-packages/"))) ;; Install directory must be on PYTHONPATH. (setenv "PYTHONPATH" @@ -286,6 +346,7 @@ servers from Python programs.") #t))))) (inputs `(("bdb" ,bdb) + ("cracklib" ,cracklib) ("cyrus-sasl" ,cyrus-sasl) ("gnutls" ,gnutls) ("httpd" ,httpd) @@ -297,6 +358,7 @@ servers from Python programs.") ("net-snmp" ,net-snmp) ("nspr" ,nspr) ("nss" ,nss) + ("nss:bin" ,nss "bin") ; for certutil ("openldap" ,openldap) ("openssl" ,openssl) ; #included by net-snmp ("pcre" ,pcre) @@ -336,3 +398,30 @@ Other features include: @end enumerate\n") ;; GPLv3+ with OpenSSL linking exception. (license gpl3+))) + +(define-public python-bonsai + (package + (name "python-bonsai") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bonsai" version)) + (sha256 + (base32 + "013bl6h1m3f7vg1lk89d4vi28wbf31zdcs4f9g8css7ngx63v6px")))) + (build-system python-build-system) + (inputs + `(("mit-krb5" ,mit-krb5) + ("cyrus-sasl" ,cyrus-sasl) + ("openldap" ,openldap))) + ;; disabling tests, since they require docker and extensive setup + (arguments `(#:tests? #f)) + (home-page "https://github.com/noirello/bonsai") + (synopsis "Access LDAP directory servers from Python") + (description + "This is a module for handling LDAP operations in Python. LDAP entries +are mapped to a special Python case-insensitive dictionary, tracking the +changes of the dictionary to modify the entry on the server easily.") + (license expat))) +