summaryrefslogtreecommitdiffstats
path: root/extra/db
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-02-13 09:44:19 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-02-13 09:44:19 +0000
commit74f18ea70fa9319b4abf9d57545fb1b14ba8bbd5 (patch)
tree7afb9e0cf3c56440e88ec10cdbb831ec0bd9cafc /extra/db
parent9c645c36a39e621da6479ac6521f7d514f3b82a9 (diff)
downloadaports-74f18ea70fa9319b4abf9d57545fb1b14ba8bbd5.tar.bz2
aports-74f18ea70fa9319b4abf9d57545fb1b14ba8bbd5.tar.xz
extra/db: downgrade to 4.5.20
openldap does not support 4.7.x and 4.5.x is whats stable in gentoo. Lets use this for a while.
Diffstat (limited to 'extra/db')
-rw-r--r--extra/db/APKBUILD37
-rw-r--r--extra/db/patch.4.5.20.137
-rw-r--r--extra/db/patch.4.5.20.266
3 files changed, 129 insertions, 11 deletions
diff --git a/extra/db/APKBUILD b/extra/db/APKBUILD
index bc4c67db..35ee659c 100644
--- a/extra/db/APKBUILD
+++ b/extra/db/APKBUILD
@@ -1,31 +1,46 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=db
-pkgver=4.7.25
-pkgrel=0
-pkgdesc="The Berkeley DB embedded database system"
+
+# openldap does not build against 4.7.x so we keep an old version here for now.
+pkgver=4.5.20.2
+_ver=${pkgver%.*}
+pkgrel=2
+pkgdesc="The Berkeley DB embedded database system 4.5"
url="http://www.oracle.com/technology/software/products/berkeley-db/index.html"
license="custom"
depends="uclibc"
-makedepends=""
subpackages="$pkgname-dev $pkgname-doc"
-source="http://download-uk.oracle.com/berkeley-$pkgname/$pkgname-$pkgver.tar.gz"
+# Patches were found here:
+# http://www.oracle.com/technology/products/berkeley-db/db/update/4.6.20/patch.4.6.20.html
+source="http://download-uk.oracle.com/berkeley-db/db-$_ver.tar.gz
+ patch.$_ver.1
+ patch.$_ver.2
+ "
-build () {
- cd "$srcdir/$pkgname-$pkgver"/build_unix
+build () {
+ cd "$srcdir"/db-$_ver
+ for i in ../patch.*; do
+ msg "Applying $i..."
+ patch -p0 < $i || return 1
+ done
+ cd build_unix
../dist/configure --prefix=/usr \
+ --mandir=/usr/share/man \
--enable-compat185 \
--enable-shared \
- --enable-static \
+ --disable-static \
--disable-cxx
-
make LIBSO_LIBS=-lpthread || return 1
make DESTDIR="$pkgdir" install
mkdir -p "$pkgdir"/usr/share/doc
mv "$pkgdir"/usr/docs "$pkgdir"/usr/share/doc/$pkgname
- install -m644 -D "$srcdir"/$pkgname-$pkgver/LICENSE \
+ install -D -m644 "$srcdir"/db-$_ver/LICENSE \
"$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-md5sums="ec2b87e833779681a0c3a814aa71359e db-4.7.25.tar.gz"
+
+md5sums="b0f1c777708cb8e9d37fb47e7ed3312d db-4.5.20.tar.gz
+a571e239b9041d7990df287cbc59ad6f patch.4.5.20.1
+b7a7086a067ba116f5a8464362c9a9a7 patch.4.5.20.2"
diff --git a/extra/db/patch.4.5.20.1 b/extra/db/patch.4.5.20.1
new file mode 100644
index 00000000..370ac3e7
--- /dev/null
+++ b/extra/db/patch.4.5.20.1
@@ -0,0 +1,37 @@
+*** sequence/sequence.c.orig 27 Sep 2006 14:56:17 -0000 12.39
+--- sequence/sequence.c 26 Oct 2006 07:36:05 -0000
+***************
+*** 228,233 ****
+--- 228,236 ----
+ 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,370 ****
+--- 368,374 ----
+ ret = t_ret;
+
+ ENV_LEAVE(dbenv, ip);
++ __dbt_userfree(dbenv, keyp, NULL, NULL);
+ return (ret);
+ }
+
+***************
+*** 764,769 ****
+--- 768,777 ----
+ DBT *key;
+ {
+ 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;
diff --git a/extra/db/patch.4.5.20.2 b/extra/db/patch.4.5.20.2
new file mode 100644
index 00000000..fe49c464
--- /dev/null
+++ b/extra/db/patch.4.5.20.2
@@ -0,0 +1,66 @@
+*** rep/rep_method.c.orig Fri Oct 20 08:34:06 2006
+--- rep/rep_method.c Fri Oct 27 12:09:04 2006
+***************
+*** 526,535 ****
+ * will allow the client to either perform recovery or
+ * simply join in.
+ */
+! if (announce)
+ (void)__rep_send_message(dbenv,
+ DB_EID_BROADCAST, REP_NEWCLIENT, NULL, dbt, 0, 0);
+! else
+ (void)__rep_send_message(dbenv,
+ DB_EID_BROADCAST, REP_ALIVE_REQ, NULL, NULL, 0, 0);
+ }
+--- 526,537 ----
+ * will allow the client to either perform recovery or
+ * simply join in.
+ */
+! 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
+ (void)__rep_send_message(dbenv,
+ DB_EID_BROADCAST, REP_ALIVE_REQ, NULL, NULL, 0, 0);
+ }
+***************
+*** 553,558 ****
+--- 555,561 ----
+ }
+ if (pending_event != DB_EVENT_NO_SUCH_EVENT)
+ DB_EVENT(dbenv, pending_event, NULL);
++ __dbt_userfree(dbenv, dbt, NULL, NULL);
+ return (ret);
+ }
+
+*** rep/rep_record.c.orig Fri Oct 20 08:34:06 2006
+--- rep/rep_record.c Mon Nov 13 10:46:29 2006
+***************
+*** 163,168 ****
+--- 163,176 ----
+ 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,626 ****
+--- 629,635 ----
+ *ret_lsnp = rp->lsn;
+ ret = DB_REP_NOTPERM;
+ }
++ __dbt_userfree(dbenv, control, rec, NULL);
+ return (ret);
+ }
+