]> git.sur5r.net Git - openldap/commitdiff
Add to RE23
authorKurt Zeilenga <kurt@openldap.org>
Thu, 23 Jun 2005 18:08:50 +0000 (18:08 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Thu, 23 Jun 2005 18:08:50 +0000 (18:08 +0000)
build/BerkeleyDB42.patch [new file with mode: 0644]

diff --git a/build/BerkeleyDB42.patch b/build/BerkeleyDB42.patch
new file mode 100644 (file)
index 0000000..7ff8874
--- /dev/null
@@ -0,0 +1,68 @@
+This patch is intended to be applied to Berkeley DB 4.2.52 and,
+if applied, will automatically be used by slapd(8) back-bdb/hdb.
+Without this patch the BDB DB_LOG_AUTOREMOVE option will not work,
+nor will db_archive allow any transaction log files to be removed
+while slapd is running.
+
+The patch can be applied to the BDB source using patch(1) as follows
+       cd db-4.2.52
+       patch -p0 < openldap-src/build/BerkeleyDB42.patch
+
+(modify directory paths as necessary), then recompile and reinstall
+the BerkeleyDB 4.2 library, and then build and install OpenLDAP
+Software.
+
+The patch should not be applied to Berkeley DB 4.3.
+
+
+Index: dbinc/db.in
+===================================================================
+RCS file: /var/CVSROOT/bdb42/dbinc/db.in,v
+retrieving revision 1.1.1.1
+retrieving revision 1.2
+diff -u -r1.1.1.1 -r1.2
+--- dbinc/db.in        25 Nov 2003 21:58:02 -0000      1.1.1.1
++++ dbinc/db.in        17 Jul 2004 16:07:23 -0000      1.2
+@@ -839,6 +839,7 @@
+ #define       TXN_NOWAIT      0x040           /* Do not wait on locks. */
+ #define       TXN_RESTORED    0x080           /* Transaction has been restored. */
+ #define       TXN_SYNC        0x100           /* Sync on prepare and commit. */
++#define       TXN_NOLOG       0x200           /* Do not log this transaction. */
+       u_int32_t       flags;
+ };
+Index: txn/txn.c
+===================================================================
+RCS file: /var/CVSROOT/bdb42/txn/txn.c,v
+retrieving revision 1.1.1.2
+retrieving revision 1.2
+diff -u -r1.1.1.2 -r1.2
+--- txn/txn.c  17 Dec 2003 21:43:53 -0000      1.1.1.2
++++ txn/txn.c  17 Jul 2004 16:07:27 -0000      1.2
+@@ -127,7 +127,7 @@
+       if ((ret = __db_fchk(dbenv,
+           "txn_begin", flags,
+           DB_DIRTY_READ | DB_TXN_NOWAIT |
+-          DB_TXN_NOSYNC | DB_TXN_SYNC)) != 0)
++          DB_TXN_NOSYNC | DB_TXN_SYNC | DB_TXN_NOT_DURABLE)) != 0)
+               return (ret);
+       if ((ret = __db_fcchk(dbenv,
+           "txn_begin", flags, DB_TXN_NOSYNC, DB_TXN_SYNC)) != 0)
+@@ -193,6 +193,8 @@
+               F_SET(txn, TXN_SYNC);
+       if (LF_ISSET(DB_TXN_NOWAIT))
+               F_SET(txn, TXN_NOWAIT);
++      if (LF_ISSET(DB_TXN_NOT_DURABLE))
++              F_SET(txn, TXN_NOLOG);
+       if ((ret = __txn_begin_int(txn, 0)) != 0)
+               goto err;
+@@ -328,7 +330,7 @@
+        * We should set this value when we write the first log record, not
+        * here.
+        */
+-      if (DBENV_LOGGING(dbenv))
++      if (DBENV_LOGGING(dbenv) && !F_ISSET(txn, TXN_NOLOG))
+               __log_txn_lsn(dbenv, &begin_lsn, NULL, NULL);
+       else
+               ZERO_LSN(begin_lsn);