diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2009-02-13 09:44:19 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2009-02-13 09:44:19 +0000 |
commit | 74f18ea70fa9319b4abf9d57545fb1b14ba8bbd5 (patch) | |
tree | 7afb9e0cf3c56440e88ec10cdbb831ec0bd9cafc /extra/db | |
parent | 9c645c36a39e621da6479ac6521f7d514f3b82a9 (diff) | |
download | aports-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/APKBUILD | 37 | ||||
-rw-r--r-- | extra/db/patch.4.5.20.1 | 37 | ||||
-rw-r--r-- | extra/db/patch.4.5.20.2 | 66 |
3 files changed, 129 insertions, 11 deletions
diff --git a/extra/db/APKBUILD b/extra/db/APKBUILD index bc4c67dbe5..35ee659c0a 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 0000000000..370ac3e7d7 --- /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 0000000000..fe49c46484 --- /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); + } + |