summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorJuergen Daubert <jue@jue.li>2006-11-18 11:06:04 +0100
committerJuergen Daubert <jue@jue.li>2006-11-18 11:06:04 +0100
commit71bc4ab36ffc7abdf70d66c076923adc2eb31980 (patch)
tree10831f080c5fff2694affd974bcece44c4575e7d /db
parent1f95579489e34c29ad1a22069d0313dae121bcd9 (diff)
downloadcore-71bc4ab36ffc7abdf70d66c076923adc2eb31980.tar.gz
core-71bc4ab36ffc7abdf70d66c076923adc2eb31980.tar.xz
db: update to 4.5.20
Diffstat (limited to 'db')
-rw-r--r--db/.footprint20
-rw-r--r--db/.md5sum8
-rw-r--r--db/Pkgfile11
-rw-r--r--db/db-4.5.20.1.patch32
-rw-r--r--db/db-4.5.20.2.patch52
5 files changed, 103 insertions, 20 deletions
diff --git a/db/.footprint b/db/.footprint
index 346a7644..876628ae 100644
--- a/db/.footprint
+++ b/db/.footprint
@@ -16,15 +16,15 @@ drwxr-xr-x root/root usr/include/
-rw-r--r-- root/root usr/include/db_185.h
-rw-r--r-- root/root usr/include/db_cxx.h
drwxr-xr-x root/root usr/lib/
--rw-r--r-- root/root usr/lib/libdb-4.4.a
--rw-r--r-- root/root usr/lib/libdb-4.4.la
--rwxr-xr-x root/root usr/lib/libdb-4.4.so
-lrwxrwxrwx root/root usr/lib/libdb-4.so -> libdb-4.4.so
+-rw-r--r-- root/root usr/lib/libdb-4.5.a
+-rw-r--r-- root/root usr/lib/libdb-4.5.la
+-rwxr-xr-x root/root usr/lib/libdb-4.5.so
+lrwxrwxrwx root/root usr/lib/libdb-4.so -> libdb-4.5.so
-rw-r--r-- root/root usr/lib/libdb.a
-lrwxrwxrwx root/root usr/lib/libdb.so -> libdb-4.4.so
--rw-r--r-- root/root usr/lib/libdb_cxx-4.4.a
--rw-r--r-- root/root usr/lib/libdb_cxx-4.4.la
--rwxr-xr-x root/root usr/lib/libdb_cxx-4.4.so
-lrwxrwxrwx root/root usr/lib/libdb_cxx-4.so -> libdb_cxx-4.4.so
+lrwxrwxrwx root/root usr/lib/libdb.so -> libdb-4.5.so
+-rw-r--r-- root/root usr/lib/libdb_cxx-4.5.a
+-rw-r--r-- root/root usr/lib/libdb_cxx-4.5.la
+-rwxr-xr-x root/root usr/lib/libdb_cxx-4.5.so
+lrwxrwxrwx root/root usr/lib/libdb_cxx-4.so -> libdb_cxx-4.5.so
-rw-r--r-- root/root usr/lib/libdb_cxx.a
-lrwxrwxrwx root/root usr/lib/libdb_cxx.so -> libdb_cxx-4.4.so
+lrwxrwxrwx root/root usr/lib/libdb_cxx.so -> libdb_cxx-4.5.so
diff --git a/db/.md5sum b/db/.md5sum
index fd3934b3..b717376a 100644
--- a/db/.md5sum
+++ b/db/.md5sum
@@ -1,5 +1,3 @@
-d84dff288a19186b136b0daf7067ade3 db-4.4.20.tar.gz
-66584d621355df055b6e05b4a02e9c3e patch.4.4.20.1
-85df93a0867f6cace3501671cdeb6ed1 patch.4.4.20.2
-88ee91889ebf5498b22b2e7bed945d41 patch.4.4.20.3
-c2ef7b3e59460c35950fab5f2faa3fc0 patch.4.4.20.4
+3154c250247b1c2bf6f91ab6a3365961 db-4.5.20.1.patch
+fd1ec2d2c6eee9ff7a7f5f19b663440e db-4.5.20.2.patch
+b0f1c777708cb8e9d37fb47e7ed3312d db-4.5.20.tar.gz
diff --git a/db/Pkgfile b/db/Pkgfile
index ccb5ab85..95e36997 100644
--- a/db/Pkgfile
+++ b/db/Pkgfile
@@ -1,16 +1,17 @@
# Description: Berkeley DB
-# URL: http://www.sleepycat.com/products/db.shtml
+# URL: http://www.oracle.com/technology/products/berkeley-db/
# Maintainer: Per Lidén, core-ports at crux dot nu
name=db
-version=4.4.20
-release=2
+version=4.5.20
+release=1
source=(http://download.oracle.com/berkeley-db/$name-$version.tar.gz \
- http://www.oracle.com/technology/products/berkeley-db/db/update/4.4.20/patch.4.4.20.{1,2,3,4})
+ db-4.5.20.1.patch db-4.5.20.2.patch)
build() {
cd $name-$version
- cat $SRC/patch.4.4.20.{1,2,3,4} | patch -p0
+ patch -p1 -i $SRC/db-4.5.20.1.patch
+ patch -p1 -i $SRC/db-4.5.20.2.patch
cd build_unix
LDFLAGS="-lpthread" \
../dist/configure --prefix=/usr \
diff --git a/db/db-4.5.20.1.patch b/db/db-4.5.20.1.patch
new file mode 100644
index 00000000..109867a5
--- /dev/null
+++ b/db/db-4.5.20.1.patch
@@ -0,0 +1,32 @@
+diff -Nru db-4.5.20.orig/sequence/sequence.c db-4.5.20/sequence/sequence.c
+--- db-4.5.20.orig/sequence/sequence.c 2006-11-18 10:37:11.000000000 +0100
++++ db-4.5.20/sequence/sequence.c 2006-11-18 10:44:31.000000000 +0100
+@@ -228,6 +228,9 @@
+ seq->seq_data.ulen = seq->seq_data.size = sizeof(seq->seq_record);
+ seq->seq_rp = &seq->seq_record;
+
++ if ((ret = __dbt_usercopy(dbenv, keyp)) != 0)
++ goto err;
++
+ memset(&seq->seq_key, 0, sizeof(DBT));
+ if ((ret = __os_malloc(dbenv, keyp->size, &seq->seq_key.data)) != 0)
+ goto err;
+@@ -365,6 +368,7 @@
+ ret = t_ret;
+
+ ENV_LEAVE(dbenv, ip);
++ __dbt_userfree(dbenv, keyp, NULL, NULL);
+ return (ret);
+ }
+
+@@ -765,6 +769,10 @@
+ {
+ SEQ_ILLEGAL_BEFORE_OPEN(seq, "DB_SEQUENCE->get_key");
+
++ if (F_ISSET(key, DB_DBT_USERCOPY))
++ return (__db_retcopy(seq->seq_dbp->dbenv, key,
++ seq->seq_key.data, seq->seq_key.size, NULL, 0));
++
+ key->data = seq->seq_key.data;
+ key->size = key->ulen = seq->seq_key.size;
+ key->flags = seq->seq_key.flags;
diff --git a/db/db-4.5.20.2.patch b/db/db-4.5.20.2.patch
new file mode 100644
index 00000000..a1eaf855
--- /dev/null
+++ b/db/db-4.5.20.2.patch
@@ -0,0 +1,52 @@
+diff -Nru db-4.5.20.orig/rep/rep_method.c db-4.5.20/rep/rep_method.c
+--- db-4.5.20.orig/rep/rep_method.c 2006-11-18 10:37:10.000000000 +0100
++++ db-4.5.20/rep/rep_method.c 2006-11-18 10:47:38.000000000 +0100
+@@ -526,10 +526,12 @@
+ * will allow the client to either perform recovery or
+ * simply join in.
+ */
+- if (announce)
++ if (announce) {
++ if ((ret = __dbt_usercopy(dbenv, dbt)) != 0)
++ goto err;
+ (void)__rep_send_message(dbenv,
+ DB_EID_BROADCAST, REP_NEWCLIENT, NULL, dbt, 0, 0);
+- else
++ } else
+ (void)__rep_send_message(dbenv,
+ DB_EID_BROADCAST, REP_ALIVE_REQ, NULL, NULL, 0, 0);
+ }
+@@ -553,6 +555,7 @@
+ }
+ if (pending_event != DB_EVENT_NO_SUCH_EVENT)
+ DB_EVENT(dbenv, pending_event, NULL);
++ __dbt_userfree(dbenv, dbt, NULL, NULL);
+ return (ret);
+ }
+
+diff -Nru db-4.5.20.orig/rep/rep_record.c db-4.5.20/rep/rep_record.c
+--- db-4.5.20.orig/rep/rep_record.c 2006-11-18 10:37:10.000000000 +0100
++++ db-4.5.20/rep/rep_record.c 2006-11-18 10:47:38.000000000 +0100
+@@ -163,6 +163,14 @@
+ return (EINVAL);
+ }
+
++ if ((ret = __dbt_usercopy(dbenv, control)) != 0 ||
++ (ret = __dbt_usercopy(dbenv, rec)) != 0) {
++ __dbt_userfree(dbenv, control, rec, NULL);
++ __db_errx(dbenv,
++ "DB_ENV->rep_process_message: error retrieving DBT contents");
++ return ret;
++ }
++
+ ret = 0;
+ db_rep = dbenv->rep_handle;
+ rep = db_rep->region;
+@@ -621,6 +629,7 @@
+ *ret_lsnp = rp->lsn;
+ ret = DB_REP_NOTPERM;
+ }
++ __dbt_userfree(dbenv, control, rec, NULL);
+ return (ret);
+ }
+

Generated by cgit