summaryrefslogtreecommitdiff
path: root/gnu/packages/openldap.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/openldap.scm')
-rw-r--r--gnu/packages/openldap.scm40
1 files changed, 37 insertions, 3 deletions
diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm
index 368a953cb5..e0190d2c0e 100644
--- a/gnu/packages/openldap.scm
+++ b/gnu/packages/openldap.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
@@ -36,6 +36,7 @@
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
#:use-module (gnu packages networking)
+ #:use-module (gnu packages password-utils)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -198,14 +199,14 @@ 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)
@@ -222,12 +223,43 @@ 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"))
@@ -286,6 +318,7 @@ servers from Python programs.")
#t)))))
(inputs
`(("bdb" ,bdb)
+ ("cracklib" ,cracklib)
("cyrus-sasl" ,cyrus-sasl)
("gnutls" ,gnutls)
("httpd" ,httpd)
@@ -297,6 +330,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)