1
0
forked from jengelh/openldap2
OBS User unknown 2008-05-16 23:48:12 +00:00 committed by Git OBS Bridge
parent b4b686d58f
commit f9b2e9ca13
7 changed files with 586 additions and 8 deletions

28
README.update Normal file
View File

@ -0,0 +1,28 @@
Updating from OpenLDAP 2.3.X to 2.4.X
=====================================
Changed Database format:
Due change in the "BDB"-backend's index database format, existing
bdb-databases need to be reloaded from LDIF completely. This is
normally done during the package installation/update. This might not
work in all setups and for that database dumps of all bdb/hdb
databases are created during the update.
You can find the database dump of each bdb database in the
database directory for that database (default: /var/lib/ldap/). The
file name is "ldapbak.ldif.X" where "X" presents the number of the
database.
If the database backups where not created during the package update for
some reason, you can do them manually by using the command:
/usr/sbin/openldap-2.3-slapcat -T c \
-f /etc/openldap/schema.backup.XXXXXX/slapd.conf.update
Before dumping the database you should remove the db's enviroment (the
__db*-file in /var/lib/ldap)
To reload the databases please use the tool "slapadd".
Other Changes:
For additional information on important changes and upgrade
instructions, please have a look a the OpenLDAP Administrator's Guide.
You can find in at:
/usr/share/doc/packages/openldap2/guide/admin/guide.html
or online at:
http://www.openldap.org/doc/admin24/

331
openldap-2.3.37.dif Normal file
View File

@ -0,0 +1,331 @@
Index: build/top.mk
===================================================================
--- build/top.mk.orig
+++ build/top.mk
@@ -39,7 +39,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
-moduledir = @libexecdir@$(ldap_subdir)
+moduledir = @libexecdir@/modules
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@$(ldap_subdir)
@@ -58,7 +58,7 @@ INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644
INSTALL_SCRIPT = $(INSTALL)
-STRIP = -s
+#STRIP = -s
LINT = lint
5LINT = 5lint
@@ -175,9 +175,9 @@ SLAPD_L = $(LDAP_LIBLUNICODE_A) $(LDAP_L
WRAP_LIBS = @WRAP_LIBS@
# AutoConfig generated
AC_CC = @CC@
-AC_CFLAGS = @CFLAGS@
+AC_CFLAGS = @CFLAGS@ $(PIE_CFLAGS)
AC_DEFS = @CPPFLAGS@ # @DEFS@
-AC_LDFLAGS = @LDFLAGS@
+AC_LDFLAGS = @LDFLAGS@ $(PIE_LDFLAGS)
AC_LIBS = @LIBS@
KRB4_LIBS = @KRB4_LIBS@
Index: configure.in
===================================================================
--- configure.in.orig
+++ configure.in
@@ -64,7 +64,9 @@ dnl Determine host platform
dnl we try not to use this for much
AC_CANONICAL_TARGET([])
-AM_INIT_AUTOMAKE([$OL_PACKAGE],[$OL_VERSION], [no defines])dnl
+AC_PROG_MAKE_SET
+PACKAGE=$OL_PACKAGE
+VERSION=$OL_VERSION
AC_SUBST(PACKAGE)dnl
AC_SUBST(VERSION)dnl
AC_DEFINE_UNQUOTED(OPENLDAP_PACKAGE,"$PACKAGE",Package)
Index: servers/slapd/aclparse.c
===================================================================
--- servers/slapd/aclparse.c.orig
+++ servers/slapd/aclparse.c
@@ -662,7 +662,7 @@ parse_acl(
if ( rc != LDAP_SUCCESS ) {
char buf[ SLAP_TEXT_BUFLEN ];
- snprintf( buf, sizeof( buf ), "%s: line %d: "
+ snprintf( buf, sizeof( buf ),
" attr \"%s\" normalization failed (%d: %s)",
fname, lineno,
a->acl_attrs[ 0 ].an_name.bv_val, rc, text );
Index: libraries/liblunicode/Makefile.in
===================================================================
--- libraries/liblunicode/Makefile.in.orig
+++ libraries/liblunicode/Makefile.in
@@ -35,6 +35,9 @@ $(XXDIR)/uctable.h: $(XXDIR)/ucgendat.c
$(MAKE) ucgendat
./ucgendat $(srcdir)/UnicodeData.txt -x $(srcdir)/CompositionExclusions.txt
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
ucgendat: $(XLIBS) ucgendat.o
$(LTLINK) -o $@ ucgendat.o $(LIBS)
Index: libraries/liblutil/Makefile.in
===================================================================
--- libraries/liblutil/Makefile.in.orig
+++ libraries/liblutil/Makefile.in
@@ -19,6 +19,9 @@ PROGRAM = testavl
LDAP_INCDIR= ../../include
LDAP_LIBDIR= ../../libraries
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
NT_SRCS = ntservice.c
NT_OBJS = ntservice.o slapdmsg.res
Index: servers/slapd/Makefile.in
===================================================================
--- servers/slapd/Makefile.in.orig
+++ servers/slapd/Makefile.in
@@ -69,6 +69,9 @@ SLAPD_DYNAMIC_BACKENDS=@SLAPD_DYNAMIC_BA
SLAPI_LIBS=@LIBSLAPI@ @SLAPI_LIBS@
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
XDEFS = $(MODULES_CPPFLAGS)
XLDFLAGS = $(MODULES_LDFLAGS)
Index: servers/slurpd/Makefile.in
===================================================================
--- servers/slurpd/Makefile.in.orig
+++ servers/slurpd/Makefile.in
@@ -38,6 +38,9 @@ BUILD_SRV = @BUILD_SLURPD@
all-local-srv: $(PROGRAMS)
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
# $(LTHREAD_LIBS) must be last!
XLIBS = $(SLURPD_L)
XXLIBS = $(SLURPD_LIBS) $(SECURITY_LIBS) $(LUTIL_LIBS)
Index: servers/slapd/back-bdb/Makefile.in
===================================================================
--- servers/slapd/back-bdb/Makefile.in.orig
+++ servers/slapd/back-bdb/Makefile.in
@@ -37,6 +37,9 @@ mod_DEFS = -DSLAPD_IMPORT
MOD_DEFS = $(@BUILD_BDB@_DEFS)
MOD_LIBS = $(LDBM_LIBS)
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
shared_LDAP_LIBS = $(LDAP_LIBLDAP_R_LA) $(LDAP_LIBLBER_LA)
NT_LINK_LIBS = -L.. -lslapd $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
UNIX_LINK_LIBS = $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
Index: servers/slapd/back-hdb/Makefile.in
===================================================================
--- servers/slapd/back-hdb/Makefile.in.orig
+++ servers/slapd/back-hdb/Makefile.in
@@ -39,6 +39,9 @@ mod_DEFS = -DSLAPD_IMPORT
MOD_DEFS = $(@BUILD_HDB@_DEFS)
MOD_LIBS = $(LDBM_LIBS)
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
shared_LDAP_LIBS = $(LDAP_LIBLDAP_R_LA) $(LDAP_LIBLBER_LA)
NT_LINK_LIBS = -L.. -lslapd $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
UNIX_LINK_LIBS = $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
Index: servers/slapd/back-ldbm/Makefile.in
===================================================================
--- servers/slapd/back-ldbm/Makefile.in.orig
+++ servers/slapd/back-ldbm/Makefile.in
@@ -36,6 +36,9 @@ mod_DEFS = -DSLAPD_IMPORT
MOD_DEFS = $(@BUILD_LDBM@_DEFS)
MOD_LIBS = $(LDBM_LIBS)
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
shared_LDAP_LIBS = $(LDAP_LIBLDAP_R_LA) $(LDAP_LIBLBER_LA)
NT_LINK_LIBS = -L.. -lslapd $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
UNIX_LINK_LIBS = $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
Index: servers/slapd/overlays/Makefile.in
===================================================================
--- servers/slapd/overlays/Makefile.in.orig
+++ servers/slapd/overlays/Makefile.in
@@ -41,6 +41,9 @@ LTONLY_MOD = $(LTONLY_mod)
LDAP_INCDIR= ../../../include
LDAP_LIBDIR= ../../../libraries
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
MOD_DEFS = -DSLAPD_IMPORT
shared_LDAP_LIBS = $(LDAP_LIBLDAP_R_LA) $(LDAP_LIBLBER_LA)
Index: servers/slapd/back-relay/Makefile.in
===================================================================
--- servers/slapd/back-relay/Makefile.in.orig
+++ servers/slapd/back-relay/Makefile.in
@@ -24,6 +24,9 @@ BUILD_MOD = @BUILD_RELAY@
mod_DEFS = -DSLAPD_IMPORT
MOD_DEFS = $(@BUILD_RELAY@_DEFS)
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
shared_LDAP_LIBS = $(LDAP_LIBLDAP_R_LA) $(LDAP_LIBLBER_LA)
NT_LINK_LIBS = -L.. -lslapd $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS) $(REWRITE)
UNIX_LINK_LIBS = $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS) $(REWRITE)
Index: servers/slapd/back-ldif/Makefile.in
===================================================================
--- servers/slapd/back-ldif/Makefile.in.orig
+++ servers/slapd/back-ldif/Makefile.in
@@ -25,6 +25,9 @@ BUILD_MOD = yes
mod_DEFS = -DSLAPD_IMPORT
MOD_DEFS = $(yes_DEFS)
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
shared_LDAP_LIBS = $(LDAP_LIBLDAP_R_LA) $(LDAP_LIBLBER_LA)
NT_LINK_LIBS = -L.. -lslapd $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
UNIX_LINK_LIBS = $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
Index: libraries/librewrite/Makefile.in
===================================================================
--- libraries/librewrite/Makefile.in.orig
+++ libraries/librewrite/Makefile.in
@@ -26,6 +26,9 @@ OBJS = config.o context.o info.o ldapmap
LDAP_INCDIR= ../../include
LDAP_LIBDIR= ../../libraries
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
LIBRARY = librewrite.a
PROGRAMS = rewrite
XLIBS = $(LIBRARY) $(LDAP_LIBLUTIL_A) \
Index: servers/slapd/back-ldap/Makefile.in
===================================================================
--- servers/slapd/back-ldap/Makefile.in.orig
+++ servers/slapd/back-ldap/Makefile.in
@@ -27,6 +27,9 @@ BUILD_MOD = @BUILD_LDAP@
mod_DEFS = -DSLAPD_IMPORT
MOD_DEFS = $(@BUILD_LDAP@_DEFS)
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
shared_LDAP_LIBS = $(LDAP_LIBLDAP_R_LA) $(LDAP_LIBLBER_LA)
NT_LINK_LIBS = -L.. -lslapd $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
UNIX_LINK_LIBS = $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
Index: servers/slapd/back-monitor/Makefile.in
===================================================================
--- servers/slapd/back-monitor/Makefile.in.orig
+++ servers/slapd/back-monitor/Makefile.in
@@ -33,6 +33,9 @@ BUILD_MOD = @BUILD_MONITOR@
mod_DEFS = -DSLAPD_IMPORT
MOD_DEFS = $(@BUILD_MONITOR@_DEFS)
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
shared_LDAP_LIBS = $(LDAP_LIBLDAP_R_LA) $(LDAP_LIBLBER_LA)
NT_LINK_LIBS = -L.. -lslapd $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
UNIX_LINK_LIBS = $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
Index: servers/slapd/modify.c
===================================================================
--- servers/slapd/modify.c.orig
+++ servers/slapd/modify.c
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/modify.c,v 1.227.2.25 2007/01/02 21:43:56 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/modify.c,v 1.227.2.26 2007/09/04 03:42:37 hyc Exp $ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
* Copyright 1998-2007 The OpenLDAP Foundation.
@@ -734,6 +734,7 @@ int slap_mods_check(
"%s: value #%ld normalization failed",
ml->sml_type.bv_val, (long) nvals );
*text = textbuf;
+ BER_BVZERO( &ml->sml_nvalues[nvals] );
return rc;
}
}
Index: servers/slapd/back-bdb/modrdn.c
===================================================================
--- servers/slapd/back-bdb/modrdn.c.orig
+++ servers/slapd/back-bdb/modrdn.c
@@ -729,6 +729,8 @@ retry: /* transaction retry */
} else {
rs->sr_err = LDAP_X_NO_OPERATION;
ltid = NULL;
+ /* Only free attrs if they were dup'd. */
+ if ( dummy.e_attrs == e->e_attrs ) dummy.e_attrs = NULL;
goto return_results;
}
Index: libraries/liblber/Makefile.in
===================================================================
--- libraries/liblber/Makefile.in.orig
+++ libraries/liblber/Makefile.in
@@ -34,6 +34,9 @@ PROGRAMS= dtest etest idtest
LDAP_INCDIR= ../../include
LDAP_LIBDIR= ../../libraries
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
XLIBS = $(LIBRARY) $(LDAP_LIBLUTIL_A)
XXLIBS =
NT_LINK_LIBS = $(AC_LIBS)
Index: libraries/libldap/Makefile.in
===================================================================
--- libraries/libldap/Makefile.in.orig
+++ libraries/libldap/Makefile.in
@@ -42,6 +42,9 @@ OBJS = bind.lo open.lo result.lo error.l
LDAP_INCDIR= ../../include
LDAP_LIBDIR= ../../libraries
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
LIB_DEFS = -DLDAP_LIBRARY
XLIBS = $(LIBRARY) $(LDAP_LIBLBER_LA) $(LDAP_LIBLUTIL_A)
Index: libraries/libldap_r/Makefile.in
===================================================================
--- libraries/libldap_r/Makefile.in.orig
+++ libraries/libldap_r/Makefile.in
@@ -49,6 +49,9 @@ OBJS = threads.lo rdwr.lo tpool.lo rq.l
LDAP_INCDIR= ../../include
LDAP_LIBDIR= ../../libraries
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
LIB_DEFS = -DLDAP_LIBRARY
XDEFS = -DLDAP_R_COMPILE -I$(XXDIR)
Index: servers/slapd/back-meta/Makefile.in
===================================================================
--- servers/slapd/back-meta/Makefile.in.orig
+++ servers/slapd/back-meta/Makefile.in
@@ -23,6 +23,9 @@ OBJS = init.lo config.lo search.lo bind.
LDAP_INCDIR= ../../../include
LDAP_LIBDIR= ../../../libraries
+PIE_CFLAGS="-fPIE"
+PIE_LDFLAGS="-pie"
+
BUILD_OPT = "--enable-meta"
BUILD_MOD = @BUILD_META@

3
openldap-2.3.37.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f08ee02ed2dde1ce2bc3dc2d894984b69749fd29f7907fcbadfb077e52b8b818
size 2948378

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri May 16 13:24:11 CEST 2008 - rhafer@suse.de
- Support update from 2.3 releases (bnc#390247)
-------------------------------------------------------------------
Thu May 8 08:55:00 CEST 2008 - rhafer@suse.de

View File

@ -29,12 +29,14 @@ Summary: OpenLDAP Client Utilities
%endif
AutoReqProv: on
Version: 2.4.9
Release: 1
Release: 3
Source: openldap-%{version}.tar.bz2
Source1: openldap-rc.tgz
Source2: addonschema.tar.gz
Source3: DB_CONFIG
Source4: sasl-slapd.conf
Source5: README.update
Source100: openldap-2.3.37.tar.bz2
Patch: openldap2.dif
Patch1: secpatch.dif
Patch2: slapd_conf.dif
@ -45,6 +47,7 @@ Patch6: libldap-gethostbyname_r.dif
Patch7: pie-compile.dif
Patch8: slapd_getaddrinfo_dupl.dif
Patch9: openldap2-add-gnu-source.diff
Patch100: openldap-2.3.37.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@ -112,7 +115,7 @@ Authors:
The OpenLDAP Project <project@openldap.org>
%prep
%setup -q -n openldap-%{version} -a1 -a2
%setup -q -n openldap-%{version} -a1 -a2 -b100
%patch
%patch1
%patch2
@ -123,6 +126,9 @@ Authors:
%patch7
%patch8 -p1
%patch9 -p1
cp %{SOURCE5} .
cd ../openldap-2.3.37
%patch100
%build
%{?suse_update_config:%{suse_update_config -f build}}
@ -165,6 +171,25 @@ export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -DLDAP_DEPRECATED -DLDAP_CONN
--with-yielding-select
make depend
make %{?jobs:-j%jobs}
%if "%{name}" == "openldap2"
# build a static slapcat binary from the OpenLDAP 2.3 release
# to be able to update existing databases
cd ../openldap-2.3.37
%{?suse_update_config:%{suse_update_config -f build}}
libtoolize --force
#aclocal -I build
autoreconf
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -DLDAP_DEPRECATED"
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
--localstatedir=/var/run/slapd --libexecdir=/usr/lib/openldap \
--libdir=%{_libdir} --mandir=%{_mandir} --enable-aci \
--enable-hdb --enable-bdb --enable-ldbm --enable-crypt \
--enable-ipv6=no \
--enable-ldap --enable-monitor --enable-meta --enable-rewrite \
--enable-dynamic=no --enable-shared=no
make depend
make %{?jobs:-j%jobs}
%endif
%check
# calculate the base port to be use in the test-suite
@ -204,6 +229,8 @@ rm -f `find doc/guide ! -name *.html -a ! -name *.gif -a ! -name *.png -a ! -ty
rm -rf doc/guide/release
rm -f $RPM_BUILD_ROOT/etc/openldap/DB_CONFIG.example
rm -f $RPM_BUILD_ROOT/var/run/slapd/openldap-data/DB_CONFIG.example
# install 2.3 slapcat
install -m 755 ../openldap-2.3.37/servers/slapd/slapcat $RPM_BUILD_ROOT/usr/sbin/openldap-2.3-slapcat
%endif
rm -f $RPM_BUILD_ROOT/usr/lib/openldap/modules/*.a
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-dnssrv.5
@ -215,7 +242,6 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-sql.5
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-tcl.5
# Remove *.la files, libtool does not handle this correct
rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.la
#
#put filelists into files
cat >openldap2.filelist <<EOF
/var/adm/fillup-templates/sysconfig.openldap
@ -223,6 +249,7 @@ cat >openldap2.filelist <<EOF
/etc/sysconfig/SuSEfirewall2.d/services/openldap
/usr/sbin/rcldap
/usr/sbin/slap*
/usr/sbin/openldap-2.3-slapcat
%dir /etc/openldap
%dir %attr(0770, ldap, ldap) /etc/openldap/slapd.d
/etc/openldap/schema
@ -249,6 +276,7 @@ cat >openldap2.filelist <<EOF
%doc %{_mandir}/man5/slapo-*
%doc ANNOUNCEMENT COPYRIGHT INSTALL LICENSE README CHANGES
%doc doc/drafts doc/guide
%doc README.update
EOF
#
cat > openldap2-client.filelist <<EOF
@ -307,6 +335,18 @@ cat openldap2.filelist openldap2-back-perl.filelist openldap2-back-meta.filelist
/usr/sbin/groupadd -g 70 -o -r ldap 2> /dev/null || :
/usr/sbin/useradd -r -o -g ldap -u 76 -s /bin/bash -c "User for OpenLDAP" -d \
/var/lib/ldap ldap 2> /dev/null || :
# try to figure out if a db update is needed
if [ ${1:-0} -gt 1 ] && [ -f /usr/lib/openldap/slapd ] &&
/usr/bin/strings /usr/lib/openldap/slapd | \
grep "slapd 2.3" 2>&1 > /dev/null;
then
# create a backup of the schema shipped with 2.3
# at least core.schema changed between 2.3 and 2.4
TEMPDIR=`mktemp -d /etc/openldap/schema.backup.XXXXXX`
echo "Schema backup created in $TEMPDIR"
cp -p --remove-destination /etc/openldap/schema/* $TEMPDIR
echo $TEMPDIR > /etc/openldap/UPDATE_NEEDED ;
fi
%post
if [ ${1:-0} -gt 1 ] && [ -f %{_libdir}/sasl2/slapd.conf ] ; then
@ -315,6 +355,67 @@ if [ ${1:-0} -gt 1 ] && [ -f %{_libdir}/sasl2/slapd.conf ] ; then
fi
%{fillup_and_insserv -n -s openldap ldap START_LDAP}
%{remove_and_set -n openldap OPENLDAP_RUN_DB_RECOVER}
# convert database if needed
if [ -f /etc/openldap/UPDATE_NEEDED ] ; then
read SCHEMA_BACKUP < /etc/openldap/UPDATE_NEEDED
SLAPD_CONF=/etc/openldap/slapd.conf
sed -e "s;/etc/openldap/schema/;$SCHEMA_BACKUP/;g" \
< $SLAPD_CONF > $SCHEMA_BACKUP/slapd.conf.update
LOGFILE="slaptool.log"
BACKENDS=`grep ^database $SLAPD_CONF | awk '{print $2}'`
DIRECTORIES=(`grep ^directory $SLAPD_CONF | awk '{print $2}'`)
MSG=""
db_num=0
dir_num=0
for i in $BACKENDS; do
db_num=$((db_num+1));
if [ "x$i" = "xbdb" ]; then
db_dir=${DIRECTORIES[$dir_num]};
if [ -f $db_dir/id2entry.bdb ] ; then
rm $db_dir/__db* ;
mkdir $db_dir/db_bak ;
echo "Dumping database to: $db_dir/ldapbak.ldif.$db_num" ;
/usr/sbin/openldap-2.3-slapcat -T c \
-f $SCHEMA_BACKUP/slapd.conf.update \
-n $db_num -l $db_dir/ldapbak.ldif.$db_num ;
mv $db_dir/*.bdb $db_dir/db_bak/ ;
mv $db_dir/log.* $db_dir/db_bak/ ;
rm -f $db_dir/__db* ;
fi
dir_num=$((dir_num+1));
fi
done
db_num=0
dir_num=0
for i in $BACKENDS; do
db_num=$((db_num+1));
if [ "x$i" = "xbdb" ] || [ "x$i" = "xhdb" ] ; then
db_dir=${DIRECTORIES[$dir_num]};
if [ -s $db_dir/ldapbak.ldif.$db_num ] ; then
if [ `wc -l $db_dir/ldapbak.ldif.$db_num | awk '{print $1}'` -lt 1000000 ]; then
echo "Restoring $i database in $db_dir" ;
slapadd -q -n $db_num -f $SLAPD_CONF -l $db_dir/ldapbak.ldif.$db_num 2>> $db_dir/$LOGFILE ;
if [ $? -ne 0 ]; then
MSG="$MSG\nFailed to restore database in $db_dir";
MSG="$MSG\nPlease restore manually from the LDIF dump $db_dir/ldapbak.ldif.$db_num\n";
else
rm -f $db_dir/ldapbak.ldif.$db_num
rm -rf $db_dir/db_bak/
fi
else
MSG="$MSG\nPlease restore the database in $db_dir manually by using";
MSG="$MSG\nslapadd with the LDIF dump $db_dir/ldapbak.ldif.$db_num\n";
fi
fi
dir_num=$((dir_num+1));
fi
done
if [ "$MSG" ] ; then
echo -e "$MSG";
else
rm -f /etc/openldap/UPDATE_NEEDED ;
fi
fi
%preun
%stop_on_removal ldap
@ -345,6 +446,8 @@ fi
%endif
%changelog
* Fri May 16 2008 rhafer@suse.de
- Support update from 2.3 releases (bnc#390247)
* Thu May 08 2008 rhafer@suse.de
- Update to Version 2.4.9. Most important changes:
* Fixed libldap to use unsigned port (ITS#5436)

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri May 16 13:24:11 CEST 2008 - rhafer@suse.de
- Support update from 2.3 releases (bnc#390247)
-------------------------------------------------------------------
Thu May 8 08:55:00 CEST 2008 - rhafer@suse.de

View File

@ -29,12 +29,14 @@ Summary: The OpenLDAP Server
%endif
AutoReqProv: on
Version: 2.4.9
Release: 1
Release: 3
Source: openldap-%{version}.tar.bz2
Source1: openldap-rc.tgz
Source2: addonschema.tar.gz
Source3: DB_CONFIG
Source4: sasl-slapd.conf
Source5: README.update
Source100: openldap-2.3.37.tar.bz2
Patch: openldap2.dif
Patch1: secpatch.dif
Patch2: slapd_conf.dif
@ -45,6 +47,7 @@ Patch6: libldap-gethostbyname_r.dif
Patch7: pie-compile.dif
Patch8: slapd_getaddrinfo_dupl.dif
Patch9: openldap2-add-gnu-source.diff
Patch100: openldap-2.3.37.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@ -115,7 +118,7 @@ Authors:
The OpenLDAP Project <project@openldap.org>
%prep
%setup -q -n openldap-%{version} -a1 -a2
%setup -q -n openldap-%{version} -a1 -a2 -b100
%patch
%patch1
%patch2
@ -126,6 +129,9 @@ Authors:
%patch7
%patch8 -p1
%patch9 -p1
cp %{SOURCE5} .
cd ../openldap-2.3.37
%patch100
%build
%{?suse_update_config:%{suse_update_config -f build}}
@ -168,6 +174,25 @@ export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -DLDAP_DEPRECATED -DLDAP_CONN
--with-yielding-select
make depend
make %{?jobs:-j%jobs}
%if "%{name}" == "openldap2"
# build a static slapcat binary from the OpenLDAP 2.3 release
# to be able to update existing databases
cd ../openldap-2.3.37
%{?suse_update_config:%{suse_update_config -f build}}
libtoolize --force
#aclocal -I build
autoreconf
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -DLDAP_DEPRECATED"
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
--localstatedir=/var/run/slapd --libexecdir=/usr/lib/openldap \
--libdir=%{_libdir} --mandir=%{_mandir} --enable-aci \
--enable-hdb --enable-bdb --enable-ldbm --enable-crypt \
--enable-ipv6=no \
--enable-ldap --enable-monitor --enable-meta --enable-rewrite \
--enable-dynamic=no --enable-shared=no
make depend
make %{?jobs:-j%jobs}
%endif
%check
# calculate the base port to be use in the test-suite
@ -207,6 +232,8 @@ rm -f `find doc/guide ! -name *.html -a ! -name *.gif -a ! -name *.png -a ! -ty
rm -rf doc/guide/release
rm -f $RPM_BUILD_ROOT/etc/openldap/DB_CONFIG.example
rm -f $RPM_BUILD_ROOT/var/run/slapd/openldap-data/DB_CONFIG.example
# install 2.3 slapcat
install -m 755 ../openldap-2.3.37/servers/slapd/slapcat $RPM_BUILD_ROOT/usr/sbin/openldap-2.3-slapcat
%endif
rm -f $RPM_BUILD_ROOT/usr/lib/openldap/modules/*.a
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-dnssrv.5
@ -218,7 +245,6 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-sql.5
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/slapd-tcl.5
# Remove *.la files, libtool does not handle this correct
rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.la
#
#put filelists into files
cat >openldap2.filelist <<EOF
/var/adm/fillup-templates/sysconfig.openldap
@ -226,6 +252,7 @@ cat >openldap2.filelist <<EOF
/etc/sysconfig/SuSEfirewall2.d/services/openldap
/usr/sbin/rcldap
/usr/sbin/slap*
/usr/sbin/openldap-2.3-slapcat
%dir /etc/openldap
%dir %attr(0770, ldap, ldap) /etc/openldap/slapd.d
/etc/openldap/schema
@ -252,6 +279,7 @@ cat >openldap2.filelist <<EOF
%doc %{_mandir}/man5/slapo-*
%doc ANNOUNCEMENT COPYRIGHT INSTALL LICENSE README CHANGES
%doc doc/drafts doc/guide
%doc README.update
EOF
#
cat > openldap2-client.filelist <<EOF
@ -310,6 +338,18 @@ cat openldap2.filelist openldap2-back-perl.filelist openldap2-back-meta.filelist
/usr/sbin/groupadd -g 70 -o -r ldap 2> /dev/null || :
/usr/sbin/useradd -r -o -g ldap -u 76 -s /bin/bash -c "User for OpenLDAP" -d \
/var/lib/ldap ldap 2> /dev/null || :
# try to figure out if a db update is needed
if [ ${1:-0} -gt 1 ] && [ -f /usr/lib/openldap/slapd ] &&
/usr/bin/strings /usr/lib/openldap/slapd | \
grep "slapd 2.3" 2>&1 > /dev/null;
then
# create a backup of the schema shipped with 2.3
# at least core.schema changed between 2.3 and 2.4
TEMPDIR=`mktemp -d /etc/openldap/schema.backup.XXXXXX`
echo "Schema backup created in $TEMPDIR"
cp -p --remove-destination /etc/openldap/schema/* $TEMPDIR
echo $TEMPDIR > /etc/openldap/UPDATE_NEEDED ;
fi
%post
if [ ${1:-0} -gt 1 ] && [ -f %{_libdir}/sasl2/slapd.conf ] ; then
@ -318,6 +358,67 @@ if [ ${1:-0} -gt 1 ] && [ -f %{_libdir}/sasl2/slapd.conf ] ; then
fi
%{fillup_and_insserv -n -s openldap ldap START_LDAP}
%{remove_and_set -n openldap OPENLDAP_RUN_DB_RECOVER}
# convert database if needed
if [ -f /etc/openldap/UPDATE_NEEDED ] ; then
read SCHEMA_BACKUP < /etc/openldap/UPDATE_NEEDED
SLAPD_CONF=/etc/openldap/slapd.conf
sed -e "s;/etc/openldap/schema/;$SCHEMA_BACKUP/;g" \
< $SLAPD_CONF > $SCHEMA_BACKUP/slapd.conf.update
LOGFILE="slaptool.log"
BACKENDS=`grep ^database $SLAPD_CONF | awk '{print $2}'`
DIRECTORIES=(`grep ^directory $SLAPD_CONF | awk '{print $2}'`)
MSG=""
db_num=0
dir_num=0
for i in $BACKENDS; do
db_num=$((db_num+1));
if [ "x$i" = "xbdb" ]; then
db_dir=${DIRECTORIES[$dir_num]};
if [ -f $db_dir/id2entry.bdb ] ; then
rm $db_dir/__db* ;
mkdir $db_dir/db_bak ;
echo "Dumping database to: $db_dir/ldapbak.ldif.$db_num" ;
/usr/sbin/openldap-2.3-slapcat -T c \
-f $SCHEMA_BACKUP/slapd.conf.update \
-n $db_num -l $db_dir/ldapbak.ldif.$db_num ;
mv $db_dir/*.bdb $db_dir/db_bak/ ;
mv $db_dir/log.* $db_dir/db_bak/ ;
rm -f $db_dir/__db* ;
fi
dir_num=$((dir_num+1));
fi
done
db_num=0
dir_num=0
for i in $BACKENDS; do
db_num=$((db_num+1));
if [ "x$i" = "xbdb" ] || [ "x$i" = "xhdb" ] ; then
db_dir=${DIRECTORIES[$dir_num]};
if [ -s $db_dir/ldapbak.ldif.$db_num ] ; then
if [ `wc -l $db_dir/ldapbak.ldif.$db_num | awk '{print $1}'` -lt 1000000 ]; then
echo "Restoring $i database in $db_dir" ;
slapadd -q -n $db_num -f $SLAPD_CONF -l $db_dir/ldapbak.ldif.$db_num 2>> $db_dir/$LOGFILE ;
if [ $? -ne 0 ]; then
MSG="$MSG\nFailed to restore database in $db_dir";
MSG="$MSG\nPlease restore manually from the LDIF dump $db_dir/ldapbak.ldif.$db_num\n";
else
rm -f $db_dir/ldapbak.ldif.$db_num
rm -rf $db_dir/db_bak/
fi
else
MSG="$MSG\nPlease restore the database in $db_dir manually by using";
MSG="$MSG\nslapadd with the LDIF dump $db_dir/ldapbak.ldif.$db_num\n";
fi
fi
dir_num=$((dir_num+1));
fi
done
if [ "$MSG" ] ; then
echo -e "$MSG";
else
rm -f /etc/openldap/UPDATE_NEEDED ;
fi
fi
%preun
%stop_on_removal ldap
@ -348,6 +449,8 @@ fi
%endif
%changelog
* Fri May 16 2008 rhafer@suse.de
- Support update from 2.3 releases (bnc#390247)
* Thu May 08 2008 rhafer@suse.de
- Update to Version 2.4.9. Most important changes:
* Fixed libldap to use unsigned port (ITS#5436)