summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWes Cilldhaire <wes@sol1.com.au>2016-03-01 14:03:14 +1100
committerWes Cilldhaire <wes@sol1.com.au>2016-03-01 14:03:14 +1100
commit144dd19d2673d21893ab31bda4651de7efc66d1c (patch)
tree5f4e8f794d5ba6fba826006361e6e7f3d0476170 /net-nds
parentdev-ruby/sawyer: fix bug 575202 (diff)
downloadgentoo-144dd19d2673d21893ab31bda4651de7efc66d1c.tar.gz
gentoo-144dd19d2673d21893ab31bda4651de7efc66d1c.tar.bz2
gentoo-144dd19d2673d21893ab31bda4651de7efc66d1c.zip
net-nds/389-ds-base: Version bump to 1.3.4.8
Deps on db4.8 specifically, being the current stable, instead of trying to determine best installed version <6 at configure time, as discussed with various devs on irc. Additionally, 1.3.4.7 is vuln to CVE-2016-0741 and will be removed in the next commit. Upstream has advised that they will not be providing a patch against 1.3.4.7 and request users to upgrade to 1.3.4.8 Acked-by: wibrown@redhat.com Package-Manager: portage-2.2.27
Diffstat (limited to 'net-nds')
-rw-r--r--net-nds/389-ds-base/389-ds-base-1.3.4.8.ebuild143
-rw-r--r--net-nds/389-ds-base/Manifest1
-rw-r--r--net-nds/389-ds-base/files/389-ds-base-1.3.4-no-instance-script.patch396
3 files changed, 540 insertions, 0 deletions
diff --git a/net-nds/389-ds-base/389-ds-base-1.3.4.8.ebuild b/net-nds/389-ds-base/389-ds-base-1.3.4.8.ebuild
new file mode 100644
index 000000000000..02ee08abdcf2
--- /dev/null
+++ b/net-nds/389-ds-base/389-ds-base-1.3.4.8.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+WANT_AUTOMAKE="1.9"
+
+inherit user eutils multilib flag-o-matic autotools
+
+DESCRIPTION="389 Directory Server (core librares and daemons )"
+HOMEPAGE="http://port389.org/"
+SRC_URI="http://directory.fedoraproject.org/sources/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="autobind auto-dn-suffix debug doc +pam-passthru +dna +ldapi +bitwise +presence kerberos selinux"
+
+# Pinned to db:4.8 as it is the current stable, can change to a later db version < 6 when they stabilize.
+# The --with-db-inc line in econf will need to be updated as well when changing db version.
+COMMON_DEPEND="
+ sys-libs/db:4.8
+ >=dev-libs/cyrus-sasl-2.1.19
+ >=net-analyzer/net-snmp-5.1.2
+ >=dev-libs/icu-3.4:=
+ dev-libs/nss[utils]
+ dev-libs/nspr
+ dev-libs/svrcore
+ dev-libs/openssl:0=
+ dev-libs/libpcre:3
+ >=dev-perl/perl-mozldap-1.5.3
+ dev-perl/NetAddr-IP
+ net-nds/openldap
+ sys-libs/pam
+ sys-libs/zlib
+ kerberos? ( >=app-crypt/mit-krb5-1.7-r100[openldap] )"
+
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ sys-devel/libtool
+ doc? ( app-doc/doxygen )
+ sys-apps/sed"
+RDEPEND="${COMMON_DEPEND}
+ selinux? ( sec-policy/selinux-dirsrv )
+ virtual/perl-Time-Local
+ virtual/perl-MIME-Base64"
+
+pkg_setup() {
+ enewgroup dirsrv
+ enewuser dirsrv -1 -1 -1 dirsrv
+}
+
+src_prepare() {
+ #0001-Ticket-47840-add-configure-option-to-disable-instanc.patch
+ epatch "${FILESDIR}/389-ds-base-1.3.4-no-instance-script.patch"
+
+ # as per 389 documentation, when 64bit, export USE_64
+ use amd64 && export USE_64=1
+
+ # This will be changed in 1.3.5.X
+ sed -i -e 's/nobody/dirsrv/g' configure.ac || die "sed failed on configure.ac"
+ eautoreconf
+
+ append-lfs-flags
+}
+
+src_configure() {
+ local myconf=""
+
+ # for 1.3.5.X, will add --enable-gcc-security.
+ # auto-dn-suffix currently throws warning in configure script,
+ # see https://fedorahosted.org/389/ticket/48710
+ econf \
+ $(use_enable debug) \
+ $(use_enable pam-passthru) \
+ $(use_enable ldapi) \
+ $(use_enable autobind) \
+ $(use_enable dna) \
+ $(use_enable bitwise) \
+ $(use_enable presence) \
+ $(use_with kerberos) \
+ $(use_enable debug) \
+ $(use_enable auto-dn-suffix) \
+ --enable-maintainer-mode \
+ --with-fhs \
+ --with-openldap \
+ --sbindir=/usr/sbin \
+ --bindir=/usr/bin \
+ --with-db-inc=/usr/include/db4.8
+
+}
+
+src_compile() {
+ default
+ if use doc; then
+ doxygen slapi.doxy || die "cannot run doxygen"
+ fi
+}
+
+src_install () {
+ emake DESTDIR="${D}" install
+
+ # remove redhat style init script
+ rm -rf "${D}"/etc/rc.d || die
+ # Needs a config option to remove this.
+ rm -rf "${D}"/etc/default || die
+
+ # and install gentoo style init script
+ # Get these merged upstream
+ newinitd "${FILESDIR}"/389-ds.initd-r1 389-ds
+ newinitd "${FILESDIR}"/389-ds-snmp.initd 389-ds-snmp
+
+ # cope with libraries being in /usr/lib/dirsrv
+ dodir /etc/env.d
+ echo "LDPATH=/usr/$(get_libdir)/dirsrv" > "${D}"/etc/env.d/08dirsrv
+
+ if use doc; then
+ cd "${S}" || die
+ docinto html/
+ dodoc -r docs/html/.
+ fi
+}
+
+pkg_postinst() {
+ echo
+ elog "If you are planning to use 389-ds-snmp (ldap-agent),"
+ elog "make sure to properly configure: /etc/dirsrv/config/ldap-agent.conf"
+ elog "adding proper 'server' entries, and adding the lines below to"
+ elog " => /etc/snmp/snmpd.conf"
+ elog
+ elog "master agentx"
+ elog "agentXSocket /var/agentx/master"
+ elog
+ elog "To start 389 Directory Server (LDAP service) at boot:"
+ elog
+ elog " rc-update add 389-ds default"
+ elog
+ elog "If you are upgrading from previous 1.2.6 release candidates"
+ elog "please see:"
+ elog "http://directory.fedoraproject.org/wiki/Subtree_Rename#warning:_upgrade_from_389_v1.2.6_.28a.3F.2C_rc1_.7E_rc6.29_to_v1.2.6_rc6_or_newer"
+ echo
+}
diff --git a/net-nds/389-ds-base/Manifest b/net-nds/389-ds-base/Manifest
index 57022ecef5ad..1d77e268cee2 100644
--- a/net-nds/389-ds-base/Manifest
+++ b/net-nds/389-ds-base/Manifest
@@ -1 +1,2 @@
DIST 389-ds-base-1.3.4.7.tar.bz2 3397520 SHA256 08dae55ed0732e8d316bb65910c74ee913fc215c3436299239e362a3670e76e6 SHA512 02159ce8e9d1e5797d6d6952202b430429bf750179279348430333f7a4b557e305a2041a1e4e7ffe652d34825c9678d3fbf8a3eaea401f257bd922034dbce875 WHIRLPOOL 97af90f6b3f01a2a11e236f1141d1851016711f69b618f2e3122715e8575541040aa09c03f66f7a20cca9e2136bb2d3612c8fcec16b616f981dba39c4f449453
+DIST 389-ds-base-1.3.4.8.tar.bz2 3396105 SHA256 a00468afcfa50de375f921a827a04dd53b6a11b632982bb0db98cafca509e701 SHA512 ac85223cb38d4cebb3ff61b23e3c0312b0cd30a0c6bf0d9644842c6ecfbc9379ea4a639c80b3e78a13a67f273342fec78e9ecf4672cc72e289d72d74c2fa0d8f WHIRLPOOL 4c7645be5b70c108ef437aaf6d50293a99fa6a552c859f649904c6974c8830e5bf96286a0f998c5d187c1f66f3e0922bbe1e756889e6b0a33e8d9db56f0aa005
diff --git a/net-nds/389-ds-base/files/389-ds-base-1.3.4-no-instance-script.patch b/net-nds/389-ds-base/files/389-ds-base-1.3.4-no-instance-script.patch
new file mode 100644
index 000000000000..8af7ad2be452
--- /dev/null
+++ b/net-nds/389-ds-base/files/389-ds-base-1.3.4-no-instance-script.patch
@@ -0,0 +1,396 @@
+From 7b75e7a4c60637a86acf6c757f207550294279ef Mon Sep 17 00:00:00 2001
+From: William Brown <wibrown@redhat.com>
+Date: Wed, 28 Oct 2015 14:25:26 +1000
+Subject: [PATCH] Ticket 47840 - add configure option to disable instance
+ specific scripts https://fedorahosted.org/389/ticket/47840
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Bug Description: Now that ​https://fedorahosted.org/389/ticket/528 is
+fixed, the next step is to allow building the server with the instance specific
+scripts disabled.
+
+Fix Description: Instead of defining a configure option, we provide a new
+option in setup-ds.pl, slapd.InstScriptsEnabled, which defaults to false. All
+new installs of 389 will NOT install with a inst_dir nor the scripts that are in
+that directory.
+
+Additionally, this change fixes setup-ds.pl to correctly use the sbindir scripts
+to start/stop the server instance during installation.
+
+Finally, we add support for setup-ds.pl so that in --update if the inst_dir
+exists, scripts will be updated, but if it does not exist, no action is taken.
+
+In time, we will alter --update to *remove* the scripts within inst_dir during
+the update (We have no way of knowing if a customer has put custom scripts in
+inst_dir)
+
+Example:
+/opt/dirsrv/sbin/setup-ds.pl slapd.InstScriptsEnabled=false
+
+Author: wibrown
+
+Review by: nhosoi (Thanks!)
+---
+ ldap/admin/src/scripts/DSCreate.pm.in | 204 +++++++++++++++++++--------------
+ ldap/admin/src/scripts/DSUpdate.pm.in | 12 +-
+ ldap/admin/src/scripts/setup-ds.res.in | 1 +
+ 3 files changed, 124 insertions(+), 93 deletions(-)
+
+diff --git a/ldap/admin/src/scripts/DSCreate.pm.in b/ldap/admin/src/scripts/DSCreate.pm.in
+index 3ce5a73..6425be4 100644
+--- a/ldap/admin/src/scripts/DSCreate.pm.in
++++ b/ldap/admin/src/scripts/DSCreate.pm.in
+@@ -130,6 +130,15 @@ sub sanityCheckParams {
+ return @errs;
+ }
+
++ # We need to make sure this value is lowercase
++ $inf->{slapd}->{InstScriptsEnabled} = lc $inf->{slapd}->{InstScriptsEnabled};
++
++ if ("true" ne $inf->{slapd}->{InstScriptsEnabled} && "false" ne $inf->{slapd}->{InstScriptsEnabled}) {
++ debug(1, "InstScriptsEnabled is not a valid boolean");
++ return ('error_invalid_boolean', $inf->{slapd}->{InstScriptsEnabled});
++ }
++
++
+ return ();
+ }
+
+@@ -204,13 +213,17 @@ sub makeDSDirs {
+ my $mode = getMode($inf, 7);
+ my @errs;
+
++ my @dsdirs = qw(config_dir schema_dir log_dir lock_dir run_dir tmp_dir cert_dir db_dir ldif_dir bak_dir);
++ if ($inf->{slapd}->{InstScriptsEnabled} eq "true") {
++ @dsdirs = qw(inst_dir config_dir schema_dir log_dir lock_dir run_dir tmp_dir cert_dir db_dir ldif_dir bak_dir);
++ }
++
+ # These paths are owned by the SuiteSpotGroup
+ # This allows the admin server to run as a different,
+ # more privileged user than the directory server, but
+ # still allows the admin server to manage directory
+ # server files/dirs without being root
+- for my $kw (qw(inst_dir config_dir schema_dir log_dir lock_dir run_dir tmp_dir
+- cert_dir db_dir ldif_dir bak_dir)) {
++ for my $kw (@dsdirs) {
+ my $dir = $inf->{slapd}->{$kw};
+ @errs = makePaths($dir, $mode, $inf->{General}->{SuiteSpotUserID},
+ $inf->{General}->{SuiteSpotGroup});
+@@ -262,56 +275,66 @@ sub createInstanceScripts {
+ my $myperl = "!$perlexec";
+ my $mydevnull = (-f "/dev/null" ? " /dev/null " : " NUL ");
+
+- # determine initconfig_dir
+- my $initconfig_dir = $inf->{slapd}->{initconfig_dir} || get_initconfigdir($inf->{General}->{prefix});
+-
+- my %maptable = (
+- "DS-ROOT" => $inf->{General}->{prefix},
+- "SEP" => "/", # works on all platforms
+- "SERVER-NAME" => $inf->{General}->{FullMachineName},
+- "SERVER-PORT" => $inf->{slapd}->{ServerPort},
+- "PERL-EXEC" => $myperl,
+- "DEV-NULL" => $mydevnull,
+- "ROOT-DN" => $inf->{slapd}->{RootDN},
+- "LDIF-DIR" => $inf->{slapd}->{ldif_dir},
+- "SERV-ID" => $inf->{slapd}->{ServerIdentifier},
+- "BAK-DIR" => $inf->{slapd}->{bak_dir},
+- "SERVER-DIR" => $inf->{General}->{ServerRoot},
+- "CONFIG-DIR" => $inf->{slapd}->{config_dir},
+- "INITCONFIG-DIR" => $initconfig_dir,
+- "INST-DIR" => $inf->{slapd}->{inst_dir},
+- "RUN-DIR" => $inf->{slapd}->{run_dir},
+- "PRODUCT-NAME" => "slapd",
+- "SERVERBIN-DIR" => $inf->{slapd}->{sbindir},
+- "DB-DIR" => $inf->{slapd}->{db_dir}
+- );
+-
+- my $dir = "$inf->{General}->{prefix}@taskdir@";
+- for my $file (glob("$dir/template-*")) {
+- my $basename = $file;
+- $basename =~ s/^.*template-//;
+- my $destfile = "$inf->{slapd}->{inst_dir}/$basename";
+-
+- next if ($skip and -f $destfile); # in skip mode, skip files that already exist
+-
+- if (!open(SRC, "< $file")) {
+- return ("error_opening_scripttmpl", $file, $!);
+- }
+- if (!open(DEST, "> $destfile")) {
+- return ("error_opening_scripttmpl", $destfile, $!);
+- }
+- my $contents; # slurp entire file into memory
+- read SRC, $contents, int(-s $file);
+- close(SRC);
+- while (my ($key, $val) = each %maptable) {
+- $contents =~ s/\{\{$key\}\}/$val/g;
+- }
+- print DEST $contents;
+- close(DEST);
+- my @errs = changeOwnerMode($inf, 5, $destfile);
+- if (@errs) {
+- return @errs;
++ # If we have InstScriptsEnabled, we likely have setup.inf or the argument.
++ # However, during an upgrade, we need to know if we should upgrade the template files or not.
++ # For now, the easiest way is to check to if the directory exists, and if is does, we assume we want to upgrade / create the updated scripts.
++ if ($inf->{slapd}->{InstScriptsEnabled} eq "true" || -d $inf->{slapd}->{inst_dir} ) {
++ debug(1, "Creating or updating instance directory scripts\n");
++ # determine initconfig_dir
++ my $initconfig_dir = $inf->{slapd}->{initconfig_dir} || get_initconfigdir($inf->{General}->{prefix});
++
++ my %maptable = (
++ "DS-ROOT" => $inf->{General}->{prefix},
++ "SEP" => "/", # works on all platforms
++ "SERVER-NAME" => $inf->{General}->{FullMachineName},
++ "SERVER-PORT" => $inf->{slapd}->{ServerPort},
++ "PERL-EXEC" => $myperl,
++ "DEV-NULL" => $mydevnull,
++ "ROOT-DN" => $inf->{slapd}->{RootDN},
++ "LDIF-DIR" => $inf->{slapd}->{ldif_dir},
++ "SERV-ID" => $inf->{slapd}->{ServerIdentifier},
++ "BAK-DIR" => $inf->{slapd}->{bak_dir},
++ "SERVER-DIR" => $inf->{General}->{ServerRoot},
++ "CONFIG-DIR" => $inf->{slapd}->{config_dir},
++ "INITCONFIG-DIR" => $initconfig_dir,
++ "INST-DIR" => $inf->{slapd}->{inst_dir},
++ "RUN-DIR" => $inf->{slapd}->{run_dir},
++ "PRODUCT-NAME" => "slapd",
++ "SERVERBIN-DIR" => $inf->{slapd}->{sbindir},
++ "DB-DIR" => $inf->{slapd}->{db_dir}
++ );
++
++
++ my $dir = "$inf->{General}->{prefix}@taskdir@";
++ for my $file (glob("$dir/template-*")) {
++ my $basename = $file;
++ $basename =~ s/^.*template-//;
++ my $destfile = "$inf->{slapd}->{inst_dir}/$basename";
++ debug(1, "$destfile\n");
++
++ next if ($skip and -f $destfile); # in skip mode, skip files that already exist
++
++ if (!open(SRC, "< $file")) {
++ return ("error_opening_scripttmpl", $file, $!);
++ }
++ if (!open(DEST, "> $destfile")) {
++ return ("error_opening_scripttmpl", $destfile, $!);
++ }
++ my $contents; # slurp entire file into memory
++ read SRC, $contents, int(-s $file);
++ close(SRC);
++ while (my ($key, $val) = each %maptable) {
++ $contents =~ s/\{\{$key\}\}/$val/g;
++ }
++ print DEST $contents;
++ close(DEST);
++ my @errs = changeOwnerMode($inf, 5, $destfile);
++ if (@errs) {
++ return @errs;
++ }
+ }
++ } else {
++ debug(1, "No instance directory scripts will be updated or created\n");
+ }
+
+ return ();
+@@ -639,7 +662,7 @@ sub initDatabase {
+ return ();
+ }
+
+- my $cmd = "$inf->{slapd}->{inst_dir}/ldif2db -n $inf->{slapd}->{ds_bename} -i \'$ldiffile\'";
++ my $cmd = "$inf->{slapd}->{sbindir}/ldif2db -Z $inf->{slapd}->{ServerIdentifier} -n $inf->{slapd}->{ds_bename} -i \'$ldiffile\'";
+ $? = 0; # clear error condition
+ my $output = `$cmd 2>&1`;
+ my $result = $?;
+@@ -662,7 +685,7 @@ sub startServer {
+ my @errs;
+ # get error log
+ my $errLog = "$inf->{slapd}->{log_dir}/errors";
+- my $startcmd = "$inf->{slapd}->{inst_dir}/start-slapd";
++ my $startcmd = "$inf->{slapd}->{sbindir}/start-dirsrv $inf->{slapd}->{ServerIdentifier}";
+ if ("@systemdsystemunitdir@" and (getLogin() eq 'root')) {
+ $startcmd = "/bin/systemctl start @package_name@\@$inf->{slapd}->{ServerIdentifier}.service";
+ }
+@@ -875,6 +898,10 @@ sub setDefaults {
+ "@datadir@",
+ $inf->{General}->{prefix});
+
++ if (!defined($inf->{slapd}->{InstScriptsEnabled})) {
++ $inf->{slapd}->{InstScriptsEnabled} = "false";
++ }
++
+ if (!defined($inf->{slapd}->{inst_dir})) {
+ $inf->{slapd}->{inst_dir} = "$inf->{General}->{ServerRoot}/slapd-$servid";
+ }
+@@ -975,9 +1002,12 @@ sub updateSelinuxPolicy {
+ system("restorecon -R $localstatedir/lib/@PACKAGE_NAME@");
+ }
+
++ my @inst_dirs = qw(config_dir schema_dir log_dir lock_dir run_dir tmp_dir cert_dir db_dir ldif_dir bak_dir);
++ if ($inf->{slapd}->{InstScriptsEnabled} eq "true") {
++ @inst_dirs = qw(inst_dir config_dir schema_dir log_dir lock_dir run_dir tmp_dir cert_dir db_dir ldif_dir bak_dir);
++ }
+ # run restorecon on all instance directories we created
+- for my $kw (qw(inst_dir config_dir schema_dir log_dir lock_dir run_dir tmp_dir
+- cert_dir db_dir ldif_dir bak_dir)) {
++ for my $kw (@inst_dirs) {
+ my $dir = $inf->{slapd}->{$kw};
+ system("restorecon -R $dir");
+ }
+@@ -1231,14 +1261,14 @@ sub createDSInstance {
+ }
+
+ sub stopServer {
+- my $instancedir = shift;
+- my $prog = $instancedir . "/stop-slapd";
++ my $instance = shift;
++ my $prog = "@sbindir@/stop-dirsrv";
+ if (-x $prog) {
+ $? = 0;
+ # run the stop command
+- my $output = `$prog 2>&1`;
++ my $output = `$prog $instance 2>&1`;
+ my $status = $?;
+- debug(3, "stopping server $instancedir returns status $status: output $output\n");
++ debug(3, "stopping server $instance returns status $status: output $output\n");
+ if ($status) {
+ debug(1,"Warning: Could not stop directory server: status $status: output $output\n");
+ # if the server is not running, that's ok
+@@ -1254,7 +1284,7 @@ sub stopServer {
+ return;
+ }
+
+- debug(1, "Successfully stopped server $instancedir\n");
++ debug(1, "Successfully stopped server $instance\n");
+ return 1;
+ }
+
+@@ -1331,23 +1361,16 @@ sub removeDSInstance {
+ $conn->close();
+
+ # stop the server
+- my $instdir = "";
+- if ($entry) {
+- foreach my $path ( @{$entry->{"nsslapd-instancedir"}} )
+- {
+- if (!stopServer($path)) {
+- if ($force) {
+- debug(1, "Warning: Could not stop directory server - Error: $! - forcing continue\n");
+- } elsif ($! == ENOENT) { # stop script not found or server not running
+- debug(1, "Warning: Could not stop directory server: already removed or not running\n");
+- push @errs, [ 'error_stopping_server', $path, $! ];
+- } else { # real error
+- debug(1, "Error: Could not stop directory server - aborting - use -f flag to force removal\n");
+- push @errs, [ 'error_stopping_server', $path, $! ];
+- return @errs;
+- }
+- }
+- $instdir = $path;
++ if (!stopServer($inst)) {
++ if ($force) {
++ debug(1, "Warning: Could not stop directory server - Error: $! - forcing continue\n");
++ } elsif ($! == ENOENT) { # stop script not found or server not running
++ debug(1, "Warning: Could not stop directory server: already removed or not running\n");
++ push @errs, [ 'error_stopping_server', $inst, $! ];
++ } else { # real error
++ debug(1, "Error: Could not stop directory server - aborting - use -f flag to force removal\n");
++ push @errs, [ 'error_stopping_server', $inst, $! ];
++ return @errs;
+ }
+ }
+
+@@ -1363,18 +1386,25 @@ sub removeDSInstance {
+ push @errs, remove_tree($entry, "nsslapd-errorlog", $instname, 1);
+ }
+
+- # instance dir
+- if ( -d $instdir && $instdir =~ /$instname/ )
+- {
+- # clean up pid files (if any)
+- remove_pidfile("STARTPIDFILE", $inst, $instdir, $instname, $rundir, $product_name);
+- remove_pidfile("PIDFILE", $inst, $instdir, $instname, $rundir, $product_name);
+
+- my $rc = rmtree($instdir);
+- if ( 0 == $rc )
++ # instance dir
++ my $instdir = "";
++ if ($entry) {
++ foreach my $instdir ( @{$entry->{"nsslapd-instancedir"}} )
+ {
+- push @errs, [ 'error_removing_path', $instdir, $! ];
+- debug(1, "Warning: $instdir was not removed. Error: $!\n");
++ if ( -d $instdir && $instdir =~ /$instname/ )
++ {
++ # clean up pid files (if any)
++ remove_pidfile("STARTPIDFILE", $inst, $instdir, $instname, $rundir, $product_name);
++ remove_pidfile("PIDFILE", $inst, $instdir, $instname, $rundir, $product_name);
++
++ my $rc = rmtree($instdir);
++ if ( 0 == $rc )
++ {
++ push @errs, [ 'error_removing_path', $instdir, $! ];
++ debug(1, "Warning: $instdir was not removed. Error: $!\n");
++ }
++ }
+ }
+ }
+ # Finally, config dir
+diff --git a/ldap/admin/src/scripts/DSUpdate.pm.in b/ldap/admin/src/scripts/DSUpdate.pm.in
+index be1e67c..e84a9a9 100644
+--- a/ldap/admin/src/scripts/DSUpdate.pm.in
++++ b/ldap/admin/src/scripts/DSUpdate.pm.in
+@@ -226,10 +226,10 @@ sub updateDS {
+ for my $upd (@updates) {
+ my @localerrs;
+ if ($upd->{$PRE_STAGE}) {
+- debug(1, "Running stage $PRE_STAGE update ", $upd->{path}, "\n");
++ debug(1, "Running updateDS stage $PRE_STAGE update ", $upd->{path}, "\n");
+ @localerrs = &{$upd->{$PRE_STAGE}}($inf, $setup->{configdir});
+ } elsif ($upd->{file}) {
+- debug(1, "Running stage $PRE_STAGE update ", $upd->{path}, "\n");
++ debug(1, "Running updateDS stage $PRE_STAGE update ", $upd->{path}, "\n");
+ @localerrs = processUpdate($upd, $inf, $setup->{configdir}, $PRE_STAGE);
+ }
+ if (@localerrs) {
+@@ -276,10 +276,10 @@ sub updateDS {
+ for my $upd (@updates) {
+ my @localerrs;
+ if ($upd->{$POST_STAGE}) {
+- debug(1, "Running stage $POST_STAGE update ", $upd->{path}, "\n");
++ debug(1, "Running updateDS stage $POST_STAGE update ", $upd->{path}, "\n");
+ @localerrs = &{$upd->{$POST_STAGE}}($inf, $setup->{configdir});
+ } elsif ($upd->{file}) {
+- debug(1, "Running stage $POST_STAGE update ", $upd->{path}, "\n");
++ debug(1, "Running updateDS stage $POST_STAGE update ", $upd->{path}, "\n");
+ @localerrs = processUpdate($upd, $inf, $setup->{configdir}, $POST_STAGE);
+ }
+ if (@localerrs) {
+@@ -385,10 +385,10 @@ sub updateDSInstance {
+ for my $upd (@{$updates}) {
+ my @localerrs;
+ if ($upd->{$stage}) {
+- debug(1, "Running stage $stage update ", $upd->{path}, "\n");
++ debug(1, "Running updateDSInstance stage $stage update ", $upd->{path}, "\n");
+ @localerrs = &{$upd->{$stage}}($inf, $inst, $dseldif, $conn);
+ } elsif ($upd->{file}) {
+- debug(1, "Running stage $stage update ", $upd->{path}, "\n");
++ debug(1, "Running updateDSInstance stage $stage update ", $upd->{path}, "\n");
+ @localerrs = processUpdate($upd, $inf, $configdir, $stage,
+ $inst, $dseldif, $conn);
+ }
+diff --git a/ldap/admin/src/scripts/setup-ds.res.in b/ldap/admin/src/scripts/setup-ds.res.in
+index 7134e25..fa37567 100644
+--- a/ldap/admin/src/scripts/setup-ds.res.in
++++ b/ldap/admin/src/scripts/setup-ds.res.in
+@@ -116,6 +116,7 @@ error_creating_file = Could not create file '%s'. Error: %s\n
+ error_copying_file = Could not copy file '%s' to '%s'. Error: %s\n
+ error_enabling_feature = Could not enable the directory server feature '%s'. Error: %s\n
+ error_importing_ldif = Could not import LDIF file '%s'. Error: %s. Output: %s\n
++error_invalid_boolean = Could not convert value '%s' to boolean. Valid values are true or false.\n
+ error_starting_server = Could not start the directory server using command '%s'. The last line from the error log was '%s'. Error: %s\n
+ error_stopping_server = Could not stop the directory server '%s'. Error: %s\n
+ error_missing_userid = The SuiteSpotUserID is missing. This must be set to valid user\n
+--
+2.4.3
+