From 3beeaa39511b2f87bc984291c900062cd702e39e Mon Sep 17 00:00:00 2001 From: Jindrich Novy Date: Wed, 21 Apr 2010 04:53:25 +0000 Subject: [PATCH] initial import --- .cvsignore | 2 + db-1.85-errno.patch | 89 +++++++ db-4.5.20-jni-include-dir.patch | 12 + db-4.6.21-1.85-compat.patch | 14 ++ import.log | 1 + libdb.spec | 416 ++++++++++++++++++++++++++++++++ patch.1.1 | 20 ++ patch.1.2 | 19 ++ patch.1.3 | 37 +++ patch.1.4 | 22 ++ sources | 2 + 11 files changed, 634 insertions(+) create mode 100644 db-1.85-errno.patch create mode 100644 db-4.5.20-jni-include-dir.patch create mode 100644 db-4.6.21-1.85-compat.patch create mode 100644 import.log create mode 100644 libdb.spec create mode 100644 patch.1.1 create mode 100644 patch.1.2 create mode 100644 patch.1.3 create mode 100644 patch.1.4 diff --git a/.cvsignore b/.cvsignore index e69de29..b4d86b7 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1,2 @@ +db-5.0.21.tar.gz +db.1.85.tar.gz diff --git a/db-1.85-errno.patch b/db-1.85-errno.patch new file mode 100644 index 0000000..ccc9ddf --- /dev/null +++ b/db-1.85-errno.patch @@ -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); + } + diff --git a/db-4.5.20-jni-include-dir.patch b/db-4.5.20-jni-include-dir.patch new file mode 100644 index 0000000..fe82d38 --- /dev/null +++ b/db-4.5.20-jni-include-dir.patch @@ -0,0 +1,12 @@ +diff -up db-4.7.25/dist/configure.ac.jni db-4.7.25/dist/configure.ac +--- db-4.7.25/dist/configure.ac.jni 2008-08-20 14:22:59.000000000 +0200 ++++ db-4.7.25/dist/configure.ac 2008-08-20 14:23:39.000000000 +0200 +@@ -418,7 +418,7 @@ if test "$db_cv_java" = "yes"; then + AC_PROG_JAVAC + AC_PROG_JAR + AC_PROG_JAVA +- AC_JNI_INCLUDE_DIR ++ JNI_INCLUDE_DIRS="/usr/lib/jvm/java-1.5.0-gcj/include" + + AC_MSG_CHECKING(java version) + case "$JAVA" in diff --git a/db-4.6.21-1.85-compat.patch b/db-4.6.21-1.85-compat.patch new file mode 100644 index 0000000..fcf3256 --- /dev/null +++ b/db-4.6.21-1.85-compat.patch @@ -0,0 +1,14 @@ +diff -up db-5.0.21/dist/Makefile.in.185compat db-5.0.21/dist/Makefile.in +--- db-5.0.21/dist/Makefile.in.185compat 2010-03-30 19:36:10.000000000 +0200 ++++ db-5.0.21/dist/Makefile.in 2010-04-01 08:03:05.000000000 +0200 +@@ -186,8 +186,8 @@ libtso_major= $(libtcl_base)-$(LIBMAJOR) + # 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 + + ################################################## + # Event tracing definitions diff --git a/import.log b/import.log new file mode 100644 index 0000000..d58bbf0 --- /dev/null +++ b/import.log @@ -0,0 +1 @@ +libdb-5_0_21-1_fc13:HEAD:libdb-5.0.21-1.fc13.src.rpm:1271825538 diff --git a/libdb.spec b/libdb.spec new file mode 100644 index 0000000..245307a --- /dev/null +++ b/libdb.spec @@ -0,0 +1,416 @@ +# the set of arches on which libgcj provides gcj and libgcj-javac-placeholder.sh +%define java_arches %{ix86} alpha ia64 ppc sparc sparcv9 x86_64 s390 s390x +%define __soversion_major 5 +%define __soversion %{__soversion_major}.0 + +Summary: The Berkeley DB database library for C +Name: libdb +Version: 5.0.21 +Release: 1%{?dist} +Source0: http://download.oracle.com/berkeley-db/db-%{version}.tar.gz +Source1: http://download.oracle.com/berkeley-db/db.1.85.tar.gz +# db-1.85 upstream patches +Patch10: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.1 +Patch11: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.2 +Patch12: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.3 +Patch13: http://www.oracle.com/technology/products/berkeley-db/db/update/1.85/patch.1.4 +# other patches +Patch20: db-1.85-errno.patch +Patch22: db-4.6.21-1.85-compat.patch +Patch24: db-4.5.20-jni-include-dir.patch +URL: http://www.oracle.com/database/berkeley-db/ +License: BSD +Group: System Environment/Libraries +# unversioned obsoletes are OK here as these BDB versions never occur again +BuildRequires: perl, libtool, ed +BuildRequires: tcl-devel >= 8.5.2-3 +%ifarch %{java_arches} +BuildRequires: gcc-java +BuildRequires: java-1.6.0-openjdk-devel +%endif +BuildRequires: chrpath +BuildRequires: dos2unix +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%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. + +%package cxx +Summary: The Berkeley DB database library for C++ +Group: System Environment/Libraries +Requires: %{name} = %{version}-%{release} + +%description cxx +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 utils +Summary: Command line tools for managing Berkeley DB databases +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} + +%description utils +The Berkeley Database (Berkeley DB) is a programmatic toolkit that +provides embedded database support for both traditional and +client/server applications. Berkeley DB includes B+tree, Extended +Linear Hashing, Fixed and Variable-length record access methods, +transactions, locking, logging, shared memory caching, and database +recovery. DB supports C, C++, Java and Perl APIs. + +%package devel +Summary: C development files for the Berkeley DB library +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description 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 devel-static +Summary: Berkeley DB static libraries +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel-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 +needed for applications that require static linking of +Berkeley DB. + +%package tcl +Summary: Development files for using the Berkeley DB with tcl +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description 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. + +%package sql +Summary: Development files for using the Berkeley DB with sql +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description sql +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 SQL. + +%package java +Summary: Development files for using the Berkeley DB with Java +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description java +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 Java. + +%prep +%setup -q -n db-%{version} -a 1 + +pushd db.1.85/PORT/linux +%patch10 -p0 -b .1.1 +popd +pushd db.1.85 +%patch11 -p0 -b .1.2 +%patch12 -p0 -b .1.3 +%patch13 -p0 -b .1.4 +%patch20 -p1 -b .errno +popd + +%patch22 -p1 -b .185compat +%patch24 -p1 -b .4.5.20.jni + +# fix encoding +dos2unix examples_c/bench_001.c + +# Define a shell function for fixing HREF references in the docs, which +# would otherwise break when we split the docs up into subpackages. +fixup_href() { + for doc in $@ ; do + chmod u+w ${doc} + sed -e 's,="../api_c/,="../../%{name}-devel-%{version}/api_c/,g' \ + -e 's,="api_c/,="../%{name}-devel-%{version}/api_c/,g' \ + -e 's,="../api_cxx/,="../../%{name}-devel-%{version}/api_cxx/,g' \ + -e 's,="api_cxx/,="../%{name}-devel-%{version}/api_cxx/,g' \ + -e 's,="../api_tcl/,="../../%{name}-devel-%{version}/api_tcl/,g' \ + -e 's,="api_tcl/,="../%{name}-devel-%{version}/api_tcl/,g' \ + -e 's,="../java/,="../../%{name}-devel-%{version}/java/,g' \ + -e 's,="java/,="../%{name}-devel-%{version}/java/,g' \ + -e 's,="../examples_c/,="../../%{name}-devel-%{version}/examples_c/,g' \ + -e 's,="examples_c/,="../%{name}-devel-%{version}/examples_c/,g' \ + -e 's,="../examples_cxx/,="../../%{name}-devel-%{version}/examples_cxx/,g' \ + -e 's,="examples_cxx/,="../%{name}-devel-%{version}/examples_cxx/,g' \ + -e 's,="../ref/,="../../%{name}-devel-%{version}/ref/,g' \ + -e 's,="ref/,="../%{name}-devel-%{version}/ref/,g' \ + -e 's,="../images/,="../../%{name}-devel-%{version}/images/,g' \ + -e 's,="images/,="../%{name}-devel-%{version}/images/,g' \ + -e 's,="../utility/,="../../%{name}-utils-%{version}/utility/,g' \ + -e 's,="utility/,="../%{name}-utils-%{version}/utility/,g' ${doc} > ${doc}.new + touch -r ${doc} ${doc}.new + cat ${doc}.new > ${doc} + touch -r ${doc}.new ${doc} + rm -f ${doc}.new + done +} + +set +x +# Fix all of the HTML files. +fixup_href `find . -name "*.html"` +set -x + +cd dist +./s_config + +%build +CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"; export CFLAGS + +# Build the old db-185 libraries. +make -C db.1.85/PORT/%{_os} OORG="$CFLAGS" + +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 . + # XXX --enable-diagnostic should be disabled for production (but is + # useful). + # XXX --enable-debug_{r,w}op should be disabled for production. + %configure -C \ + --enable-compat185 --enable-dump185 \ + --enable-shared --enable-static \ + --enable-tcl --with-tcl=%{_libdir} \ + --enable-cxx --enable-sql \ +%ifarch %{java_arches} + --enable-java \ +%else + --disable-java \ +%endif + --enable-test \ + --with-tcl=%{_libdir}/tcl8.5 \ + --disable-rpath \ + # --enable-diagnostic \ + # --enable-debug --enable-debug_rop --enable-debug_wop \ + + # Remove libtool predep_objects and postdep_objects wonkiness so that + # building without -nostdlib doesn't include them twice. Because we + # already link with g++, weird stuff happens if you don't let the + # compiler handle this. + 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 %{?_smp_mflags} + + # XXX hack around libtool not creating ./libs/libdb_java-X.Y.lai + LDBJ=./.libs/libdb_java-%{__soversion}.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 +rm -rf ${RPM_BUILD_ROOT} +mkdir -p ${RPM_BUILD_ROOT}%{_includedir} +mkdir -p ${RPM_BUILD_ROOT}%{_libdir} + +%makeinstall -C dist/dist-tls + +# XXX Nuke non-versioned archives and symlinks +rm -f ${RPM_BUILD_ROOT}%{_libdir}/{libdb.a,libdb_cxx.a,libdb_tcl.a,libdb_sql.a} +rm -f ${RPM_BUILD_ROOT}%{_libdir}/libdb-%{__soversion_major}.so +rm -f ${RPM_BUILD_ROOT}%{_libdir}/libdb_cxx-%{__soversion_major}.so +rm -f ${RPM_BUILD_ROOT}%{_libdir}/libdb_tcl-%{__soversion_major}.so +rm -f ${RPM_BUILD_ROOT}%{_libdir}/libdb_sql-%{__soversion_major}.so +rm -f ${RPM_BUILD_ROOT}%{_libdir}/libdb_tcl.so + +chmod +x ${RPM_BUILD_ROOT}%{_libdir}/*.so* + +# Move the main shared library from /usr/lib* to /lib* directory. +if [ "%{_libdir}" != "/%{_lib}" ]; then + mkdir -p $RPM_BUILD_ROOT/%{_lib}/ + mv $RPM_BUILD_ROOT/%{_libdir}/libdb-%{__soversion}.so $RPM_BUILD_ROOT/%{_lib}/ + +# Leave relative symlinks in %{_libdir}. + touch $RPM_BUILD_ROOT/rootfile + root=.. + while [ ! -e $RPM_BUILD_ROOT/%{_libdir}/${root}/rootfile ] ; do + root=${root}/.. + done + rm $RPM_BUILD_ROOT/rootfile + + ln -sf ${root}/%{_lib}/libdb-%{__soversion}.so $RPM_BUILD_ROOT/%{_libdir}/libdb.so + ln -sf ${root}/%{_lib}/libdb-%{__soversion}.so $RPM_BUILD_ROOT/%{_libdir}/ + ln -sf libdb_cxx-%{__soversion}.so $RPM_BUILD_ROOT/%{_libdir}/libdb_cxx.so +fi + +# Move the header files to a subdirectory, in case we're deploying on a +# system with multiple versions of DB installed. +mkdir -p ${RPM_BUILD_ROOT}%{_includedir}/%{name} +mv ${RPM_BUILD_ROOT}%{_includedir}/*.h ${RPM_BUILD_ROOT}%{_includedir}/%{name}/ + +# Create symlinks to includes so that "use and link with -ldb" works. +for i in db.h db_cxx.h db_185.h; do + ln -s %{name}/$i ${RPM_BUILD_ROOT}%{_includedir} +done + +%ifarch %{java_arches} +# Move java jar file to the correct place +mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/java +mv ${RPM_BUILD_ROOT}%{_libdir}/*.jar ${RPM_BUILD_ROOT}%{_datadir}/java +%endif + +# Eliminate installed doco +rm -rf ${RPM_BUILD_ROOT}%{_prefix}/docs + +# XXX Avoid Permission denied. strip when building as non-root. +chmod u+w ${RPM_BUILD_ROOT}%{_bindir} ${RPM_BUILD_ROOT}%{_bindir}/* + +# remove unneeded .la files (#225675) +rm -f ${RPM_BUILD_ROOT}%{_libdir}/*.la + +# remove C# devel files +rm -rf docs/csharp + +# avoid fancy permissons +chmod 0755 ${RPM_BUILD_ROOT}%{_libdir}/*.so + +# remove RPATHs +chrpath -d ${RPM_BUILD_ROOT}%{_libdir}/*.so ${RPM_BUILD_ROOT}%{_bindir}/* + +%clean +rm -rf ${RPM_BUILD_ROOT} + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%post -p /sbin/ldconfig cxx + +%postun -p /sbin/ldconfig cxx + +%post -p /sbin/ldconfig sql + +%postun -p /sbin/ldconfig sql + +%post -p /sbin/ldconfig tcl + +%postun -p /sbin/ldconfig tcl + +%post -p /sbin/ldconfig java + +%postun -p /sbin/ldconfig java + +%files +%defattr(-,root,root,-) +%doc LICENSE README +/%{_lib}/libdb-%{__soversion}.so +%{_libdir}/libdb-%{__soversion}.so + +%files cxx +%defattr(-,root,root,-) +%{_libdir}/libdb_cxx-%{__soversion}.so + +%files utils +%defattr(-,root,root,-) +%{_bindir}/db*_archive +%{_bindir}/db*_checkpoint +%{_bindir}/db*_deadlock +%{_bindir}/db*_dump* +%{_bindir}/db*_hotbackup +%{_bindir}/db*_load +%{_bindir}/db*_printlog +%{_bindir}/db*_recover +%{_bindir}/db*_stat +%{_bindir}/db*_upgrade +%{_bindir}/db*_verify + +%files devel +%defattr(-,root,root,-) +%doc docs/* +%doc examples_c examples_cxx +%{_libdir}/libdb.so +%{_libdir}/libdb_cxx.so +%dir %{_includedir}/%{name} +%{_includedir}/%{name}/db.h +%{_includedir}/%{name}/db_185.h +%{_includedir}/%{name}/db_cxx.h +%{_includedir}/db.h +%{_includedir}/db_185.h +%{_includedir}/db_cxx.h + +%files devel-static +%defattr(-,root,root,-) +%{_libdir}/libdb-%{__soversion}.a +%{_libdir}/libdb_cxx-%{__soversion}.a +%{_libdir}/libdb_tcl-%{__soversion}.a +%{_libdir}/libdb_sql-%{__soversion}.a +%ifarch %{java_arches} +%{_libdir}/libdb_java-%{__soversion}.a +%endif + +%files tcl +%defattr(-,root,root,-) +%{_libdir}/libdb_tcl-%{__soversion}.so + +%files sql +%defattr(-,root,root,-) +%{_bindir}/dbsql +%{_libdir}/libdb_sql.so +%{_libdir}/libdb_sql-%{__soversion}.so +%{_includedir}/%{name}/dbsql.h + +%ifarch %{java_arches} +%files java +%defattr(-,root,root,-) +%doc docs/java +%doc examples_java +%{_libdir}/libdb_java*.so +%{_datadir}/java/*.jar +%endif + +%changelog +* Wed Apr 21 2010 Jindrich Novy 5.0.21-1 +- initial build + +* Thu Apr 15 2010 Jindrich Novy 5.0.21-0.2 +- remove C# documentation +- disable/remove rpath +- fix description +- tighten dependencies +- run ldconfig for cxx and sql subpackages + +* Fri Apr 9 2010 Jindrich Novy 5.0.21-0.1 +- enable sql +- package 5.0.21 diff --git a/patch.1.1 b/patch.1.1 new file mode 100644 index 0000000..fe3177d --- /dev/null +++ b/patch.1.1 @@ -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: diff --git a/patch.1.2 b/patch.1.2 new file mode 100644 index 0000000..a343909 --- /dev/null +++ b/patch.1.2 @@ -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; + } diff --git a/patch.1.3 b/patch.1.3 new file mode 100644 index 0000000..5ca03df --- /dev/null +++ b/patch.1.3 @@ -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; diff --git a/patch.1.4 b/patch.1.4 new file mode 100644 index 0000000..cec5fbc --- /dev/null +++ b/patch.1.4 @@ -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)); diff --git a/sources b/sources index e69de29..a8156a4 100644 --- a/sources +++ b/sources @@ -0,0 +1,2 @@ +9a749fd2e98fe15840493ddc34cc66d8 db-5.0.21.tar.gz +42cc6c1e1e25818bd3e3f91328edb0f1 db.1.85.tar.gz