r26609: Try a few more variatations to get the selftest to run against
[samba.git] / source / selftest / env / Samba4.pm
index f2ba37f618961ec4233dc5e28733228b3eb9668e..61edeb388548d7601b3b186dce619b9f83489b20 100644 (file)
@@ -46,7 +46,7 @@ sub slapd_start($$)
        # running slapd in the background means it stays in the same process group, so it can be
        # killed by timelimit
        if ($self->{ldap} eq "fedora-ds") {
-               system("$ENV{FEDORA_DS_PREFIX}/sbin/ns-slapd -D $env_vars->{FEDORA_DS_DIR} -d0 -i $env_vars->{FEDORA_DS_PIDFILE}> $env_vars->{LDAPDIR}/logs 2>&1 &");
+               system("$ENV{FEDORA_DS_ROOT}/sbin/ns-slapd -D $env_vars->{FEDORA_DS_DIR} -d0 -i $env_vars->{FEDORA_DS_PIDFILE}> $env_vars->{LDAPDIR}/logs 2>&1 &");
        } elsif ($self->{ldap} eq "openldap") {
                openldap_start($env_vars->{SLAPD_CONF}, $uri, "$env_vars->{LDAPDIR}/logs");
        }
@@ -204,10 +204,10 @@ sub mk_fedora_ds($$$)
        system("$self->{bindir}/ad2oLschema $configuration -H $ldapdir/schema-tmp.ldb --option=convert:target=fedora-ds -I $self->{setupdir}/schema-map-fedora-ds-1.0 -O $ldapdir/99_ad.ldif >&2") == 0 or die("schema conversion for Fedora DS failed");
 
 my $dir = getcwd();
-chdir "$ENV{FEDORA_DS_PREFIX}/bin" || die;
-       if (system("perl $ENV{FEDORA_DS_PREFIX}/sbin/setup-ds.pl --silent --file=$fedora_ds_inf >&2") != 0) {
+chdir "$ENV{FEDORA_DS_ROOT}/bin" || die;
+       if (system("perl $ENV{FEDORA_DS_ROOT}/sbin/setup-ds.pl --silent --file=$fedora_ds_inf >&2") != 0) {
             chdir $dir;
-            die("perl $ENV{FEDORA_DS_PREFIX}/sbin/setup-ds.pl --silent --file=$fedora_ds_inf FAILED: $?");
+            die("perl $ENV{FEDORA_DS_ROOT}/sbin/setup-ds.pl --silent --file=$fedora_ds_inf FAILED: $?");
         }
         chdir $dir || die;
 
@@ -227,22 +227,45 @@ sub mk_openldap($$$)
 
        my $oldpath = $ENV{PATH};
        my $olpath = "";
-       my $olroot = "";
-       if (defined $ENV{OPENLDAP_ROOT}) {
+       my $olroot = "";
+       if (defined $ENV{OPENLDAP_ROOT}) {
                $olroot = "$ENV{OPENLDAP_ROOT}";
-                       $olpath = "$olroot/libexec:$olroot/sbin:";
+              $olpath = "$olroot/libexec:$olroot/sbin:";
        }
        $ENV{PATH} = "$olpath/usr/local/sbin:/usr/sbin:/sbin:$ENV{PATH}";
 
        unlink($modconf);
        open(CONF, ">$modconf"); close(CONF);
 
+       if (system("slaptest -u -f $slapd_conf >&2") != 0) {
+               open(CONF, ">$modconf"); 
+               # enable slapd modules
+               print CONF "
+modulepath      $olroot/libexec/openldap
+moduleload     syncprov
+moduleload      memberof
+";
+               close(CONF);
+       }
+       if (system("slaptest -u -f $slapd_conf >&2") != 0) {
+               open(CONF, ">$modconf"); 
+               # enable slapd modules
+               print CONF "
+modulepath      $olroot/libexec/openldap
+moduleload     back_hdb
+moduleload     syncprov
+moduleload      memberof
+";
+               close(CONF);
+       }
+
        if (system("slaptest -u -f $slapd_conf >&2") != 0) {
                open(CONF, ">$modconf"); 
                # enable slapd modules
                print CONF "
 moduleload     back_hdb
 moduleload     syncprov
+moduleload      memberof
 ";
                close(CONF);
        }
@@ -254,6 +277,7 @@ moduleload  syncprov
 modulepath     /usr/lib/ldap
 moduleload     back_hdb
 moduleload     syncprov
+moduleload      memberof
 ";
                close(CONF);
        }
@@ -264,6 +288,7 @@ moduleload  syncprov
                print CONF "
 modulepath     /usr/lib/openldap
 moduleload     syncprov
+moduleload      memberof
 ";
                close(CONF);
        }
@@ -274,6 +299,7 @@ moduleload  syncprov
                print CONF "
 modulepath     /usr/lib64/openldap
 moduleload     syncprov
+moduleload      memberof
 ";
                close(CONF);
        }
@@ -629,6 +655,7 @@ nogroup:x:65534:nobody
        push (@provision_options, "NSS_WRAPPER_PASSWD=\"$nsswrap_passwd\"");
        push (@provision_options, "NSS_WRAPPER_GROUP=\"$nsswrap_group\"");
        if (defined($ENV{PROVISION_PYTHON})) {
+               push (@provision_options, "$self->{bindir}/smbpython");
                push (@provision_options, "$self->{setupdir}/provision.py");
        } else {
                push (@provision_options, "$self->{bindir}/smbscript");