summary refs log tree commit diff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2019-03-20 12:17:27 +0100
committerRicardo Wurmus <rekado@elephly.net>2019-03-20 12:19:56 +0100
commitaf184b68e78aa51b6ff50b7327dfbbdb1d6e6843 (patch)
treedac2e7a991fb7ea8f4fa7d4a9b47e87ea3e9af78
parent19a0a060d2d9540d0f151821227ba8b2fbbd2ef1 (diff)
downloadguix-af184b68e78aa51b6ff50b7327dfbbdb1d6e6843.tar.gz
gnu: 389-ds-base: Use more global directories.
* gnu/packages/openldap.scm (389-ds-base)[arguments]: Pass
"with-instconfigdir"; add phase "overwrite-default-locations" to overwrite
defaults for "initconfig_dir", the certificate location, and the location of
the defaults file.
-rw-r--r--gnu/packages/openldap.scm20
1 files changed, 20 insertions, 0 deletions
diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm
index 6426c3067e..e0190d2c0e 100644
--- a/gnu/packages/openldap.scm
+++ b/gnu/packages/openldap.scm
@@ -224,6 +224,7 @@ servers from Python programs.")
              (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.
@@ -240,6 +241,25 @@ servers from Python programs.")
                (("'/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"))