Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > updates > by-pkgid > 464d2037e4566d9c36c30e77f395fd2e > scriptlet

openldap-servers-2.0.27-5.3mdk.ppc.rpm

PREIN

/bin/sh
/usr/share/rpm-helper/add-user openldap $1 ldap /var/lib/ldap /bin/false 
# allowing slapd to read hosts.allow and hosts.deny
/usr/bin/gpasswd -a ldap adm 1>&2 > /dev/null || :

# bgmilne: Fix dbb->gdbm stuffup:
#echo "Checking for incompatible db types"
if [ -n "`find /var/lib/ldap/*.gdbm 2>&-`" ]
then
	echo "Found incompatible db type gdbm"
	echo "Making a backup to ldif file /var/lib/ldap/rpm-db-backup-gdbm.ldif"
	# For some reason, slapcat works in the shell when slapd is running
	# but not via rpm ...
	SLAPD_STATUS=`service ldap status|grep -q stopped;echo $?`
	[ $SLAPD_STATUS -eq 1 ] && service ldap stop
	slapcat > /var/lib/ldap/rpm-db-backup-gdbm.ldif ||:
	[ $SLAPD_STATUS -eq 1 ] && service ldap start
#else
#	echo "Found no incompatible db-type"
fi

PREUN

/bin/sh
/usr/share/rpm-helper/del-service openldap $1 ldap

POSTIN

/bin/sh
# bgmilne: part 2 of dbb-gdbm stuffup fix:
if [ -n "`find /var/lib/ldap/*.gdbm 2>&-`" ]
then
	if [ -e /var/lib/ldap-rpm-backup -a -e /var/lib/ldap/rpm-db-backup-gdbm.ldif ]
	then 
		echo "Can't make a backup, not importing /var/lib/ldap/rpm-db-backup-gdbm.ldif"
		echo "Please do it manually (after making a backup of /var/lib/ldap)"
		echo "by running (as root):"
		echo "# service ldap stop"
		echo "# slapadd -c -l /var/lib/ldap/rpm-db-backup-gdbm.ldif"
		echo "# slapindex"
		echo "# chown ldap.ldap /var/lib/ldap/*"
		echo "# service ldap start"
	elif [ -e /var/lib/ldap/rpm-db-backup-gdbm.ldif ]
	then
		mkdir -p /var/lib/ldap-rpm-backup
		SLAPD_STATUS=`service ldap status|grep -q stopped;echo $?`
		mv /var/lib/ldap/*.gdbm /var/lib/ldap-rpm-backup
		echo "Importing /var/lib/ldap/rpm-db-backup-gdbm.ldif"
		[ $SLAPD_STATUS -eq 1 ] && service ldap stop
		slapadd -cv -l /var/lib/ldap/rpm-db-backup-gdbm.ldif > \
		/var/lib/ldap/rpm-ldif-import.log 2>&1
		slapindex
		chown ldap.ldap -R /var/lib/ldap/
		[ $SLAPD_STATUS -eq 1 ] && service ldap start
		echo "Import complete, see log /var/lib/ldap/rpm-ldif-import.log"
	fi
fi	

# Setup log facility for OpenLDAP
if [ -f /etc/syslog.conf ] ;then

	# clean syslog
	perl -pi -e "s|^.*ldap.*\n||g" /etc/syslog.conf 

	typeset -i cntlog
	cntlog=0

	# probe free local-users
	while [ `grep -c local${cntlog} /etc/syslog.conf` -gt 0 ]
	do 
		cntlog=${cntlog}+1
	done

	if [ ${cntlog} -le 9 ];then
		echo "# added by openldap-2.0.27 r""pm $(date)" >> /etc/syslog.conf
#   modified by Oden Eriksson
#		echo "local${cntlog}.*       /var/log/ldap/ldap.log" >> /etc/syslog.conf
		echo -e "local${cntlog}.*\t\t\t\t\t\t\t-/var/log/ldap/ldap.log" >> /etc/syslog.conf

		# reset syslog daemon
		if [ -f /var/lock/subsys/syslog ]; then
        		service syslog restart  > /dev/null 2>/dev/null || : 
		fi
	else
		echo "I can't set syslog local-user!"
	fi
		
	# set syslog local-user in /etc/sysconfig/ldap
	perl -pi -e "s|^.*SLAPDSYSLOGLOCALUSER.*|SLAPDSYSLOGLOCALUSER=\"LOCAL${cntlog}\"|g" /etc/sysconfig/ldap 

fi

# Reset right permissions 
chown -R ldap.ldap /var/lib/ldap
for i in /var/lib/ldap/* ; do
	if [ -f $i ]; then
		chmod 0600 $i
	fi
done

# generate the ldap.pem cert here instead of the initscript
if [ ! -e /etc/ssl/openldap/ldap.pem ] ; then
  if [ -x /usr/share/openldap/gencert.sh ] ; then
    echo "Generating self-signed certificate..."
    pushd /etc/ssl/openldap/ > /dev/null
    yes ""|/usr/share/openldap/gencert.sh >/dev/null 2>&1
    chmod 640 ldap.pem
    chown root.ldap ldap.pem
    popd > /dev/null
  fi
  echo "To generate a self-signed certificate, you can use the utility"
  echo "/usr/share/openldap/gencert.sh..."
fi

# talk about gdbm to ldif conversion here instead of the initscript
# WHY? There is no slapcat-gdbm in any recent versions!!!
# if ls /var/lib/ldap/*.gdbm > /dev/null 2>&1 || :  ; then
#   echo "To convert a gdbm DB to a ldif file, you can use the utility"
#   echo "/usr/sbin/slapcat-gdbm (actually openldap uses Berkeley DB 3.x)..."
# fi

pushd /etc/openldap/ > /dev/null
for i in slapd.conf slapd.access.conf ; do
	if [ -f $i ]; then
		chmod 0640 $i
		chown root.ldap $i
	fi
done
popd > /dev/null


/usr/share/rpm-helper/add-service openldap $1 ldap 

# nscd reset
if [ -f /var/lock/subsys/nscd ]; then
        service nscd restart  > /dev/null 2>/dev/null || : 
fi

POSTUN

/bin/sh
if [ $1 = 0 ]; then 
	# remove ldap entry 
	perl -pi -e "s|^.*ldap.*\n||g" /etc/syslog.conf 

	# reset syslog daemon
	if [ -f /var/lock/subsys/syslog ]; then
	        service syslog restart  > /dev/null 2>/dev/null || : 
	fi
fi
/usr/share/rpm-helper/del-user openldap $1 ldap