X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=build%2FBerkeleyDB42.patch;h=7ff8874c0ca8d9807fbb23877caf7c9a58b200d5;hb=3fc2e1388ac22dd26d46828fbcfc5a2d1851837a;hp=ce203fb1bf906ef81ac3087d6a48a6a725a8b4d9;hpb=7685223bb9c311fabd5cb998dc7c33840c1c260c;p=openldap diff --git a/build/BerkeleyDB42.patch b/build/BerkeleyDB42.patch index ce203fb1bf..7ff8874c0c 100644 --- a/build/BerkeleyDB42.patch +++ b/build/BerkeleyDB42.patch @@ -1,51 +1,68 @@ -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); +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);