diff --git a/.cvsignore b/.cvsignore index 976b86e..1314f06 100644 --- a/.cvsignore +++ b/.cvsignore @@ -4,3 +4,4 @@ openldap-2.3.19.tgz db-4.4.20.tar.gz autoconf-2.13.1.tar.gz automake-1.4a.tar.gz +openldap-2.3.21.tgz diff --git a/db-4.4.20-1.patch b/db-4.4.20-1.patch new file mode 100644 index 0000000..463d942 --- /dev/null +++ b/db-4.4.20-1.patch @@ -0,0 +1,31 @@ +Fix a bug that could cause a trap during recovery if multiple +operations that could remove the same extent were recovered. [#14061] + + +*** qam/qam_files.c.orig 2005-10-20 11:57:12.000000000 -0700 +--- qam/qam_files.c 2006-01-27 13:38:38.000000000 -0800 +*************** +*** 411,416 **** +--- 411,422 ---- + DB_APP_DATA, buf, 0, NULL, &real_name)) != 0) + goto err; + #endif ++ ++ mpf = array->mpfarray[offset].mpf; ++ /* This extent my already be marked for delete and closed. */ ++ if (mpf == NULL) ++ goto err; ++ + /* + * The log must be flushed before the file is deleted. We depend on + * the log record of the last delete to recreate the file if we crash. +*************** +*** 418,424 **** + if (LOGGING_ON(dbenv) && (ret = __log_flush(dbenv, NULL)) != 0) + goto err; + +- mpf = array->mpfarray[offset].mpf; + (void)__memp_set_flags(mpf, DB_MPOOL_UNLINK, 1); + /* Someone could be real slow, let them close it down. */ + if (array->mpfarray[offset].pinref != 0) +--- 424,429 ---- diff --git a/db-4.4.20-2.patch b/db-4.4.20-2.patch new file mode 100644 index 0000000..a994810 --- /dev/null +++ b/db-4.4.20-2.patch @@ -0,0 +1,32 @@ +Fix a bug that could cause traps or hangs if the DB_TXN->set_name function +is used in a multithreaded application. [#14033] + + +*** txn/txn.c.orig Tue Nov 1 06:50:03 2005 +--- txn/txn.c Tue Jan 31 15:05:13 2006 +*************** +*** 1049,1060 **** +--- 1049,1062 ---- + return (ret); + memcpy(txn->name, name, len); + ++ TXN_SYSTEM_LOCK(dbenv); + if (td->name != INVALID_ROFF) { + __db_shalloc_free( + &mgr->reginfo, R_ADDR(&mgr->reginfo, td->name)); + td->name = INVALID_ROFF; + } + if ((ret = __db_shalloc(&mgr->reginfo, len, 0, &p)) != 0) { ++ TXN_SYSTEM_UNLOCK(dbenv); + __db_err(dbenv, + "Unable to allocate memory for transaction name"); + +*************** +*** 1063,1068 **** +--- 1065,1071 ---- + + return (ret); + } ++ TXN_SYSTEM_UNLOCK(dbenv); + td->name = R_OFFSET(&mgr->reginfo, p); + memcpy(p, name, len); diff --git a/openldap.spec b/openldap.spec index da43142..e817ffa 100644 --- a/openldap.spec +++ b/openldap.spec @@ -2,7 +2,7 @@ %define db_version 4.4.20 %define ldbm_backend berkeley %define version_22 2.2.29 -%define version_23 2.3.19 +%define version_23 2.3.21 %define evolution_connector_prefix %{_libdir}/evolution-openldap %define evolution_connector_includedir %{evolution_connector_prefix}/include %define evolution_connector_libdir %{evolution_connector_prefix}/%{_lib} @@ -13,7 +13,7 @@ Summary: The configuration files, libraries, and documentation for OpenLDAP. Name: openldap Version: %{version_23} -Release: 4 +Release: 2 License: OpenLDAP Group: System Environment/Daemons Source0: ftp://ftp.OpenLDAP.org/pub/OpenLDAP/openldap-release/openldap-%{version_23}.tgz @@ -57,6 +57,8 @@ Patch303: MigrationTools-26-suffix.patch Patch304: MigrationTools-46-schema.patch Patch305: MigrationTools-45-noaliases.patch +Patch400: db-4.4.20-1.patch +Patch401: db-4.4.20-2.patch URL: http://www.openldap.org/ BuildRoot: %{_tmppath}/%{name}-%{version_23}-root @@ -151,6 +153,12 @@ required by some applications. %prep %setup -q -c -a 1 -a 2 -a 3 -a 4 -a 5 +pushd db-%{db_version} +%patch400 -b .patch1 +%patch401 -b .patch2 +popd + + pushd openldap-%{version_23} cp %{_datadir}/libtool/config.{sub,guess} build/ popd @@ -221,7 +229,6 @@ popd %build autodir=`pwd`/auto-instroot dbdir=`pwd`/db-instroot -dbdir40=`pwd`/db-instroot-4.0 libtool='%{_bindir}/libtool' tagname=CC; export tagname PATH=${autodir}/bin:${PATH} @@ -682,6 +689,10 @@ fi %attr(0644,root,root) %{evolution_connector_libdir}/*.a %changelog +* Thu Apr 27 2006 Jay Fenlason 2.3.21-2 +- Upgrade to 2.3.21 +- Add two upstream patches for db-4.4.20 + * Mon Feb 13 2006 Jay Fenlason 2.3.19-4 - Re-fix ldap.init diff --git a/sources b/sources index ac3510d..16bf141 100644 --- a/sources +++ b/sources @@ -2,5 +2,5 @@ 0faee50993f7e4fe00f4b921b640b84d automake-1.4a.tar.gz 6c4c72a1336aa45b463e738034c078d6 openldap-2.2.29.tgz dc80548f76d6aeba2b51b15751e08b21 MigrationTools-46.tar.gz -867ee197df0e4432fa00f2439e6094f6 openldap-2.3.19.tgz 33851f01b455cca48aa601956de93c6f db-4.4.20.tar.gz +37ef142fc05abd088a4bb2d30dc4c679 openldap-2.3.21.tgz