OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Michael Schloh
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 10-Oct-2002 16:24:01
Branch: HEAD Handle: 2002101015240000
Added files:
openpkg-src/inn inn-db4.patch
Modified files:
openpkg-src/inn inn.spec
Log:
Includes new patches to use current version of Berkley db. The patch should be
removed when inn 2.4 is released, because it supposedly :-( fixes the
incompatibilities.
Summary:
Revision Changes Path
1.1 +212 -0 openpkg-src/inn/inn-db4.patch
1.46 +5 -7 openpkg-src/inn/inn.spec
____________________________________________________________________________
Index: openpkg-src/inn/inn-db4.patch
============================================================
$ cvs update -p -r1.1 inn-db4.patch
diff -Naur inn-2.3.3.orig/storage/ovdb/ovdb.c inn-2.3.3/storage/ovdb/ovdb.c
--- inn-2.3.3.orig/storage/ovdb/ovdb.c Thu Oct 10 14:29:29 2002
+++ inn-2.3.3/storage/ovdb/ovdb.c Thu Oct 10 16:15:55 2002
@@ -99,7 +99,7 @@
#error Need BerkeleyDB 2.6.x, 2.7.x, or 3.x
#endif
#else
-#if DB_VERSION_MAJOR != 3
+#if DB_VERSION_MAJOR != 3 && DB_VERSION_MAJOR != 4
#error Need BerkeleyDB 2.6.x, 2.7.x, or 3.x
#endif
#endif
@@ -382,6 +382,9 @@
static int open_db_file(int which)
{
int ret;
+#if DB_VERSION_MAJOR == 4
+ DB_TXN *txnp = NULL;
+#endif
if(dbs[which] != NULL)
return 0;
@@ -401,13 +404,28 @@
if(ovdb_conf.pagesize > 0)
(dbs[which])->set_pagesize(dbs[which], ovdb_conf.pagesize);
+#if DB_VERSION_MAJOR == 4
+/* starting sometime early db 4.X, db->open gets a new parameter txnp */
+ if (ret = OVDBenv->txn_begin(OVDBenv, NULL, &txnp, 0)) {
+ (dbs[which])->close(dbs[which], 0);
+ dbs[which] = NULL;
+ return ret;
+ }
+ if(ret = (dbs[which])->open(dbs[which], txnp, _dbnames[which], NULL,
+ DB_BTREE, _db_flags, 0666)) {
+ (dbs[which])->close(dbs[which], 0);
+ dbs[which] = NULL;
+ return ret;
+ }
+#else
if(ret = (dbs[which])->open(dbs[which], _dbnames[which], NULL, DB_BTREE,
- _db_flags, 0666)) {
+ _db_flags, 0666)) {
(dbs[which])->close(dbs[which], 0);
dbs[which] = NULL;
return ret;
}
-#endif
+#endif /* #if DB_VERSION_MAJOR == 4 */
+#endif /* #if DB_VERSION_MAJOR == 2 */
return 0;
}
@@ -590,7 +608,7 @@
return TRUE;
}
-#if DB_VERSION_MAJOR == 3
+#if DB_VERSION_MAJOR >= 3
static int upgrade_database(char *name)
{
int ret;
@@ -636,6 +654,8 @@
DB *vdb;
#if DB_VERSION_MAJOR == 2
DB_INFO dbinfo;
+#elif DB_VERSION_MAJOR == 4
+ DB_TXN *txnp = NULL;
#endif
DBT key, val;
@@ -659,7 +679,7 @@
if(flags & OVDB_RECOVER)
ai_flags |= DB_RECOVER;
-#if DB_VERSION_MAJOR == 2 || DB_VERSION_MINOR < 2
+#if DB_VERSION_MAJOR == 2 || (DB_VERSION_MAJOR == 3 && DB_VERSION_MINOR < 2)
if(ovdb_conf.txn_nosync)
ai_flags |= DB_TXN_NOSYNC;
#endif
@@ -697,12 +717,12 @@
OVDBenv->set_errcall(OVDBenv, OVDBerror);
OVDBenv->set_cachesize(OVDBenv, 0, ovdb_conf.cachesize, 1);
-#if DB_VERSION_MINOR >= 2
+#if (DB_VERSION_MAJOR == 3 && DB_VERSION_MINOR >= 2) || DB_VERSION_MAJOR == 4
if(ovdb_conf.txn_nosync)
OVDBenv->set_flags(OVDBenv, DB_TXN_NOSYNC, 1);
#endif
-#if DB_VERSION_MINOR == 0
+#if DB_VERSION_MAJOR == 3 && DB_VERSION_MINOR == 0
if(ret = OVDBenv->open(OVDBenv, ovdb_conf.home, NULL, ai_flags, 0666)) {
#else
if(ret = OVDBenv->open(OVDBenv, ovdb_conf.home, ai_flags, 0666)) {
@@ -726,12 +746,27 @@
syslog(L_FATAL, "OVDB: open: db_create: %s", db_strerror(ret));
return ret;
}
- if(ret = vdb->open(vdb, "version", NULL, DB_BTREE,
+
+#if DB_VERSION_MAJOR == 4
+/* starting sometime early db 4.X, db->open gets a new parameter txnp */
+ if (ret = OVDBenv->txn_begin(OVDBenv, NULL, &txnp, 0)) {
+ vdb->close(vdb, 0);
+ vdb = NULL;
+ return ret;
+ }
+ if(ret = vdb->open(vdb, txnp, "version", NULL, DB_BTREE,
_db_flags, 0666)) {
vdb->close(vdb, 0);
syslog(L_FATAL, "OVDB: open: version->open: %s", db_strerror(ret));
return ret;
}
+#else
+ if(ret = vdb->open(vdb, "version", NULL, DB_BTREE, _db_flags, 0666)) {
+ vdb->close(vdb, 0);
+ syslog(L_FATAL, "OVDB: open: version->open: %s", db_strerror(ret));
+ return ret;
+ }
+#endif /* DB_VERSION_MAJOR == 4 */
#endif /* DB_VERSION_MAJOR == 2 */
memset(&key, 0, sizeof key);
@@ -779,6 +814,8 @@
#if DB_VERSION_MAJOR == 2
DB_INFO dbinfo;
+#elif DB_VERSION_MAJOR == 4
+ DB_TXN *txnp = NULL;
#endif
if(OVDBenv != NULL) {
@@ -841,33 +878,77 @@
syslog(L_FATAL, "OVDB: open: db_create: %s", db_strerror(ret));
return FALSE;
}
+
+#if DB_VERSION_MAJOR == 4
+/* starting sometime early db 4.X, db->open gets a new parameter txnp */
+ if (ret = OVDBenv->txn_begin(OVDBenv, NULL, &txnp, 0)) {
+ groupstats->close(groupstats, 0);
+ groupstats = NULL;
+ return ret;
+ }
+ if(ret = groupstats->open(groupstats, txnp, "groupstats", NULL,
+ DB_BTREE, _db_flags, 0666)) {
+ groupstats->close(groupstats, 0);
+ syslog(L_FATAL, "OVDB: open: groupstats->open: %s", db_strerror(ret));
+ return FALSE;
+ }
+#else
if(ret = groupstats->open(groupstats, "groupstats", NULL, DB_BTREE,
_db_flags, 0666)) {
groupstats->close(groupstats, 0);
syslog(L_FATAL, "OVDB: open: groupstats->open: %s", db_strerror(ret));
return FALSE;
}
+#endif /* #if DB_VERSION_MAJOR == 4 */
if(ret = db_create(&groupsbyname, OVDBenv, 0)) {
syslog(L_FATAL, "OVDB: open: db_create: %s", db_strerror(ret));
return FALSE;
}
+#if DB_VERSION_MAJOR == 4
+ if (ret = OVDBenv->txn_begin(OVDBenv, NULL, &txnp, 0)) {
+ groupsbyname->close(groupsbyname, 0);
+ groupsbyname = NULL;
+ return ret;
+ }
+ if(ret = groupsbyname->open(groupsbyname, txnp, "groupsbyname", NULL, DB_HASH,
+ _db_flags, 0666)) {
+ groupsbyname->close(groupsbyname, 0);
+ syslog(L_FATAL, "OVDB: open: groupsbyname->open: %s", db_strerror(ret));
+ return FALSE;
+ }
+#else
if(ret = groupsbyname->open(groupsbyname, "groupsbyname", NULL, DB_HASH,
_db_flags, 0666)) {
groupsbyname->close(groupsbyname, 0);
syslog(L_FATAL, "OVDB: open: groupsbyname->open: %s", db_strerror(ret));
return FALSE;
}
+#endif /* #if DB_VERSION_MAJOR == 4 */
if(ret = db_create(&groupaliases, OVDBenv, 0)) {
syslog(L_FATAL, "OVDB: open: db_create: %s", db_strerror(ret));
return FALSE;
}
+#if DB_VERSION_MAJOR == 4
+ if (ret = OVDBenv->txn_begin(OVDBenv, NULL, &txnp, 0)) {
+ groupaliases->close(groupaliases, 0);
+ groupaliases = NULL;
+ return ret;
+ }
+ if(ret = groupaliases->open(groupaliases, txnp, "groupaliases", NULL, DB_HASH,
+ _db_flags, 0666)) {
+ groupaliases->close(groupaliases, 0);
+ syslog(L_FATAL, "OVDB: open: groupaliases->open: %s", db_strerror(ret));
+ return FALSE;
+ }
+#else
if(ret = groupaliases->open(groupaliases, "groupaliases", NULL, DB_HASH,
_db_flags, 0666)) {
groupaliases->close(groupaliases, 0);
syslog(L_FATAL, "OVDB: open: groupaliases->open: %s", db_strerror(ret));
return FALSE;
}
-#endif
+#endif /* #if DB_VERSION_MAJOR == 4 */
+#endif /* #if DB_VERSION_MAJOR == 2 */
Cutofflow = FALSE;
return TRUE;
Index: openpkg-src/inn/inn.spec
============================================================
$ cvs diff -u -r1.45 -r1.46 inn.spec
--- openpkg-src/inn/inn.spec 11 Sep 2002 14:26:17 -0000 1.45
+++ openpkg-src/inn/inn.spec 10 Oct 2002 14:24:00 -0000 1.46
@@ -37,18 +37,19 @@
Group: News
License: ISC
Version: %{V_inn}
-Release: 20020911
+Release: 20021010
# list of sources
Source0: ftp://ftp.isc.org/isc/inn/inn-%{V_inn}.tar.gz
Source1: http://www.bofh.it/~md/cleanfeed/cleanfeed-%{V_cleanfeed}.tgz
Source2: rc.inn
Source3: fsl.inn
+Patch0: inn-db4.patch
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
-BuildPreReq: OpenPKG, openpkg >= 20020206, fsl, make, perl, db3, openssl, bison,
flex
+BuildPreReq: OpenPKG, openpkg >= 20020206, fsl, make, perl, db, openssl, bison,
flex
PreReq: OpenPKG, openpkg >= 20020206, fsl, perl, perl-crypto, MTA
AutoReq: no
AutoReqProv: no
@@ -61,6 +62,7 @@
%prep
%setup0 -q -c
%setup1 -q -T -D -a 1
+ %patch0 -p0
%build
# build inn
@@ -74,16 +76,12 @@
-e "s;^\\(pathbin:.*\\)@prefix@.*;\\1@prefix@/libexec/inn;" \
samples/inn.conf.in
%{l_shtool} subst \
- -e "s;BERKELEY_DB_DIR/include;BERKELEY_DB_DIR/include/db3;" \
- -e "s;-ldb;-ldb3;" \
- configure
- %{l_shtool} subst \
-e 's;\(ExtUtils::Embed.*ldopts.*tail -1\);\1 | sed -e "s/ -lc/ /";' \
configure
# configure the source tree
CC="%{l_cc}" \
- CFLAGS="%{l_cflags -O} -I%{l_prefix}/include/db3 -I%{l_prefix}/include" \
+ CFLAGS="%{l_cflags -O} -I%{l_prefix}/include" \
LDFLAGS="`%{l_prefix}/bin/fsl-config --ldflags --all`" \
LIBS="`%{l_prefix}/bin/fsl-config --libs --all`" \
./configure \
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]