aboutsummaryrefslogtreecommitdiff
path: root/databases/db44
diff options
context:
space:
mode:
authorMatthias Andree <mandree@FreeBSD.org>2010-10-09 13:54:56 +0000
committerMatthias Andree <mandree@FreeBSD.org>2010-10-09 13:54:56 +0000
commitf08cbd6639ff8218229c53284ea042da83622531 (patch)
treef4f8768c28e9187f913acf2134c0317979b8d352 /databases/db44
parenta2388ee3d6d7742ddb5166fd3d0ea3fd356ed9c6 (diff)
downloadports-f08cbd6639ff8218229c53284ea042da83622531.tar.gz
ports-f08cbd6639ff8218229c53284ea042da83622531.zip
Move vendor patches into files/.
Fix WITH_DEBUG build, reported by Edward Sanford.
Notes
Notes: svn path=/head/; revision=262683
Diffstat (limited to 'databases/db44')
-rw-r--r--databases/db44/Makefile19
-rw-r--r--databases/db44/files/patch-dist::configure2
-rw-r--r--databases/db44/files/patch-upstream.4.4.20.127
-rw-r--r--databases/db44/files/patch-upstream.4.4.20.229
-rw-r--r--databases/db44/files/patch-upstream.4.4.20.349
-rw-r--r--databases/db44/files/patch-upstream.4.4.20.424
6 files changed, 132 insertions, 18 deletions
diff --git a/databases/db44/Makefile b/databases/db44/Makefile
index d62c982ce940..3051b11843a4 100644
--- a/databases/db44/Makefile
+++ b/databases/db44/Makefile
@@ -15,29 +15,14 @@ PKGNAMESUFFIX?=
DISTNAME= db-4.4.20
DIST_SUBDIR= bdb
-PATCH_SITES= http://www.oracle.com/technology/products/berkeley-db/db/update/4.4.20/
-PATCHFILES= patch.4.4.20.1 patch.4.4.20.2 patch.4.4.20.3 patch.4.4.20.4
-PATCH_DIST_STRIP= -d ..
-# * patch.4.4.20.1: -----------------------------------------------------------
-# Fix a bug that could cause a trap during recovery if multiple operations that
-# could remove the same extent were recovered. [#14061]
-# * patch.4.4.20.2: -----------------------------------------------------------
-# Fix a bug that could cause traps or hangs if the DB_TXN->set_name function is
-# used in a multithreaded application. [#14033]
-# * patch.4.4.20.3: -----------------------------------------------------------
-# Fix a bug where cursor lookups on secondary databases with off-page
-# duplicates could fail. [#14240]
-# * patch.4.4.20.4: -----------------------------------------------------------
-# Fix a bug where cache buffer retrieval could race with a checkpoint
-# call, potentially causing database environment recovery to fail. [#14657]
-
MAINTAINER= mandree@FreeBSD.org
COMMENT= The Berkeley DB package, revision 4.4
WRKSRC= ${WRKDIR}/${DISTNAME}/build_unix
USE_LDCONFIG= yes
-GNU_CONFIGURE= yes
+GNU_CONFIGURE= yes
+DEBUG_FLAGS= -g -O1 # need -O1 for inline assembly
CONFIGURE_SCRIPT= ../dist/configure
LIBTOOLFILES= ${CONFIGURE_SCRIPT}
BDBVER= ${PORTVERSION:R:R}
diff --git a/databases/db44/files/patch-dist::configure b/databases/db44/files/patch-dist::configure
index 2dac99fc909d..5aceb834b77d 100644
--- a/databases/db44/files/patch-dist::configure
+++ b/databases/db44/files/patch-dist::configure
@@ -1,6 +1,6 @@
--- ../dist/configure.orig Wed Dec 5 13:14:02 2001
+++ ../dist/configure Wed Dec 5 13:24:01 2001
-@@ -20867,8 +20867,8 @@
+@@ -21657,8 +21657,8 @@
MAKEFILE_CC="\$(LIBTOOL) --mode=compile ${MAKEFILE_CC}"
-MAKEFILE_SOLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CCLINK} -avoid-version"
diff --git a/databases/db44/files/patch-upstream.4.4.20.1 b/databases/db44/files/patch-upstream.4.4.20.1
new file mode 100644
index 000000000000..bd7334747039
--- /dev/null
+++ b/databases/db44/files/patch-upstream.4.4.20.1
@@ -0,0 +1,27 @@
+*** ../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/databases/db44/files/patch-upstream.4.4.20.2 b/databases/db44/files/patch-upstream.4.4.20.2
new file mode 100644
index 000000000000..dbcd69962bda
--- /dev/null
+++ b/databases/db44/files/patch-upstream.4.4.20.2
@@ -0,0 +1,29 @@
+*** ../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/databases/db44/files/patch-upstream.4.4.20.3 b/databases/db44/files/patch-upstream.4.4.20.3
new file mode 100644
index 000000000000..d859c42a44c1
--- /dev/null
+++ b/databases/db44/files/patch-upstream.4.4.20.3
@@ -0,0 +1,49 @@
+*** ../db/db_cam.c.orig 2006-01-11 03:19:21.000000000 +1100
+--- ../db/db_cam.c 2006-03-01 13:59:01.000000000 +1100
+***************
+*** 579,589 ****
+ flags == DB_NEXT || flags == DB_NEXT_DUP || flags == DB_PREV)) {
+ if (tmp_rmw && (ret = dbc_arg->c_am_writelock(dbc_arg)) != 0)
+ return (ret);
+! if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0)
+ return (ret);
+
+! switch (ret =
+! opd->c_am_get(opd, key, data, flags, NULL)) {
+ case 0:
+ goto done;
+ case DB_NOTFOUND:
+--- 579,590 ----
+ flags == DB_NEXT || flags == DB_NEXT_DUP || flags == DB_PREV)) {
+ if (tmp_rmw && (ret = dbc_arg->c_am_writelock(dbc_arg)) != 0)
+ return (ret);
+! if (F_ISSET(dbc_arg, DBC_TRANSIENT))
+! opd = cp->opd;
+! else if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0)
+ return (ret);
+
+! switch (ret = opd->c_am_get(opd, key, data, flags, NULL)) {
+ case 0:
+ goto done;
+ case DB_NOTFOUND:
+***************
+*** 596,607 ****
+--- 597,614 ----
+ if ((ret = __db_c_close(opd)) != 0)
+ goto err;
+ opd = NULL;
++ if (F_ISSET(dbc_arg, DBC_TRANSIENT))
++ cp->opd = NULL;
+ break;
+ }
+ goto err;
+ default:
+ goto err;
+ }
++ } else if (cp->opd != NULL && F_ISSET(dbc_arg, DBC_TRANSIENT)) {
++ if ((ret = __db_c_close(cp->opd)) != 0)
++ goto err;
++ cp->opd = NULL;
+ }
+
+ /*
diff --git a/databases/db44/files/patch-upstream.4.4.20.4 b/databases/db44/files/patch-upstream.4.4.20.4
new file mode 100644
index 000000000000..d6ee29d12d6a
--- /dev/null
+++ b/databases/db44/files/patch-upstream.4.4.20.4
@@ -0,0 +1,24 @@
+*** ../mp/mp_fget.c.orig 2005-10-12 10:53:36.000000000 -0700
+--- ../mp/mp_fget.c 2006-05-30 20:48:10.000000000 -0700
+***************
+*** 587,594 ****
+ */
+ if (state != SECOND_MISS && bhp->ref == 1) {
+ bhp->priority = UINT32_MAX;
+! SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh);
+! SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq);
+ hp->hash_priority =
+ SH_TAILQ_FIRSTP(&hp->hash_bucket, __bh)->priority;
+ }
+--- 587,597 ----
+ */
+ if (state != SECOND_MISS && bhp->ref == 1) {
+ bhp->priority = UINT32_MAX;
+! if (SH_TAILQ_FIRST(&hp->hash_bucket, __bh) !=
+! SH_TAILQ_LAST(&hp->hash_bucket, hq, __bh)) {
+! SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh);
+! SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq);
+! }
+ hp->hash_priority =
+ SH_TAILQ_FIRSTP(&hp->hash_bucket, __bh)->priority;
+ }