- Upgrade to 2.3.19, which upstream now considers stable

- Modify the -config.patch, ldap.init, and this spec file to put the
  pid file and args file in an ldap-owned openldap subdirectory under
  /var/run.
- Move back_sql* out of %{_sbindir}/openldap , which requires
  hand-moving slapd and slurpd to _sbindir, and recreating symlinks
  by hand.
- Retire openldap-2.3.11-ads.patch, which went upstream.
- Update the ldap.init script to run slaptest as the ldap user rather
  than as root.  This solves
  bz#150172 Startup failure after database problem
- Add to the servers post and preun scriptlets so that on preun, the
  database is slapcatted to /var/lib/ldap/upgrade.ldif and the
  database files are saved to /var/lib/ldap/rpmorig.  On post, if
  /var/lib/ldap/upgrade.ldif exists, it is slapadded.  This means that
  on upgrades from 2.3.16-2 to higher versions, the database files may
  be automatically upgraded.  Unfortunatly, because of the changes to
  the preun scriptlet, users have to do the slapcat, etc by hand when
  upgrading to 2.3.16-2.  Also note that the /var/lib/ldap/rpmorig
  files need to be removed by hand because automatically removing your
  emergency fallback files is a bad idea.
- Upgrade internal bdb to db-4.4.20.  For a clean upgrade, this will
  require that users slapcat their databases into a temp file, move
  /var/lib/ldap someplace safe, upgrade the openldap rpms, then
  slapadd the temp file.
This commit is contained in:
fenlason 2006-01-31 21:47:36 +00:00
parent da14c392c0
commit d8aedf8bed
5 changed files with 94 additions and 24 deletions

View File

@ -1,4 +1,6 @@
openldap-2.2.29.tgz
openldap-2.3.11.tgz
MigrationTools-46.tar.gz
openldap-2.3.16.tgz
openldap-2.3.19.tgz
db-4.4.20.tar.gz
autoconf-2.13.1.tar.gz
automake-1.4a.tar.gz

View File

@ -8,7 +8,7 @@
# for implementing the industry standard directory services.
# processname: slapd
# config: /etc/openldap/slapd.conf
# pidfile: /var/run/slapd.pid
# pidfile: /var/run/openldap/slapd.pid
# Source function library.
. /etc/init.d/functions
@ -121,8 +121,8 @@ function configtest() {
fi
done
# Check the configuration file.
if ! action $"Checking configuration files for $prog: " $slaptest $slaptestflags ; then
if $slaptest -u > /dev/null 2> /dev/null ; then
if ! action $"Checking configuration files for $prog: " /sbin/runuser -f -m -s /bin/sh -c "$slaptest $slaptestflags" -- "$user" ; then
if /sbin/runuser -f -m -s /bin/sh -c "$slaptest -u" -- "$user" > /dev/null 2> /dev/null ; then
dirs=`LANG=C egrep '^directory[[:space:]]+[[:print:]]+$' /etc/openldap/slapd.conf | awk '{print $2}'`
for directory in $dirs ; do
if test -r $directory/__db.001 ; then

View File

@ -1,6 +1,6 @@
--- openldap-2.2.13/servers/slapd/slapd.conf 2003-12-29 13:10:40.000000000 -0500
+++ openldap-2.2.13/servers/slapd/slapd.conf 2004-06-15 11:44:23.000000000 -0400
@@ -3,8 +3,12 @@
--- openldap-2.3.17/servers/slapd/slapd.conf.config 2004-06-17 22:49:08.000000000 -0400
+++ openldap-2.3.17/servers/slapd/slapd.conf 2006-01-12 15:33:04.000000000 -0500
@@ -3,15 +3,19 @@
# This file should NOT be world readable.
#
include %SYSCONFDIR%/schema/core.schema
@ -14,6 +14,15 @@
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org
-pidfile %LOCALSTATEDIR%/run/slapd.pid
-argsfile %LOCALSTATEDIR%/run/slapd.args
+pidfile %LOCALSTATEDIR%/run/openldap/slapd.pid
+argsfile %LOCALSTATEDIR%/run/openldap/slapd.args
# Load dynamic backend modules:
# modulepath %MODULEDIR%
@@ -21,6 +25,15 @@
# moduleload back_passwd.la
# moduleload back_shell.la
@ -53,10 +62,10 @@
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
-directory %LOCALSTATEDIR%/openldap-data
+directory /var/lib/ldap
+
-# Indices to maintain
-index objectClass eq
+directory /var/lib/ldap
+
+# Indices to maintain for this database
+index objectClass eq,pres
+index ou,cn,mail,surname,givenname eq,pres,sub

View File

@ -1,8 +1,8 @@
%define migtools_version 46
%define db_version 4.3.27
%define db_version 4.4.20
%define ldbm_backend berkeley
%define version_22 2.2.29
%define version_23 2.3.16
%define version_23 2.3.19
%define evolution_connector_prefix %{_libdir}/evolution-openldap
%define evolution_connector_includedir %{evolution_connector_prefix}/include
%define evolution_connector_libdir %{evolution_connector_prefix}/%{_lib}
@ -29,6 +29,7 @@ Source9: README.upgrading
Source10: http://www.OpenLDAP.org/doc/admin/guide.html
Source11: nptl-abi-note.S
Source12: README.evolution
# Patches that are still valid for 2.3
Patch0: openldap-2.3.11-config.patch
Patch1: openldap-1.2.11-cldap.patch
@ -37,13 +38,17 @@ Patch3: openldap-2.2.13-setugid.patch
Patch4: openldap-2.2.13-pie.patch
Patch5: openldap-2.3.11-toollinks.patch
Patch6: openldap-2.3.11-nosql.patch
Patch7: openldap-2.3.11-ads.patch
#Patch7: openldap-2.3.19-nostrip.patch
# Patches for 2.2.29 for the compat-openldap package.
Patch100: openldap-2.2.13-tls-fix-connection-test.patch
Patch101: openldap-2.2.23-resolv.patch
Patch102: openldap-2.2.29-ads.patch
# patch for the evolution library
#Patch103: openldap-2.2.29-nostrip.patch
# Patches for the evolution library
Patch200: openldap-ntlm.diff
# Patches for the MigrationTools package
Patch300: MigrationTools-38-instdir.patch
Patch301: MigrationTools-36-mktemp.patch
@ -52,6 +57,7 @@ Patch303: MigrationTools-26-suffix.patch
Patch304: MigrationTools-46-schema.patch
Patch305: MigrationTools-45-noaliases.patch
URL: http://www.openldap.org/
BuildRoot: %{_tmppath}/%{name}-%{version_23}-root
BuildPreReq: cyrus-sasl-devel >= 2.1, gdbm-devel, libtool >= 1.5.6-2, krb5-devel
@ -157,7 +163,7 @@ pushd openldap-%{version_23}
%patch4 -p1 -b .pie
%patch5 -p1 -b .toollinks
%patch6 -p1 -b .nosql
%patch7 -p1 -b .ads
#%patch7 -p1 -b .nostrip
cp %{_datadir}/libtool/config.{sub,guess} build/
popd
@ -196,6 +202,7 @@ pushd openldap-%{version_22}
%patch100 -p1 -b .resolv
%patch101 -p1 -b .CAN-2005-2069
%patch102 -p1 -b .ads
#%patch103 -p1 -b .nostrip
for subdir in build-servers build-compat ; do
mkdir $subdir
ln -s ../configure $subdir
@ -324,7 +331,7 @@ build() {
--enable-modules \
--disable-sql \
\
--libexecdir=%{_sbindir} \
--libexecdir=%{_libdir} \
$@
make %{_smp_mflags} LIBTOOL="$libtool"
}
@ -469,6 +476,8 @@ cp $RPM_SOURCE_DIR/migration-tools.txt TOOLS.migration
# Create the data directory.
mkdir -p $RPM_BUILD_ROOT/var/lib/ldap
# Create the new run directory
mkdir -p $RPM_BUILD_ROOT/var/run/openldap
# Hack the build root out of the default config files.
perl -pi -e "s|$RPM_BUILD_ROOT||g" $RPM_BUILD_ROOT/%{_sysconfdir}/openldap/*.conf
@ -490,6 +499,12 @@ install -m644 \
$RPM_SOURCE_DIR/autofs.schema \
$RPM_BUILD_ROOT%{_sysconfdir}/openldap/schema/redhat/
# Move slapd and slurpd out of _libdir
mv $RPM_BUILD_ROOT/%{_libdir}/sl{apd,urpd} $RPM_BUILD_ROOT/%{_sbindir}/
rm -f $RPM_BUILD_ROOT/%{_sbindir}/slap{acl,add,auth,cat,dn,index,passwd,test}
rm -f $RPM_BUILD_ROOT/%{_libdir}/slap{acl,add,auth,cat,dn,index,passwd,test}
for X in acl add auth cat dn index passwd test; do ln -s slapd $RPM_BUILD_ROOT/%{_sbindir}/slap$X ; done
# Tweak permissions on the libraries to make sure they're correct.
chmod 755 $RPM_BUILD_ROOT/%{_libdir}/lib*.so*
chmod 644 $RPM_BUILD_ROOT/%{_libdir}/lib*.*a
@ -499,8 +514,8 @@ rm -f $RPM_BUILD_ROOT/%{_datadir}/openldap/migration/*.{instdir,simple,schema,mk
rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la
rm -f $RPM_BUILD_ROOT/%{evolution_connector_libdir}/*.la
rm -f $RPM_BUILD_ROOT/%{evolution_connector_libdir}/*.so*
rm -f $RPM_BUILD_ROOT/%{_sbindir}/openldap/*.a
rm -f $RPM_BUILD_ROOT/%{_sbindir}/openldap/*.so
rm -f $RPM_BUILD_ROOT/%{_libdir}/openldap/*.a
rm -f $RPM_BUILD_ROOT/%{_libdir}/openldap/*.so
rm -f $RPM_BUILD_ROOT/var/openldap-data/DB_CONFIG.example
rmdir $RPM_BUILD_ROOT/var/openldap-slurp $RPM_BUILD_ROOT/var/openldap-data
@ -528,6 +543,12 @@ fi
%post servers
/sbin/ldconfig
/sbin/chkconfig --add ldap
# If there's a /var/lib/ldap/upgrade.ldif file, slapadd it and delete it.
# It was created by the uninstall of the previous version.
if [ -f /var/lib/ldap/upgrade.ldif ] ; then
/sbin/runuser -f -m -s /bin/sh -c "/usr/sbin/slapadd" -- "ldap" < /var/lib/ldap/upgrade.ldif
rm /var/lib/ldap/upgrade.ldif
fi
exec > /dev/null 2> /dev/null
if [ ! -f %{_sysconfdir}/pki/tls/certs/slapd.pem ] ; then
pushd %{_sysconfdir}/pki/tls/certs
@ -552,6 +573,17 @@ if [ "$1" = "0" ] ; then
/sbin/service ldap stop > /dev/null 2>&1 || :
/sbin/chkconfig --del ldap
fi
# Save an ldif of the database where the "% post servers" scriptlet can
# restore it. Also save the database files to a "rpmorig" directory
# Just In Case (TM)
if slapcat -l /dev/null > /dev/null 2>&1 ; then
/sbin/service ldap stop > /dev/null 2>&1 || :
/usr/sbin/slapcat -l /var/lib/ldap/upgrade.ldif
rm -fr /var/lib/ldap/rpmorig > /dev/null 2>&1 || :
mkdir /var/lib/ldap/rpmorig
mv /var/lib/ldap/{alock,*.bdb,__db.*,log.*} /var/lib/ldap/rpmorig > /dev/null 2>&1 || :
cp -f /var/lib/ldap/DB_CONFIG /var/lib/ldap/rpmorig > /dev/null 2>&1 || :
fi
%postun servers
/sbin/ldconfig
@ -613,6 +645,7 @@ fi
%attr(0755,root,root) %dir %{_datadir}/openldap/ucdata
%attr(0644,root,root) %dir %{_datadir}/openldap/ucdata/*
%attr(0700,ldap,ldap) %dir /var/lib/ldap
%attr(0755,ldap,ldap) %dir /var/run/openldap
%attr(0755,root,root) %{_libdir}/libslapd_db-*.*.so
%ifarch %{nptl_arches}
%ifnarch %{ix86}
@ -627,8 +660,9 @@ fi
%defattr(-,root,root)
%doc openldap-%{version_23}/servers/slapd/back-sql/docs/*
%doc openldap-%{version_23}/servers/slapd/back-sql/rdbms_depend
%attr(0755,root,root) %{_sbindir}/openldap/back_sql.la
%attr(0755,root,root) %{_sbindir}/openldap/back_sql*.so.*
%attr(0755,root,root) %{_libdir}/openldap
%attr(0755,root,root) %{_libdir}/openldap/back_sql.la
%attr(0755,root,root) %{_libdir}/openldap/back_sql*.so.*
%files clients
%defattr(-,root,root)
@ -650,8 +684,33 @@ fi
%attr(0644,root,root) %{evolution_connector_libdir}/*.a
%changelog
* Tue Jan 10 2006 Jay Fenlason <fenlason@redhat.com> 2.3.16-2
- Upgrade to 2.3.16, which upstream will consider stable soon
* Tue Jan 10 2006 Jay Fenlason <fenlason@redhat.com> 2.3.19-2
- Upgrade to 2.3.19, which upstream now considers stable
- Modify the -config.patch, ldap.init, and this spec file to put the
pid file and args file in an ldap-owned openldap subdirectory under
/var/run.
- Move back_sql* out of %{_sbindir}/openldap , which requires
hand-moving slapd and slurpd to _sbindir, and recreating symlinks
by hand.
- Retire openldap-2.3.11-ads.patch, which went upstream.
- Update the ldap.init script to run slaptest as the ldap user rather
than as root. This solves
bz#150172 Startup failure after database problem
- Add to the servers post and preun scriptlets so that on preun, the
database is slapcatted to /var/lib/ldap/upgrade.ldif and the
database files are saved to /var/lib/ldap/rpmorig. On post, if
/var/lib/ldap/upgrade.ldif exists, it is slapadded. This means that
on upgrades from 2.3.16-2 to higher versions, the database files may
be automatically upgraded. Unfortunatly, because of the changes to
the preun scriptlet, users have to do the slapcat, etc by hand when
upgrading to 2.3.16-2. Also note that the /var/lib/ldap/rpmorig
files need to be removed by hand because automatically removing your
emergency fallback files is a bad idea.
- Upgrade internal bdb to db-4.4.20. For a clean upgrade, this will
require that users slapcat their databases into a temp file, move
/var/lib/ldap someplace safe, upgrade the openldap rpms, then
slapadd the temp file.
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt

View File

@ -1,6 +1,6 @@
5a9e617c1d5339d3c90c545c93e30949 autoconf-2.13.1.tar.gz
0faee50993f7e4fe00f4b921b640b84d automake-1.4a.tar.gz
fcc481d52c3b80e20a328f8c0cb042bd db-4.3.27.tar.gz
6c4c72a1336aa45b463e738034c078d6 openldap-2.2.29.tgz
dc80548f76d6aeba2b51b15751e08b21 MigrationTools-46.tar.gz
adb793bea93db1a56840e5c0c7a647f2 openldap-2.3.16.tgz
867ee197df0e4432fa00f2439e6094f6 openldap-2.3.19.tgz
33851f01b455cca48aa601956de93c6f db-4.4.20.tar.gz