From 6a2508d3668f32b695879594e3b1db8f2fdfe181 Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Sun, 11 Dec 2011 06:28:20 +0000 Subject: [PATCH] - updated URLs - added 4.4.20.3,4.4.20.4 patches - java enabled by default - updated for libtool 2.x Changed files: db4.4.spec -> 1.11 patch.4.4.20.3 -> 1.1 patch.4.4.20.4 -> 1.1 --- db4.4.spec | 52 +++++++++++++++++++++++++++++--------------------- patch.4.4.20.3 | 49 +++++++++++++++++++++++++++++++++++++++++++++++ patch.4.4.20.4 | 24 +++++++++++++++++++++++ 3 files changed, 103 insertions(+), 22 deletions(-) create mode 100644 patch.4.4.20.3 create mode 100644 patch.4.4.20.4 diff --git a/db4.4.spec b/db4.4.spec index 3080876..1d612fb 100644 --- a/db4.4.spec +++ b/db4.4.spec @@ -1,33 +1,33 @@ # # Conditional build: -%bcond_with java # build db-java -%bcond_without tcl # don't build Tcl bindings -%bcond_with pmutex # use POSIX mutexes (only process-private with linuxthreads) -%bcond_without nptl # don't use process-shared POSIX mutexes (NPTL provides full interface) +%bcond_without java # don't build Java library +%bcond_without tcl # don't build Tcl bindings +%bcond_with pmutex # use POSIX mutexes (only process-private with linuxthreads) +%bcond_without nptl # don't use process-shared POSIX mutexes (NPTL provides full interface) %bcond_without static_libs # don't build static libraries # +%define ver 4.4.20 +%define patchlevel 4 %{?with_nptl:%define with_pmutex 1} Summary: Berkeley DB database library for C Summary(pl.UTF-8): Biblioteka C do obsługi baz Berkeley DB Name: db4.4 -Version: 4.4.20 -Release: 2 +Version: %{ver}.%{patchlevel} +Release: 1 Epoch: 0 License: Sleepycat public license (GPL-like, see LICENSE) Group: Libraries -# alternative site (sometimes working): http://www.berkeleydb.com/ -#Source0Download: http://dev.sleepycat.com/downloads/releasehistorybdb.html -Source0: http://downloads.sleepycat.com/db-%{version}.tar.gz +#Source0Download: http://www.oracle.com/technetwork/database/berkeleydb/downloads/index-082944.html +Source0: http://download.oracle.com/berkeley-db/db-%{ver}.tar.gz # Source0-md5: d84dff288a19186b136b0daf7067ade3 -Patch0: http://www.sleepycat.com/update/4.4.20/patch.4.4.20.1 -Patch1: http://www.sleepycat.com/update/4.4.20/patch.4.4.20.2 -URL: http://www.sleepycat.com/ +%patchset_source -f http://download.oracle.com/berkeley-db/patches/db/%{ver}/patch.%{ver}.%g 1 %{patchlevel} +URL: http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html BuildRequires: autoconf BuildRequires: automake BuildRequires: ed %{?with_java:BuildRequires: jdk} BuildRequires: libstdc++-devel -BuildRequires: libtool +BuildRequires: libtool >= 2:2.2 BuildRequires: sed >= 4.0 %{?with_tcl:BuildRequires: tcl-devel >= 8.4.0} Provides: db = %{version}-%{release} @@ -238,19 +238,25 @@ Ten pakiet zawiera narzędzia do obsługi baz Berkeley DB z linii poleceń. %prep -%setup -q -n db-%{version} -%patch0 -p0 -%patch1 -p0 +%setup -q -n db-%{ver} +# official patches +%patchset_patch 1 %{patchlevel} -%if !%{with nptl} +%if %{without nptl} sed -i -e 's,AM_PTHREADS_SHARED("POSIX/.*,:,' dist/aclocal/mutex.ac %endif +sed -i -e '/AC_PROG_LIBTOOL/aLT_OUTPUT' dist/configure.ac + %build cd dist cp -f /usr/share/aclocal/libtool.m4 aclocal/libtool.ac +cp -f /usr/share/aclocal/ltoptions.m4 aclocal/ltoptions.ac +cp -f /usr/share/aclocal/ltsugar.m4 aclocal/ltsugar.ac +cp -f /usr/share/aclocal/ltversion.m4 aclocal/ltversion.ac +cp -f /usr/share/aclocal/lt~obsolete.m4 aclocal/lt~obsolete.ac cp -f /usr/share/automake/config.sub . -cp -f /usr/share/libtool/ltmain.sh . +cp -f /usr/share/libtool/config/ltmain.sh . sh s_config cd .. @@ -310,14 +316,14 @@ install -d $RPM_BUILD_ROOT%{_javadir} %if %{with static_libs} %{__make} -C build_unix.static library_install \ - docdir=%{_docdir}/db-%{version}-docs \ - DESTDIR=$RPM_BUILD_ROOT + DESTDIR=$RPM_BUILD_ROOT \ + docdir=%{_docdir}/db-%{version}-docs %endif %{__make} -C build_unix library_install \ - docdir=%{_docdir}/db-%{version}-docs \ DESTDIR=$RPM_BUILD_ROOT \ - LIB_INSTALL_FILE_LIST="" + LIB_INSTALL_FILE_LIST="" \ + docdir=%{_docdir}/db-%{version}-docs mv $RPM_BUILD_ROOT%{_libdir}/libdb-4.4.so $RPM_BUILD_ROOT/%{_lib} @@ -362,6 +368,8 @@ cp -rf examples_cxx/* $RPM_BUILD_ROOT%{_examplesdir}/db-cxx-%{version} %if %{with java} install -d $RPM_BUILD_ROOT%{_examplesdir}/db-java-%{version} cp -rf examples_java/* $RPM_BUILD_ROOT%{_examplesdir}/db-java-%{version} +%else +%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/db-%{version}-docs/java %endif %clean diff --git a/patch.4.4.20.3 b/patch.4.4.20.3 new file mode 100644 index 0000000..fbc75b8 --- /dev/null +++ b/patch.4.4.20.3 @@ -0,0 +1,49 @@ +*** db/db_cam.c.orig 2006-01-11 03:19:21.000000000 +1100 +--- db/db_cam.c 2006-03-01 13:59:01.000000000 +1100 +*************** +*** 579,589 **** + flags == DB_NEXT || flags == DB_NEXT_DUP || flags == DB_PREV)) { + if (tmp_rmw && (ret = dbc_arg->c_am_writelock(dbc_arg)) != 0) + return (ret); +! if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0) + return (ret); + +! switch (ret = +! opd->c_am_get(opd, key, data, flags, NULL)) { + case 0: + goto done; + case DB_NOTFOUND: +--- 579,590 ---- + flags == DB_NEXT || flags == DB_NEXT_DUP || flags == DB_PREV)) { + if (tmp_rmw && (ret = dbc_arg->c_am_writelock(dbc_arg)) != 0) + return (ret); +! if (F_ISSET(dbc_arg, DBC_TRANSIENT)) +! opd = cp->opd; +! else if ((ret = __db_c_idup(cp->opd, &opd, DB_POSITION)) != 0) + return (ret); + +! switch (ret = opd->c_am_get(opd, key, data, flags, NULL)) { + case 0: + goto done; + case DB_NOTFOUND: +*************** +*** 596,607 **** +--- 597,614 ---- + if ((ret = __db_c_close(opd)) != 0) + goto err; + opd = NULL; ++ if (F_ISSET(dbc_arg, DBC_TRANSIENT)) ++ cp->opd = NULL; + break; + } + goto err; + default: + goto err; + } ++ } else if (cp->opd != NULL && F_ISSET(dbc_arg, DBC_TRANSIENT)) { ++ if ((ret = __db_c_close(cp->opd)) != 0) ++ goto err; ++ cp->opd = NULL; + } + + /* diff --git a/patch.4.4.20.4 b/patch.4.4.20.4 new file mode 100644 index 0000000..9a19090 --- /dev/null +++ b/patch.4.4.20.4 @@ -0,0 +1,24 @@ +*** mp/mp_fget.c.orig 2005-10-12 10:53:36.000000000 -0700 +--- mp/mp_fget.c 2006-05-30 20:48:10.000000000 -0700 +*************** +*** 587,594 **** + */ + if (state != SECOND_MISS && bhp->ref == 1) { + bhp->priority = UINT32_MAX; +! SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh); +! SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq); + hp->hash_priority = + SH_TAILQ_FIRSTP(&hp->hash_bucket, __bh)->priority; + } +--- 587,597 ---- + */ + if (state != SECOND_MISS && bhp->ref == 1) { + bhp->priority = UINT32_MAX; +! if (SH_TAILQ_FIRST(&hp->hash_bucket, __bh) != +! SH_TAILQ_LAST(&hp->hash_bucket, hq, __bh)) { +! SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh); +! SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq); +! } + hp->hash_priority = + SH_TAILQ_FIRSTP(&hp->hash_bucket, __bh)->priority; + } -- 2.43.0