include $(PKGROOT)/Include
PKG_NAME = db
-PKG_VER_MAJ = 5.1
-PKG_VER_MIN = 19
+PKG_VER_MAJ = 4.7
+PKG_VER_MIN = 25
PKG_VER = $(PKG_VER_MAJ).$(PKG_VER_MIN)
PKG_REL = 0
+PKG_EPOCH = 1
-PKG_MAINTAINER =
+# Never update this to major version 5.
+
+PKG_MAINTAINER = Michael Tremer <michael.tremer@ipfire.org>
PKG_GROUP = System/Libraries
PKG_URL = http://www.oracle.com/technology/products/berkeley-db/
PKG_LICENSE = Proprietary
--- /dev/null
+Submitted By: DJ Lucas <dj_AT_linuxfromscratch_DOT_org>
+Date: 2008-09-28
+Initial Package Version: 4.7.25
+Upstream Status: From Upstream
+Origin: http://www.oracle.com/technology/products/berkeley-db/db/update/4.7.25/patch.4.7.25.1
+Description: Update to latest patch for 4.7.25 release (avoid improperly named
+ patches in LFS).
+
+diff -Naur db-4.7.25-orig/sequence/sequence.c db-4.7.25/sequence/sequence.c
+--- db-4.7.25-orig/sequence/sequence.c 2008-05-05 15:25:09.000000000 -0500
++++ db-4.7.25/sequence/sequence.c 2008-09-28 00:03:59.000000000 -0500
+@@ -187,7 +187,11 @@
+ if ((ret = __db_get_flags(dbp, &tflags)) != 0)
+ goto err;
+
+- if (DB_IS_READONLY(dbp)) {
++ /*
++ * We can let replication clients open sequences, but must
++ * check later that they do not update them.
++ */
++ if (F_ISSET(dbp, DB_AM_RDONLY)) {
+ ret = __db_rdonly(dbp->env, "DB_SEQUENCE->open");
+ goto err;
+ }
+@@ -244,6 +248,11 @@
+ if ((ret != DB_NOTFOUND && ret != DB_KEYEMPTY) ||
+ !LF_ISSET(DB_CREATE))
+ goto err;
++ if (IS_REP_CLIENT(env) &&
++ !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
++ ret = __db_rdonly(env, "DB_SEQUENCE->open");
++ goto err;
++ }
+ ret = 0;
+
+ rp = &seq->seq_record;
+@@ -296,7 +305,12 @@
+ */
+ rp = seq->seq_data.data;
+ if (rp->seq_version == DB_SEQUENCE_OLDVER) {
+-oldver: rp->seq_version = DB_SEQUENCE_VERSION;
++oldver: if (IS_REP_CLIENT(env) &&
++ !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
++ ret = __db_rdonly(env, "DB_SEQUENCE->open");
++ goto err;
++ }
++ rp->seq_version = DB_SEQUENCE_VERSION;
+ if (!F_ISSET(env, ENV_LITTLEENDIAN)) {
+ if (IS_DB_AUTO_COMMIT(dbp, txn)) {
+ if ((ret =
+@@ -707,6 +721,13 @@
+
+ MUTEX_LOCK(env, seq->mtx_seq);
+
++ if (handle_check && IS_REP_CLIENT(env) &&
++ !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
++ ret = __db_rdonly(env, "DB_SEQUENCE->get");
++ goto err;
++ }
++
++
+ if (rp->seq_min + delta > rp->seq_max) {
+ __db_errx(env, "Sequence overflow");
+ ret = EINVAL;