java-bdb48: don't obsolete libdb-java, provided by libdb51-java [release 4.8.30-4mamba;Thu Sep 15 2011]
This commit is contained in:
parent
eb00fb0b4d
commit
77570b74f0
@ -1,2 +1,9 @@
|
|||||||
# db48
|
# db48
|
||||||
|
|
||||||
|
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides embedded database support for both traditional and client/server applications.
|
||||||
|
The Berkeley DB includes B+tree, Extended Linear Hashing, Fixed and Variable-length record access methods, transactions, locking, logging, shared memory caching, and database recovery.
|
||||||
|
The Berkeley DB supports C, C++, Java, and Perl APIs.
|
||||||
|
It is used by many applications, including Python and Perl, so this should be installed on all systems.
|
||||||
|
|
||||||
|
This package contains the tools for managing Berkeley DB.
|
||||||
|
|
||||||
|
39
bdb-transactions.diff
Normal file
39
bdb-transactions.diff
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
--- db4-4.2.52/dbinc/db.in.orig 2004-09-09 18:29:17.987387000 -0700
|
||||||
|
+++ db4-4.2.52/dbinc/db.in 2004-09-09 18:30:00.547903000 -0700
|
||||||
|
@@ -839,6 +839,7 @@
|
||||||
|
#define TXN_NOWAIT 0x040 /* Do not wait on locks. */
|
||||||
|
#define TXN_RESTORED 0x080 /* Transaction has been restored. */
|
||||||
|
#define TXN_SYNC 0x100 /* Sync on prepare and commit. */
|
||||||
|
+#define TXN_NOLOG 0x200 /* Do not log this transaction. */
|
||||||
|
u_int32_t flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
--- db4-4.2.52/txn/txn.c.orig 2004-09-09 18:30:36.348345000 -0700
|
||||||
|
+++ db4-4.2.52/txn/txn.c 2004-09-09 18:32:14.559561000 -0700
|
||||||
|
@@ -127,7 +127,7 @@
|
||||||
|
if ((ret = __db_fchk(dbenv,
|
||||||
|
"txn_begin", flags,
|
||||||
|
DB_DIRTY_READ | DB_TXN_NOWAIT |
|
||||||
|
- DB_TXN_NOSYNC | DB_TXN_SYNC)) != 0)
|
||||||
|
+ DB_TXN_NOSYNC | DB_TXN_SYNC | DB_TXN_NOT_DURABLE )) != 0)
|
||||||
|
return (ret);
|
||||||
|
if ((ret = __db_fcchk(dbenv,
|
||||||
|
"txn_begin", flags, DB_TXN_NOSYNC, DB_TXN_SYNC)) != 0)
|
||||||
|
@@ -193,6 +193,8 @@
|
||||||
|
F_SET(txn, TXN_SYNC);
|
||||||
|
if (LF_ISSET(DB_TXN_NOWAIT))
|
||||||
|
F_SET(txn, TXN_NOWAIT);
|
||||||
|
+ if (LF_ISSET(DB_TXN_NOT_DURABLE))
|
||||||
|
+ F_SET(txn, TXN_NOLOG);
|
||||||
|
|
||||||
|
if ((ret = __txn_begin_int(txn, 0)) != 0)
|
||||||
|
goto err;
|
||||||
|
@@ -328,7 +330,7 @@
|
||||||
|
* We should set this value when we write the first log record, not
|
||||||
|
* here.
|
||||||
|
*/
|
||||||
|
- if (DBENV_LOGGING(dbenv))
|
||||||
|
+ if (DBENV_LOGGING(dbenv) && !F_ISSET(txn, TXN_NOLOG))
|
||||||
|
__log_txn_lsn(dbenv, &begin_lsn, NULL, NULL);
|
||||||
|
else
|
||||||
|
ZERO_LSN(begin_lsn);
|
20
btree.diff
Normal file
20
btree.diff
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
--- db4-4.2.52/btree/bt_rec.c.orig 2003-09-13 11:48:58.000000000 -0700
|
||||||
|
+++ db4-4.2.52/btree/bt_rec.c 2005-05-04 13:25:29.349243000 -0700
|
||||||
|
@@ -222,7 +222,7 @@
|
||||||
|
* previous-page pointer updated to our new page. The next
|
||||||
|
* page must exist because we're redoing the operation.
|
||||||
|
*/
|
||||||
|
- if (!rootsplit && !IS_ZERO_LSN(argp->nlsn)) {
|
||||||
|
+ if (!rootsplit && argp->npgno != PGNO_INVALID ) {
|
||||||
|
if ((ret =
|
||||||
|
__memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
|
||||||
|
ret = __db_pgerr(file_dbp, argp->npgno, ret);
|
||||||
|
@@ -294,7 +294,7 @@
|
||||||
|
* possible that the next-page never existed, we ignore it as
|
||||||
|
* if there's nothing to undo.
|
||||||
|
*/
|
||||||
|
- if (!rootsplit && !IS_ZERO_LSN(argp->nlsn)) {
|
||||||
|
+ if (!rootsplit && argp->npgno != PGNO_INVALID) {
|
||||||
|
if ((ret =
|
||||||
|
__memp_fget(mpf, &argp->npgno, 0, &np)) != 0) {
|
||||||
|
np = NULL;
|
89
db-1.85-errno.patch
Normal file
89
db-1.85-errno.patch
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
glibc doesn't like errno as the name of a field.
|
||||||
|
--- db.1.85/hash/hash.h Mon Feb 18 19:12:14 2002
|
||||||
|
+++ db.1.85/hash/hash.h Mon Feb 18 19:12:20 2002
|
||||||
|
@@ -103,7 +103,7 @@
|
||||||
|
BUFHEAD *cpage; /* Current page */
|
||||||
|
int cbucket; /* Current bucket */
|
||||||
|
int cndx; /* Index of next item on cpage */
|
||||||
|
- int errno; /* Error Number -- for DBM
|
||||||
|
+ int err; /* Error Number -- for DBM
|
||||||
|
* compatability */
|
||||||
|
int new_file; /* Indicates if fd is backing store
|
||||||
|
* or no */
|
||||||
|
--- db.1.85/hash/hash.c Mon Feb 18 19:12:24 2002
|
||||||
|
+++ db.1.85/hash/hash.c Mon Feb 18 19:12:44 2002
|
||||||
|
@@ -505,7 +505,7 @@
|
||||||
|
else
|
||||||
|
if (wsize != sizeof(HASHHDR)) {
|
||||||
|
errno = EFTYPE;
|
||||||
|
- hashp->errno = errno;
|
||||||
|
+ hashp->err = errno;
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
for (i = 0; i < NCACHED; i++)
|
||||||
|
@@ -536,7 +536,7 @@
|
||||||
|
|
||||||
|
hashp = (HTAB *)dbp->internal;
|
||||||
|
if (flag) {
|
||||||
|
- hashp->errno = errno = EINVAL;
|
||||||
|
+ hashp->err = errno = EINVAL;
|
||||||
|
return (ERROR);
|
||||||
|
}
|
||||||
|
return (hash_access(hashp, HASH_GET, (DBT *)key, data));
|
||||||
|
@@ -553,11 +553,11 @@
|
||||||
|
|
||||||
|
hashp = (HTAB *)dbp->internal;
|
||||||
|
if (flag && flag != R_NOOVERWRITE) {
|
||||||
|
- hashp->errno = errno = EINVAL;
|
||||||
|
+ hashp->err = errno = EINVAL;
|
||||||
|
return (ERROR);
|
||||||
|
}
|
||||||
|
if ((hashp->flags & O_ACCMODE) == O_RDONLY) {
|
||||||
|
- hashp->errno = errno = EPERM;
|
||||||
|
+ hashp->err = errno = EPERM;
|
||||||
|
return (ERROR);
|
||||||
|
}
|
||||||
|
return (hash_access(hashp, flag == R_NOOVERWRITE ?
|
||||||
|
@@ -574,11 +574,11 @@
|
||||||
|
|
||||||
|
hashp = (HTAB *)dbp->internal;
|
||||||
|
if (flag && flag != R_CURSOR) {
|
||||||
|
- hashp->errno = errno = EINVAL;
|
||||||
|
+ hashp->err = errno = EINVAL;
|
||||||
|
return (ERROR);
|
||||||
|
}
|
||||||
|
if ((hashp->flags & O_ACCMODE) == O_RDONLY) {
|
||||||
|
- hashp->errno = errno = EPERM;
|
||||||
|
+ hashp->err = errno = EPERM;
|
||||||
|
return (ERROR);
|
||||||
|
}
|
||||||
|
return (hash_access(hashp, HASH_DELETE, (DBT *)key, NULL));
|
||||||
|
@@ -729,7 +729,7 @@
|
||||||
|
|
||||||
|
hashp = (HTAB *)dbp->internal;
|
||||||
|
if (flag && flag != R_FIRST && flag != R_NEXT) {
|
||||||
|
- hashp->errno = errno = EINVAL;
|
||||||
|
+ hashp->err = errno = EINVAL;
|
||||||
|
return (ERROR);
|
||||||
|
}
|
||||||
|
#ifdef HASH_STATISTICS
|
||||||
|
--- db.1.85/hash/ndbm.c Mon Feb 18 19:12:58 2002
|
||||||
|
+++ db.1.85/hash/ndbm.c Mon Feb 18 19:13:05 2002
|
||||||
|
@@ -180,7 +180,7 @@
|
||||||
|
HTAB *hp;
|
||||||
|
|
||||||
|
hp = (HTAB *)db->internal;
|
||||||
|
- return (hp->errno);
|
||||||
|
+ return (hp->err);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern int
|
||||||
|
@@ -190,7 +190,7 @@
|
||||||
|
HTAB *hp;
|
||||||
|
|
||||||
|
hp = (HTAB *)db->internal;
|
||||||
|
- hp->errno = 0;
|
||||||
|
+ hp->err = 0;
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
|
14
db-4.6.21-1.85-compat.patch
Normal file
14
db-4.6.21-1.85-compat.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
diff -ur db-4.6.21/dist/Makefile.in db-4.6.21-db.h_include-patched/dist/Makefile.in
|
||||||
|
--- db-4.6.21/dist/Makefile.in 2007-07-05 18:35:02.000000000 +0000
|
||||||
|
+++ db-4.6.21-db.h_include-patched/dist/Makefile.in 2008-09-05 08:59:36.000000000 +0000
|
||||||
|
@@ -139,8 +139,8 @@
|
||||||
|
# local libraries, for example. Do that by adding -I options to the DB185INC
|
||||||
|
# line, and -l options to the DB185LIB line.
|
||||||
|
##################################################
|
||||||
|
-DB185INC= -c @CFLAGS@ -I$(srcdir) @CPPFLAGS@
|
||||||
|
-DB185LIB=
|
||||||
|
+DB185INC= -c @CFLAGS@ -I$(srcdir) -I$(srcdir)/db.1.85/PORT/linux/include @CPPFLAGS@
|
||||||
|
+DB185LIB= ${srcdir}/db.1.85/PORT/linux/libdb.a
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# NOTHING BELOW THIS LINE SHOULD EVER NEED TO BE MODIFIED.
|
11
db-4.8.30-jni-include-dir.patch
Normal file
11
db-4.8.30-jni-include-dir.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- dist/configure.ac 2010-04-12 22:25:23.000000000 +0200
|
||||||
|
+++ dist/configure.ac-gil 2011-02-26 19:15:53.000000000 +0100
|
||||||
|
@@ -404,7 +404,7 @@
|
||||||
|
AC_PROG_JAVAC
|
||||||
|
AC_PROG_JAR
|
||||||
|
AC_PROG_JAVA
|
||||||
|
- AC_JNI_INCLUDE_DIR
|
||||||
|
+ JNI_INCLUDE_DIRS="/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/include/"
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(java version)
|
||||||
|
case "$JAVA" in
|
3533
db4-jni-casting.diff
Normal file
3533
db4-jni-casting.diff
Normal file
File diff suppressed because it is too large
Load Diff
400
db48.spec
Normal file
400
db48.spec
Normal file
@ -0,0 +1,400 @@
|
|||||||
|
%define majver %(echo %version | cut -d . -f1-2)
|
||||||
|
%define majvershort %(echo %version | cut -d . -f1-2 | tr -d .)
|
||||||
|
%define MAJver %(echo %version | cut -d . -f1)
|
||||||
|
Name: db48
|
||||||
|
Version: 4.8.30
|
||||||
|
Release: 4mamba
|
||||||
|
Summary: The Berkeley DB database library
|
||||||
|
Group: System/Libraries
|
||||||
|
Vendor: openmamba
|
||||||
|
Distribution: openmamba
|
||||||
|
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
URL: http://www.oracle.com/technology/products/berkeley-db/index.html
|
||||||
|
Source0: http://download.oracle.com/berkeley-db/db-%{version}.tar.gz
|
||||||
|
Source1: http://download.oracle.com/berkeley-db/db.1.85.tar.gz
|
||||||
|
Patch0: patch.4.2.52.1
|
||||||
|
Patch1: patch.4.2.52.2
|
||||||
|
Patch2: db4-jni-casting.diff
|
||||||
|
# from http://www.stanford.edu/services/directory/openldap/configuration/patches/db/
|
||||||
|
Patch3: bdb-transactions.diff
|
||||||
|
Patch4: btree.diff
|
||||||
|
Patch5: java.diff
|
||||||
|
# db-1.85 upstream patches
|
||||||
|
Patch6: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.1
|
||||||
|
Patch7: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.2
|
||||||
|
Patch8: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.3
|
||||||
|
Patch9: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.4
|
||||||
|
Patch10: db-1.85-errno.patch
|
||||||
|
Patch11: db-4.6.21-1.85-compat.patch
|
||||||
|
Patch12: db-4.8.30-jni-include-dir.patch
|
||||||
|
License: BSD, GPL
|
||||||
|
## AUTOBUILDREQ-BEGIN
|
||||||
|
BuildRequires: glibc-devel
|
||||||
|
BuildRequires: libgcc
|
||||||
|
BuildRequires: libstdc++6-devel
|
||||||
|
## AUTOBUILDREQ-END
|
||||||
|
BuildRequires: libtcl-devel
|
||||||
|
BuildRequires: gcc-java
|
||||||
|
BuildRequires: java-gcj-compat
|
||||||
|
#BuildRequires: java-openjdk
|
||||||
|
BuildRequires: jpackage-utils
|
||||||
|
BuildRequires: sharutils
|
||||||
|
Requires: libdb48 = %{version}-%{release}
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
||||||
|
|
||||||
|
%description
|
||||||
|
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides embedded database support for both traditional and client/server applications.
|
||||||
|
The Berkeley DB includes B+tree, Extended Linear Hashing, Fixed and Variable-length record access methods, transactions, locking, logging, shared memory caching, and database recovery.
|
||||||
|
The Berkeley DB supports C, C++, Java, and Perl APIs.
|
||||||
|
It is used by many applications, including Python and Perl, so this should be installed on all systems.
|
||||||
|
|
||||||
|
This package contains the tools for managing Berkeley DB.
|
||||||
|
|
||||||
|
%package docs
|
||||||
|
Summary: The Berkeley DB database Documentation
|
||||||
|
Group: Documentation
|
||||||
|
Requires: libdb48 = %{version}-%{release}
|
||||||
|
|
||||||
|
%description docs
|
||||||
|
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides embedded database support for both traditional and client/server applications.
|
||||||
|
The Berkeley DB includes B+tree, Extended Linear Hashing, Fixed and Variable-length record access methods, transactions, locking, logging, shared memory caching, and database recovery.
|
||||||
|
The Berkeley DB supports C, C++, Java, and Perl APIs.
|
||||||
|
It is used by many applications, including Python and Perl, so this should be installed on all systems.
|
||||||
|
|
||||||
|
This package contains documentation for %{name}.
|
||||||
|
|
||||||
|
%package -n libdb48
|
||||||
|
Summary: The Berkeley DB database library
|
||||||
|
Group: System/Libraries
|
||||||
|
|
||||||
|
%description -n libdb48
|
||||||
|
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides embedded database support for both traditional and client/server applications.
|
||||||
|
The Berkeley DB includes B+tree, Extended Linear Hashing, Fixed and Variable-length record access methods, transactions, locking, logging, shared memory caching, and database recovery.
|
||||||
|
The Berkeley DB supports C, C++, Java, and Perl APIs.
|
||||||
|
It is used by many applications, including Python and Perl, so this should be installed on all systems.
|
||||||
|
|
||||||
|
%package -n libdb48-devel
|
||||||
|
Summary: Development files for the Berkeley DB library.
|
||||||
|
Group: Development/Libraries
|
||||||
|
Requires: libdb48 = %{version}-%{release}
|
||||||
|
|
||||||
|
|
||||||
|
%description -n libdb48-devel
|
||||||
|
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides embedded database support for both traditional and client/server applications.
|
||||||
|
This package contains the header files, libraries, and documentation for building programs which use the Berkeley DB.
|
||||||
|
|
||||||
|
%package -n libdb48-static
|
||||||
|
Summary: Development files for the Berkeley DB library - static libraries.
|
||||||
|
Group: Development/Libraries
|
||||||
|
Requires: libdb48-devel = %{version}-%{release}
|
||||||
|
|
||||||
|
%description -n libdb48-static
|
||||||
|
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides embedded database support for both traditional and client/server applications.
|
||||||
|
This package contains static libraries for building programs which use the Berkeley DB.
|
||||||
|
|
||||||
|
%package -n java-bdb48
|
||||||
|
Summary: Java bindings for the Berkeley DB library
|
||||||
|
Group: System/Libraries
|
||||||
|
Requires: libdb48 = %{version}-%{release}
|
||||||
|
Provides: libdb48-java
|
||||||
|
|
||||||
|
%description -n java-bdb48
|
||||||
|
Java bindings for the Berkeley DB library.
|
||||||
|
|
||||||
|
%package -n libdb48-tcl
|
||||||
|
Summary: Development files for using the Berkeley DB (version 4) with tcl
|
||||||
|
Group: Development/Libraries
|
||||||
|
Requires: libdb48 = %{version}-%{release}
|
||||||
|
|
||||||
|
%description -n libdb48-tcl
|
||||||
|
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides embedded database support for both traditional and client/server applications. This package contains the libraries for building programs which use the Berkeley DB in Tcl.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||||
|
|
||||||
|
%setup -q -n db-%{version} -a 1
|
||||||
|
#%patch0 -p0
|
||||||
|
#%patch1 -p0
|
||||||
|
#%patch2 -p2
|
||||||
|
#%patch3 -p1
|
||||||
|
#%patch4 -p1
|
||||||
|
#%patch5 -p1
|
||||||
|
|
||||||
|
pushd db.1.85/PORT/linux
|
||||||
|
%patch6 -p0 -b .1.1
|
||||||
|
popd
|
||||||
|
pushd db.1.85
|
||||||
|
%patch7 -p0 -b .1.2
|
||||||
|
%patch8 -p0 -b .1.3
|
||||||
|
%patch9 -p0 -b .1.4
|
||||||
|
%patch10 -p1 -b .errno
|
||||||
|
popd
|
||||||
|
%patch11 -p1 -b .185compat
|
||||||
|
%patch12 -p0 -b .4.8.30.jni
|
||||||
|
|
||||||
|
cd dist
|
||||||
|
./s_config
|
||||||
|
|
||||||
|
%build
|
||||||
|
|
||||||
|
case "%{_target_cpu}" in
|
||||||
|
i586) mutex="x86/gcc-assembly" ;;
|
||||||
|
ppc) mutex="PPC/gcc-assembly" ;;
|
||||||
|
arm) mutex="ARM/gcc-assembly" ;;
|
||||||
|
x86_64) mutex="x86_64/gcc-assembly" ;;
|
||||||
|
*) mutex="UNIX/fcntl" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"; export CFLAGS
|
||||||
|
# Build the old db-185 libraries.
|
||||||
|
make -C db.1.85/PORT/%{_os} OORG="$CFLAGS"
|
||||||
|
|
||||||
|
|
||||||
|
/bin/sh libtool --mode=compile %{__cc} $RPM_OPT_FLAGS -Idb.1.85/PORT/%{_os}/include -D_REENTRANT -c db_dump185/db_dump185.c -o dist/$1/db_dump185.lo
|
||||||
|
/bin/sh libtool --mode=link %{__cc} -o dist/$1/db_dump185 dist/$1/db_dump185.lo db.1.85/PORT/%{_os}/libdb.a
|
||||||
|
|
||||||
|
|
||||||
|
build() {
|
||||||
|
test -d dist/$1 || mkdir dist/$1
|
||||||
|
# Static link db_dump185 with old db-185 libraries.
|
||||||
|
/bin/sh libtool --mode=compile %{__cc} $RPM_OPT_FLAGS -Idb.1.85/PORT/%{_os}/include -D_REENTRANT -c db_dump185/db_dump185.c -o dist/$1/db_dump185.lo
|
||||||
|
/bin/sh libtool --mode=link %{__cc} -o dist/$1/db_dump185 dist/$1/db_dump185.lo db.1.85/PORT/%{_os}/libdb.a
|
||||||
|
|
||||||
|
pushd dist
|
||||||
|
popd
|
||||||
|
pushd dist/$1
|
||||||
|
ln -sf ../configure .
|
||||||
|
JAVA_HOME=%{_jvmdir}/java/ \
|
||||||
|
%configure -C \
|
||||||
|
--prefix=%{_prefix} \
|
||||||
|
--datadir=%{_datadir} \
|
||||||
|
--includedir=%{_includedir}/db4 \
|
||||||
|
--enable-compat185 \
|
||||||
|
--enable-dump185 \
|
||||||
|
--enable-shared \
|
||||||
|
--enable-static \
|
||||||
|
--enable-tcl \
|
||||||
|
--with-tcl=%{_libdir} \
|
||||||
|
--with-mutex="$mutex" \
|
||||||
|
--enable-cxx \
|
||||||
|
%if "%{stage1}" != "1"
|
||||||
|
--enable-java \
|
||||||
|
%endif
|
||||||
|
--enable-test \
|
||||||
|
|
||||||
|
# --enable-diagnostic
|
||||||
|
# --enable-debug
|
||||||
|
# --enable-debug_rop
|
||||||
|
# --enable-debug_wop
|
||||||
|
|
||||||
|
perl -pi -e 's/^predep_objects=".*$/predep_objects=""/' libtool
|
||||||
|
perl -pi -e 's/^postdep_objects=".*$/postdep_objects=""/' libtool
|
||||||
|
perl -pi -e 's/-shared -nostdlib/-shared/' libtool
|
||||||
|
|
||||||
|
%make
|
||||||
|
|
||||||
|
LDBJ=./.libs/libdb_java-%{majver}.la
|
||||||
|
if test -f ${LDBJ} -a ! -f ${LDBJ}i; then
|
||||||
|
sed -e 's,^installed=no,installed=yes,' < ${LDBJ} > ${LDBJ}i
|
||||||
|
fi
|
||||||
|
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
build dist-tls
|
||||||
|
|
||||||
|
%install
|
||||||
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||||
|
mkdir -p %{buildroot}%{_includedir}
|
||||||
|
mkdir -p %{buildroot}%{_libdir}
|
||||||
|
|
||||||
|
%makeinstall -C dist/dist-tls
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_datadir}/doc/libdb4-%{version}
|
||||||
|
mv %{buildroot}%{_prefix}/docs/* \
|
||||||
|
%{buildroot}%{_datadir}/doc/libdb4-%{version}
|
||||||
|
rmdir %{buildroot}%{_prefix}/docs
|
||||||
|
|
||||||
|
## need for build pythonic extension
|
||||||
|
#for i in db.h db_cxx.h db_185.h; do
|
||||||
|
# ln -s db4/$i %{buildroot}%{_includedir}
|
||||||
|
#done
|
||||||
|
|
||||||
|
pushd %{buildroot}%{_bindir}
|
||||||
|
find * -exec ln -s {} {}-%{majvershort} \;
|
||||||
|
popd
|
||||||
|
|
||||||
|
# fix strange permissions
|
||||||
|
chmod u+w %{buildroot}%{_bindir} %{buildroot}%{_bindir}/*
|
||||||
|
|
||||||
|
ln -s libdb-%{majver}.so %{buildroot}%{_libdir}/libdb.so.%{majver}
|
||||||
|
|
||||||
|
%if "%{stage1}" != "1"
|
||||||
|
|
||||||
|
ln -s libdb_java-%{majver}.so %{buildroot}%{_libdir}/libdb_java.so.%{majver}
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_datadir}/java
|
||||||
|
mv %{buildroot}%{_libdir}/db.jar %{buildroot}%{_datadir}/java/db-%{version}.jar
|
||||||
|
|
||||||
|
(
|
||||||
|
cd %{buildroot}%{_datadir}/java
|
||||||
|
for jar in *-%{version}*; do
|
||||||
|
ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`
|
||||||
|
done
|
||||||
|
)
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# remove unneeded files
|
||||||
|
rm -f %{buildroot}%{_libdir}/*.la
|
||||||
|
rm -f %{buildroot}%{_libdir}/libdb.so
|
||||||
|
rm -f %{buildroot}%{_libdir}/libdb_cxx.so
|
||||||
|
rm -f %{buildroot}%{_libdir}/libdb.a
|
||||||
|
rm -f %{buildroot}%{_libdir}/libdb_cxx.a
|
||||||
|
rm -f %{buildroot}%{_libdir}/libdb_tcl.so
|
||||||
|
rm -f %{buildroot}%{_libdir}/libdb-%{MAJver}.so
|
||||||
|
rm -f %{buildroot}%{_libdir}/libdb_cxx-%{MAJver}.so
|
||||||
|
rm -f %{buildroot}%{_libdir}/libdb_tcl-%{MAJver}.so
|
||||||
|
|
||||||
|
chmod +x %{buildroot}%{_libdir}/*.so*
|
||||||
|
|
||||||
|
#ln -sf libdb-%{majver}.so %{buildroot}%{_libdir}/libdb.so
|
||||||
|
#ln -sf libdb_cxx-%{majver}.so %{buildroot}%{_libdir}/libdb_cxx.so
|
||||||
|
|
||||||
|
|
||||||
|
%clean
|
||||||
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||||
|
|
||||||
|
%post -n libdb48 -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%postun -n libdb48 -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_bindir}/*
|
||||||
|
|
||||||
|
%files -n libdb48
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_libdir}/libdb-%{majver}.so
|
||||||
|
%{_libdir}/libdb_cxx-%{majver}.so
|
||||||
|
%{_libdir}/libdb.so.%{majver}
|
||||||
|
|
||||||
|
%files -n libdb48-devel
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_includedir}/*
|
||||||
|
#%{_libdir}/libdb_cxx.so
|
||||||
|
#%{_libdir}/libdb.so
|
||||||
|
|
||||||
|
%files docs
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%dir %{_datadir}/doc/libdb4-%{version}
|
||||||
|
%{_datadir}/doc/libdb4-%{version}/*
|
||||||
|
|
||||||
|
%files -n libdb48-static
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_libdir}/libdb-%{majver}.a
|
||||||
|
%{_libdir}/libdb_cxx-%{majver}.a
|
||||||
|
%{_libdir}/libdb_java-%{majver}.a
|
||||||
|
%{_libdir}/libdb_tcl-%{majver}.a
|
||||||
|
|
||||||
|
%post -n libdb48-tcl -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%postun -n libdb48-tcl -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files -n libdb48-tcl
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_libdir}/libdb_tcl-%{majver}.so
|
||||||
|
|
||||||
|
%post -n java-bdb48 -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%postun -n java-bdb48 -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files -n java-bdb48
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_libdir}/libdb_java.so
|
||||||
|
%{_libdir}/libdb_java-%{MAJver}.so
|
||||||
|
%{_libdir}/libdb_java-%{majver}.so
|
||||||
|
%{_libdir}/libdb_java-%{majver}_g.so
|
||||||
|
%{_libdir}/libdb_java.so.%{majver}
|
||||||
|
%{_datadir}/java/db-%{version}.jar
|
||||||
|
%{_datadir}/java/db.jar
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Thu Sep 15 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 4.8.30-4mamba
|
||||||
|
- java-bdb48: don't obsolete libdb-java, provided by libdb51-java
|
||||||
|
|
||||||
|
* Thu Mar 31 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 4.8.30-3mamba
|
||||||
|
- remove requirement for java-openjdk; current system jdk is used
|
||||||
|
- ok let's leave headers in %{_includedir}/db4 instead of %{_includedir}/db48
|
||||||
|
- but don't make this the system default db version thus not installing %{_includedir}/db*.h
|
||||||
|
|
||||||
|
* Sat Feb 26 2011 gil <puntogil@libero.it> 4.8.30-2mamba
|
||||||
|
- rename to db48
|
||||||
|
- add db48 libdb48-static docs sub packages
|
||||||
|
|
||||||
|
* Mon Jan 17 2011 gil <puntogil@libero.it> 4.8.30-1mamba
|
||||||
|
- update to 4.8.30
|
||||||
|
- add java-openjdk support
|
||||||
|
- add db 185 support
|
||||||
|
- add libtcl support
|
||||||
|
- move headers files in %{_includedir}/db4 and create db.h db_cxx.h db_185.h links in %{_includedir}
|
||||||
|
- add db.jar with version
|
||||||
|
- add libdb-tcl sub package
|
||||||
|
|
||||||
|
* Thu Dec 31 2009 Automatic Build System <autodist@mambasoft.it> 4.8.26-1mamba
|
||||||
|
- automatic update to 4.8.26 by autodist
|
||||||
|
|
||||||
|
* Fri Sep 25 2009 Silvan Calarco <silvan.calarco@mambasoft.it> 4.8.24-1mamba
|
||||||
|
- update to 4.8.24
|
||||||
|
|
||||||
|
* Thu Jul 03 2008 gil <puntogil@libero.it> 4.7.25-1mamba
|
||||||
|
- update to version 4.7.25
|
||||||
|
- removed patches
|
||||||
|
|
||||||
|
* Wed Jun 04 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.52-8mamba
|
||||||
|
- specfile updated
|
||||||
|
|
||||||
|
* Thu Jul 13 2006 Davide Madrisan <davide.madrisan@qilinux.it> 4.2.52-7qilnx
|
||||||
|
- fixed openldap warning: "BerkeleyDB 4.2.52 library needs TXN patch!"
|
||||||
|
- official patches applied
|
||||||
|
- fixed permissions of binary files
|
||||||
|
|
||||||
|
* Wed Oct 26 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.52-6qilnx
|
||||||
|
- add OpenOffice patch
|
||||||
|
|
||||||
|
* Mon Oct 24 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.52-5qilnx
|
||||||
|
- do not link against libpthread
|
||||||
|
|
||||||
|
* Mon Oct 24 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.52-4qilnx
|
||||||
|
- rebuild with gcj
|
||||||
|
|
||||||
|
* Wed Feb 02 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.52-3qilnx
|
||||||
|
- rebuilt with java bindings
|
||||||
|
|
||||||
|
* Tue Jul 27 2004 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.25-8qilnx
|
||||||
|
- new version build
|
||||||
|
- source RPM renamed to db42 (should cohexist with libdb4)
|
||||||
|
|
||||||
|
* Sun May 09 2004 Silvan Calarco <silvan.calarco@mambasoft.it> 4.1.25-8qilnx
|
||||||
|
- added libdb.so provides
|
||||||
|
|
||||||
|
* Fri May 07 2004 Silvan Calarco <silvan.calarco@mambasoft.it> 4.1.25-7qilnx
|
||||||
|
- fixed symlinks for compatibility
|
||||||
|
|
||||||
|
* Fri May 07 2004 Silvan Calarco <silvan.calarco@mambasoft.it> 4.1.25-6qilnx
|
||||||
|
- rebuild with --enable-compat185
|
||||||
|
|
||||||
|
* Tue Sep 15 2003 Silvan Calarco <silvan.calarco@mambasoft.it> 4.1.25-5qilnx
|
||||||
|
- Added symlink /usr/include/db.h so that db4 is system default version
|
||||||
|
|
||||||
|
* Tue Sep 09 2003 Silvan Calarco <silvan.calarco@mambasoft.it> 4.1.25-4qilnx
|
||||||
|
- Moved includes to /usr/include/db4 for devel packages co-existence
|
||||||
|
|
||||||
|
* Fri Jul 25 2003 Silvan Calarco <silvan.calarco@qinet.it> 4.1.25-3qilnx
|
||||||
|
- Removed compat185 (it looks broken, I'll try to use db2's compat185)
|
||||||
|
|
||||||
|
* Thu Jul 24 2003 Silvan Calarco <silvan.calarco@qinet.it> 4.1.25-2qilnx
|
||||||
|
- Enabled compatibiliy with version 185
|
||||||
|
|
||||||
|
* Tue Apr 22 2003 Luca Tinelli <luca.tinelli@qinet.it> 4.1.25-1qilnx
|
||||||
|
- Creation of db4 package
|
248
java.diff
Normal file
248
java.diff
Normal file
@ -0,0 +1,248 @@
|
|||||||
|
--- db4-4.2.52/java/src/com/sleepycat/db/DbEnv.java 2003-12-03 16:26:27.000000000 -0500
|
||||||
|
+++ db4-4.2.52/java/src/com/sleepycat/db/DbEnv.java 2004-03-18 15:15:42.000000000 -0500
|
||||||
|
@@ -61,7 +61,7 @@
|
||||||
|
// Internally, the JNI layer creates a global reference to each DbEnv,
|
||||||
|
// which can potentially be different to this. We keep a copy here so
|
||||||
|
// we can clean up after destructors.
|
||||||
|
- private Object dbenv_ref;
|
||||||
|
+ private long dbenv_ref;
|
||||||
|
private DbAppDispatch app_dispatch_handler;
|
||||||
|
private DbEnvFeedbackHandler env_feedback_handler;
|
||||||
|
private DbErrorHandler error_handler;
|
||||||
|
@@ -94,7 +94,7 @@
|
||||||
|
void cleanup() {
|
||||||
|
swigCPtr = 0;
|
||||||
|
db_java.deleteRef0(dbenv_ref);
|
||||||
|
- dbenv_ref = null;
|
||||||
|
+ dbenv_ref = 0L;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
--- db4-4.2.52/java/src/com/sleepycat/db/Db.java 2003-12-03 16:26:25.000000000 -0500
|
||||||
|
+++ db4-4.2.52/java/src/com/sleepycat/db/Db.java 2004-03-18 15:15:55.000000000 -0500
|
||||||
|
@@ -57,7 +57,7 @@
|
||||||
|
// Internally, the JNI layer creates a global reference to each Db,
|
||||||
|
// which can potentially be different to this. We keep a copy here so
|
||||||
|
// we can clean up after destructors.
|
||||||
|
- private Object db_ref;
|
||||||
|
+ private long db_ref;
|
||||||
|
private DbEnv dbenv;
|
||||||
|
private boolean private_dbenv;
|
||||||
|
private DbAppendRecno append_recno_handler;
|
||||||
|
@@ -84,7 +84,7 @@
|
||||||
|
private void cleanup() {
|
||||||
|
swigCPtr = 0;
|
||||||
|
db_java.deleteRef0(db_ref);
|
||||||
|
- db_ref = null;
|
||||||
|
+ db_ref = 0L;
|
||||||
|
if (private_dbenv) {
|
||||||
|
dbenv.cleanup();
|
||||||
|
}
|
||||||
|
--- db4-4.2.52/java/src/com/sleepycat/db/db_java.java 2003-12-03 16:10:54.000000000 -0500
|
||||||
|
+++ db4-4.2.52/java/src/com/sleepycat/db/db_java.java 2004-03-18 15:17:24.000000000 -0500
|
||||||
|
@@ -14,15 +14,15 @@
|
||||||
|
db_javaJNI.DbEnv_lock_vec(DbEnv.getCPtr(dbenv), locker, flags, list, offset, nlist);
|
||||||
|
}
|
||||||
|
|
||||||
|
- static Object initDbEnvRef0(DbEnv self, Object handle) {
|
||||||
|
+ static long initDbEnvRef0(DbEnv self, Object handle) {
|
||||||
|
return db_javaJNI.initDbEnvRef0(DbEnv.getCPtr(self), handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
- static Object initDbRef0(Db self, Object handle) {
|
||||||
|
+ static long initDbRef0(Db self, Object handle) {
|
||||||
|
return db_javaJNI.initDbRef0(Db.getCPtr(self), handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
- static void deleteRef0(Object ref) {
|
||||||
|
+ static void deleteRef0(long ref) {
|
||||||
|
db_javaJNI.deleteRef0(ref);
|
||||||
|
}
|
||||||
|
|
||||||
|
--- db4-4.2.52/java/src/com/sleepycat/db/db_javaJNI.java 2003-12-03 16:10:55.000000000 -0500
|
||||||
|
+++ db4-4.2.52/java/src/com/sleepycat/db/db_javaJNI.java 2004-03-18 15:16:18.000000000 -0500
|
||||||
|
@@ -45,9 +45,9 @@
|
||||||
|
static native final void initialize();
|
||||||
|
|
||||||
|
public final static native void DbEnv_lock_vec(long jarg1, int jarg2, int jarg3, DbLockRequest[] jarg4, int jarg5, int jarg6) throws DbException;
|
||||||
|
- final static native Object initDbEnvRef0(long jarg1, Object jarg2);
|
||||||
|
- final static native Object initDbRef0(long jarg1, Object jarg2);
|
||||||
|
- final static native void deleteRef0(Object jarg1);
|
||||||
|
+ final static native long initDbEnvRef0(long jarg1, Object jarg2);
|
||||||
|
+ final static native long initDbRef0(long jarg1, Object jarg2);
|
||||||
|
+ final static native void deleteRef0(long jarg1);
|
||||||
|
final static native long getDbEnv0(long jarg1);
|
||||||
|
public final static native long new_Db(long jarg1, int jarg2) throws DbException;
|
||||||
|
public final static native void Db_associate(long jarg1, long jarg2, long jarg3, DbSecondaryKeyCreate jarg4, int jarg5) throws DbException;
|
||||||
|
--- db4-4.2.52/libdb_java/db_java.i 2003-11-17 15:00:52.000000000 -0500
|
||||||
|
+++ db4-4.2.52/libdb_java/db_java.i 2004-03-18 09:21:14.000000000 -0500
|
||||||
|
@@ -53,7 +53,7 @@
|
||||||
|
// Internally, the JNI layer creates a global reference to each DbEnv,
|
||||||
|
// which can potentially be different to this. We keep a copy here so
|
||||||
|
// we can clean up after destructors.
|
||||||
|
- private Object dbenv_ref;
|
||||||
|
+ private long dbenv_ref;
|
||||||
|
private DbAppDispatch app_dispatch_handler;
|
||||||
|
private DbEnvFeedbackHandler env_feedback_handler;
|
||||||
|
private DbErrorHandler error_handler;
|
||||||
|
@@ -76,7 +76,7 @@
|
||||||
|
void cleanup() {
|
||||||
|
swigCPtr = 0;
|
||||||
|
db_java.deleteRef0(dbenv_ref);
|
||||||
|
- dbenv_ref = null;
|
||||||
|
+ dbenv_ref = 0L;
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized void close(int flags) throws DbException {
|
||||||
|
@@ -220,7 +220,7 @@
|
||||||
|
// Internally, the JNI layer creates a global reference to each Db,
|
||||||
|
// which can potentially be different to this. We keep a copy here so
|
||||||
|
// we can clean up after destructors.
|
||||||
|
- private Object db_ref;
|
||||||
|
+ private long db_ref;
|
||||||
|
private DbEnv dbenv;
|
||||||
|
private boolean private_dbenv;
|
||||||
|
private DbAppendRecno append_recno_handler;
|
||||||
|
@@ -245,7 +245,7 @@
|
||||||
|
private void cleanup() {
|
||||||
|
swigCPtr = 0;
|
||||||
|
db_java.deleteRef0(db_ref);
|
||||||
|
- db_ref = null;
|
||||||
|
+ db_ref = 0L;
|
||||||
|
if (private_dbenv)
|
||||||
|
dbenv.cleanup();
|
||||||
|
dbenv = null;
|
||||||
|
@@ -503,46 +503,42 @@
|
||||||
|
}
|
||||||
|
%}
|
||||||
|
|
||||||
|
-%native(initDbEnvRef0) jobject initDbEnvRef0(DB_ENV *self, void *handle);
|
||||||
|
-%native(initDbRef0) jobject initDbRef0(DB *self, void *handle);
|
||||||
|
-%native(deleteRef0) void deleteRef0(jobject ref);
|
||||||
|
+%native(initDbEnvRef0) jlong initDbEnvRef0(DB_ENV *self, void *handle);
|
||||||
|
+%native(initDbRef0) jlong initDbRef0(DB *self, void *handle);
|
||||||
|
+%native(deleteRef0) void deleteRef0(jlong ref);
|
||||||
|
%native(getDbEnv0) DB_ENV *getDbEnv0(DB *self);
|
||||||
|
|
||||||
|
%{
|
||||||
|
-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
|
||||||
|
+JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
|
||||||
|
JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
|
||||||
|
DB_ENV *self = *(DB_ENV **)&jarg1;
|
||||||
|
+ jlong ret;
|
||||||
|
COMPQUIET(jcls, NULL);
|
||||||
|
|
||||||
|
DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
|
||||||
|
self->set_errpfx(self, (const char*)self);
|
||||||
|
- return (jobject)DB_ENV_INTERNAL(self);
|
||||||
|
+ *(jobject *)&ret = (jobject)DB_ENV_INTERNAL(self);
|
||||||
|
+ return (ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
|
||||||
|
+JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
|
||||||
|
JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
|
||||||
|
DB *self = *(DB **)&jarg1;
|
||||||
|
+ jlong ret;
|
||||||
|
COMPQUIET(jcls, NULL);
|
||||||
|
|
||||||
|
DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
|
||||||
|
- return (jobject)DB_INTERNAL(self);
|
||||||
|
+ *(jobject *)&ret = (jobject)DB_INTERNAL(self);
|
||||||
|
+ return (ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0(
|
||||||
|
- JNIEnv *jenv, jclass jcls, jobject jref) {
|
||||||
|
- COMPQUIET(jcls, NULL);
|
||||||
|
-
|
||||||
|
- if (jref != NULL)
|
||||||
|
- (*jenv)->DeleteGlobalRef(jenv, jref);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
|
||||||
|
JNIEnv *jenv, jclass jcls, jlong jarg1) {
|
||||||
|
- DB *self = *(DB **)&jarg1;
|
||||||
|
+ jobject jref = *(jobject *)&jarg1;
|
||||||
|
COMPQUIET(jcls, NULL);
|
||||||
|
- COMPQUIET(jenv, NULL);
|
||||||
|
|
||||||
|
- return (jobject)DB_INTERNAL(self);
|
||||||
|
+ if (jref != 0L)
|
||||||
|
+ (*jenv)->DeleteGlobalRef(jenv, jref);
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
|
||||||
|
@@ -554,7 +550,7 @@
|
||||||
|
COMPQUIET(jcls, NULL);
|
||||||
|
|
||||||
|
*(DB_ENV **)&env_cptr = self->dbenv;
|
||||||
|
- return env_cptr;
|
||||||
|
+ return (env_cptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL
|
||||||
|
--- db4-4.2.52/libdb_java/db_java_wrap.c 2003-12-03 16:10:36.000000000 -0500
|
||||||
|
+++ db4-4.2.52/libdb_java/db_java_wrap.c 2004-03-18 12:18:58.000000000 -0500
|
||||||
|
@@ -1192,40 +1192,36 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
|
||||||
|
+JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
|
||||||
|
JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
|
||||||
|
DB_ENV *self = *(DB_ENV **)&jarg1;
|
||||||
|
+ jlong ret;
|
||||||
|
COMPQUIET(jcls, NULL);
|
||||||
|
|
||||||
|
DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
|
||||||
|
self->set_errpfx(self, (const char*)self);
|
||||||
|
- return (jobject)DB_ENV_INTERNAL(self);
|
||||||
|
+ *(jobject *)&ret = (jobject)DB_ENV_INTERNAL(self);
|
||||||
|
+ return (ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
|
||||||
|
+JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
|
||||||
|
JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
|
||||||
|
DB *self = *(DB **)&jarg1;
|
||||||
|
+ jlong ret;
|
||||||
|
COMPQUIET(jcls, NULL);
|
||||||
|
|
||||||
|
DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
|
||||||
|
- return (jobject)DB_INTERNAL(self);
|
||||||
|
+ *(jobject *)&ret = (jobject)DB_INTERNAL(self);
|
||||||
|
+ return (ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0(
|
||||||
|
- JNIEnv *jenv, jclass jcls, jobject jref) {
|
||||||
|
- COMPQUIET(jcls, NULL);
|
||||||
|
-
|
||||||
|
- if (jref != NULL)
|
||||||
|
- (*jenv)->DeleteGlobalRef(jenv, jref);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
|
||||||
|
JNIEnv *jenv, jclass jcls, jlong jarg1) {
|
||||||
|
- DB *self = *(DB **)&jarg1;
|
||||||
|
+ jobject jref = *(jobject *)&jarg1;
|
||||||
|
COMPQUIET(jcls, NULL);
|
||||||
|
- COMPQUIET(jenv, NULL);
|
||||||
|
|
||||||
|
- return (jobject)DB_INTERNAL(self);
|
||||||
|
+ if (jref != 0L)
|
||||||
|
+ (*jenv)->DeleteGlobalRef(jenv, jref);
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
|
||||||
|
@@ -1237,7 +1233,7 @@
|
||||||
|
COMPQUIET(jcls, NULL);
|
||||||
|
|
||||||
|
*(DB_ENV **)&env_cptr = self->dbenv;
|
||||||
|
- return env_cptr;
|
||||||
|
+ return (env_cptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL
|
||||||
|
|
20
patch.1.1
Normal file
20
patch.1.1
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
*** Makefile.orig Wed Jul 13 21:43:16 1994
|
||||||
|
--- Makefile Wed Dec 31 19:00:00 1969
|
||||||
|
***************
|
||||||
|
*** 15,22 ****
|
||||||
|
|
||||||
|
${LIBDB}: ${OBJ1} ${OBJ2} ${OBJ3} ${OBJ4} ${OBJ5} ${MISC}
|
||||||
|
rm -f $@
|
||||||
|
! ar cq $@ \
|
||||||
|
! `lorder ${OBJ1} ${OBJ2} ${OBJ3} ${OBJ4} ${OBJ5} ${MISC} | tsort`
|
||||||
|
ranlib $@
|
||||||
|
|
||||||
|
clean:
|
||||||
|
--- 15,21 ----
|
||||||
|
|
||||||
|
${LIBDB}: ${OBJ1} ${OBJ2} ${OBJ3} ${OBJ4} ${OBJ5} ${MISC}
|
||||||
|
rm -f $@
|
||||||
|
! ar cq $@ ${OBJ1} ${OBJ2} ${OBJ3} ${OBJ4} ${OBJ5} ${MISC}
|
||||||
|
ranlib $@
|
||||||
|
|
||||||
|
clean:
|
19
patch.1.2
Normal file
19
patch.1.2
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
*** btree/bt_split.c Tue Jul 26 14:22:02 1994
|
||||||
|
--- btree/bt_split.c Sat Jan 4 14:38:55 1997
|
||||||
|
***************
|
||||||
|
*** 673,679 ****
|
||||||
|
* where we decide to try and copy too much onto the left page.
|
||||||
|
* Make sure that doesn't happen.
|
||||||
|
*/
|
||||||
|
! if (skip <= off && used + nbytes >= full) {
|
||||||
|
--off;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
--- 673,679 ----
|
||||||
|
* where we decide to try and copy too much onto the left page.
|
||||||
|
* Make sure that doesn't happen.
|
||||||
|
*/
|
||||||
|
! if (skip <= off && used + nbytes >= full || nxt == top - 1) {
|
||||||
|
--off;
|
||||||
|
break;
|
||||||
|
}
|
37
patch.1.3
Normal file
37
patch.1.3
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
*** btree/bt_split.c.orig Sat Feb 8 10:14:10 1997
|
||||||
|
--- btree/bt_split.c Sat Feb 8 10:14:51 1997
|
||||||
|
***************
|
||||||
|
*** 673,679 ****
|
||||||
|
* where we decide to try and copy too much onto the left page.
|
||||||
|
* Make sure that doesn't happen.
|
||||||
|
*/
|
||||||
|
! if (skip <= off && used + nbytes >= full || nxt == top - 1) {
|
||||||
|
--off;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
--- 673,680 ----
|
||||||
|
* where we decide to try and copy too much onto the left page.
|
||||||
|
* Make sure that doesn't happen.
|
||||||
|
*/
|
||||||
|
! if (skip <= off &&
|
||||||
|
! used + nbytes + sizeof(indx_t) >= full || nxt == top - 1) {
|
||||||
|
--off;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
***************
|
||||||
|
*** 686,692 ****
|
||||||
|
memmove((char *)l + l->upper, src, nbytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
! used += nbytes;
|
||||||
|
if (used >= half) {
|
||||||
|
if (!isbigkey || bigkeycnt == 3)
|
||||||
|
break;
|
||||||
|
--- 687,693 ----
|
||||||
|
memmove((char *)l + l->upper, src, nbytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
! used += nbytes + sizeof(indx_t);
|
||||||
|
if (used >= half) {
|
||||||
|
if (!isbigkey || bigkeycnt == 3)
|
||||||
|
break;
|
22
patch.1.4
Normal file
22
patch.1.4
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
*** btree/bt_page.c.orig Wed Jul 13 21:29:02 1994
|
||||||
|
--- btree/bt_page.c Wed Jun 11 20:14:43 1997
|
||||||
|
***************
|
||||||
|
*** 65,70 ****
|
||||||
|
--- 65,71 ----
|
||||||
|
h->prevpg = P_INVALID;
|
||||||
|
h->nextpg = t->bt_free;
|
||||||
|
t->bt_free = h->pgno;
|
||||||
|
+ F_SET(t, B_METADIRTY);
|
||||||
|
|
||||||
|
/* Make sure the page gets written back. */
|
||||||
|
return (mpool_put(t->bt_mp, h, MPOOL_DIRTY));
|
||||||
|
***************
|
||||||
|
*** 92,97 ****
|
||||||
|
--- 93,99 ----
|
||||||
|
(h = mpool_get(t->bt_mp, t->bt_free, 0)) != NULL) {
|
||||||
|
*npg = t->bt_free;
|
||||||
|
t->bt_free = h->nextpg;
|
||||||
|
+ F_SET(t, B_METADIRTY);
|
||||||
|
return (h);
|
||||||
|
}
|
||||||
|
return (mpool_new(t->bt_mp, npg));
|
36
patch.4.2.52.1
Normal file
36
patch.4.2.52.1
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
*** mp/mp_fget.c.orig 25 Sep 2003 02:15:16 -0000 11.81
|
||||||
|
--- mp/mp_fget.c 9 Dec 2003 19:06:28 -0000 11.82
|
||||||
|
***************
|
||||||
|
*** 440,446 ****
|
||||||
|
c_mp->stat.st_pages--;
|
||||||
|
alloc_bhp = NULL;
|
||||||
|
R_UNLOCK(dbenv, &dbmp->reginfo[n_cache]);
|
||||||
|
- MUTEX_LOCK(dbenv, &hp->hash_mutex);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We can't use the page we found in the pool if DB_MPOOL_NEW
|
||||||
|
--- 440,445 ----
|
||||||
|
***************
|
||||||
|
*** 455,460 ****
|
||||||
|
--- 454,462 ----
|
||||||
|
b_incr = 0;
|
||||||
|
goto alloc;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ /* We can use the page -- get the bucket lock. */
|
||||||
|
+ MUTEX_LOCK(dbenv, &hp->hash_mutex);
|
||||||
|
break;
|
||||||
|
case SECOND_MISS:
|
||||||
|
/*
|
||||||
|
*** mp/mp_fput.c.orig 30 Sep 2003 17:12:00 -0000 11.48
|
||||||
|
--- mp/mp_fput.c 13 Dec 2003 00:08:29 -0000 11.49
|
||||||
|
***************
|
||||||
|
*** 285,290 ****
|
||||||
|
--- 285,291 ----
|
||||||
|
bhp != NULL; bhp = SH_TAILQ_NEXT(bhp, hq, __bh))
|
||||||
|
if (bhp->priority != UINT32_T_MAX &&
|
||||||
|
bhp->priority > MPOOL_BASE_DECREMENT)
|
||||||
|
+ bhp->priority -= MPOOL_BASE_DECREMENT;
|
||||||
|
MUTEX_UNLOCK(dbenv, &hp->hash_mutex);
|
||||||
|
}
|
||||||
|
}
|
45
patch.4.2.52.2
Normal file
45
patch.4.2.52.2
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
*** lock/lock.c.save 2004-01-30 10:48:33.000000000 -0800
|
||||||
|
--- lock/lock.c 2004-01-30 10:55:58.000000000 -0800
|
||||||
|
***************
|
||||||
|
*** 2216,2226 ****
|
||||||
|
dp = (u_int8_t *)dp + \
|
||||||
|
sizeof(db_pgno_t); \
|
||||||
|
} while (0)
|
||||||
|
! #define COPY_OBJ(dp, obj) do { \
|
||||||
|
! memcpy(dp, obj->data, obj->size); \
|
||||||
|
! dp = (u_int8_t *)dp + \
|
||||||
|
! ALIGN(obj->size, \
|
||||||
|
! sizeof(u_int32_t)); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define GET_COUNT(dp, count) do { \
|
||||||
|
--- 2216,2227 ----
|
||||||
|
dp = (u_int8_t *)dp + \
|
||||||
|
sizeof(db_pgno_t); \
|
||||||
|
} while (0)
|
||||||
|
! #define COPY_OBJ(dp, obj) do { \
|
||||||
|
! memcpy(dp, \
|
||||||
|
! (obj)->data, (obj)->size); \
|
||||||
|
! dp = (u_int8_t *)dp + \
|
||||||
|
! ALIGN((obj)->size, \
|
||||||
|
! sizeof(u_int32_t)); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define GET_COUNT(dp, count) do { \
|
||||||
|
***************
|
||||||
|
*** 2339,2345 ****
|
||||||
|
for (i = 0; i < nlocks; i = j) {
|
||||||
|
PUT_PCOUNT(dp, obj[i].ulen);
|
||||||
|
PUT_SIZE(dp, obj[i].size);
|
||||||
|
! COPY_OBJ(dp, obj);
|
||||||
|
lock = (DB_LOCK_ILOCK *)obj[i].data;
|
||||||
|
for (j = i + 1; j <= i + obj[i].ulen; j++) {
|
||||||
|
lock = (DB_LOCK_ILOCK *)obj[j].data;
|
||||||
|
--- 2340,2346 ----
|
||||||
|
for (i = 0; i < nlocks; i = j) {
|
||||||
|
PUT_PCOUNT(dp, obj[i].ulen);
|
||||||
|
PUT_SIZE(dp, obj[i].size);
|
||||||
|
! COPY_OBJ(dp, &obj[i]);
|
||||||
|
lock = (DB_LOCK_ILOCK *)obj[i].data;
|
||||||
|
for (j = i + 1; j <= i + obj[i].ulen; j++) {
|
||||||
|
lock = (DB_LOCK_ILOCK *)obj[j].data;
|
Reference in New Issue
Block a user