krb5 commit [krb5-1.15]: Allow slapd path configuration in t_kdb.py

Tom Yu <[email protected]>
Newsgroups gmane.comp.encryption.kerberos.cvs
Message-ID <[email protected]>
https://github.com/krb5/krb5/commit/4bda951811e3a7b17a3124ac79378797a8a425b8
commit 4bda951811e3a7b17a3124ac79378797a8a425b8
Author: Greg Hudson <[email protected]>
Date:   Sun Nov 27 18:37:12 2016 -0500

    Allow slapd path configuration in t_kdb.py
    
    The upstream OpenLDAP installs slapd in libexec, which is not
    typically in the path.  Also, copying the binary can sometimes cause
    it to fail; for instance, in the OpenCSW package,
    /opt/csw/libexec/slapd is a script which chooses a binary based on the
    system architecture and the path to the script.  Allow the test runner
    to set the SLAPD environment variable to specify the slapd location
    and avoid the copy.
    
    (cherry picked from commit 9290e52b7f206dcbfd9dd5d873cf9379cb9de760)
    
    ticket: 8521 (new)
    tags: pullup
    target_version: 1.15-next
    target_version: 1.14-next
    version_fixed: 1.15

 src/tests/t_kdb.py |   17 ++++++++++-------
 1 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/tests/t_kdb.py b/src/tests/t_kdb.py
index 5c17257..185225a 100755
--- a/src/tests/t_kdb.py
+++ b/src/tests/t_kdb.py
@@ -13,12 +13,10 @@ if (not os.path.exists(os.path.join(plugins, 'kdb', 'kldap.so')) and
     not os.path.exists(os.path.join(buildtop, 'lib', 'libkdb_ldap.a'))):
     skip_rest('LDAP KDB tests', 'LDAP KDB module not built')
 
-system_slapd = which('slapd')
-if not system_slapd:
+if 'SLAPD' not in os.environ and not which('slapd'):
     skip_rest('LDAP KDB tests', 'slapd not found')
 
 ldapdir = os.path.abspath('ldap')
-slapd = os.path.join(ldapdir, 'slapd')
 dbdir = os.path.join(ldapdir, 'ldap')
 slapd_conf = os.path.join(ldapdir, 'slapd.conf')
 slapd_out = os.path.join(ldapdir, 'slapd.out')
@@ -36,10 +34,15 @@ shutil.rmtree(ldapdir, True)
 os.mkdir(ldapdir)
 os.mkdir(dbdir)
 
-# Some Linux installations have AppArmor or similar restrictions on
-# the slapd binary, which would prevent it from accessing the build
-# directory.  Try to defeat this by copying the binary.
-shutil.copy(system_slapd, slapd)
+if 'SLAPD' in os.environ:
+    slapd = os.environ['SLAPD']
+else:
+    # Some Linux installations have AppArmor or similar restrictions
+    # on the slapd binary, which would prevent it from accessing the
+    # build directory.  Try to defeat this by copying the binary.
+    system_slapd = which('slapd')
+    slapd = os.path.join(ldapdir, 'slapd')
+    shutil.copy(system_slapd, slapd)
 
 # Find the core schema file if we can.
 ldap_homes = ['/etc/ldap', '/etc/openldap', '/usr/local/etc/openldap',
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.