#
# Conditional build:
%bcond_with java # build db-java (required for openoffice)
-%bcond_without tcl # don't build tcl bindings
-%bcond_with nptl # enable posix mutexes
+%bcond_without tcl # don't build Tcl bindings
+%bcond_with pmutex # use POSIX mutexes (only process-private with linuxthreads)
+%bcond_with nptl # use process-shared POSIX mutexes (NPTL provides full interface)
#
+%{?with_nptl:%define with_pmutex 1}
Summary: Berkeley DB database library for C
Summary(pl): Biblioteka C do obs³ugi baz Berkeley DB
Name: db
Version: 4.2.52
-Release: 3
+Release: 11
License: Sleepycat public license (GPL-like, see LICENSE)
Group: Libraries
# alternative site (sometimes working): http://www.berkeleydb.com/
Source0: http://www.sleepycat.com/update/snapshot/%{name}-%{version}.tar.gz
# Source0-md5: cbc77517c9278cdb47613ce8cb55779f
Patch0: %{name}-so-suffix.patch
+Patch1: patch.4.2.52.1
+Patch2: patch.4.2.52.2
+Patch3: patch.4.2.52.3
+Patch4: patch.4.2.52.4
+Patch5: %{name}-amd64-fastmutex.patch
URL: http://www.sleepycat.com/
BuildRequires: autoconf
BuildRequires: automake
%{?with_java:BuildRequires: jdk}
BuildRequires: libtool
BuildRequires: libstdc++-devel
+BuildRequires: rpmbuild(macros) >= 1.164
BuildRequires: sed >= 4.0
%{?with_tcl:BuildRequires: tcl-devel >= 8.4.0}
Obsoletes: db4
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _javalibdir /usr/share/java
-
%description
The Berkeley Database (Berkeley DB) is a programmatic toolkit that
provides embedded database support for both traditional and
%description devel -l pl
Berkeley Database (Berkeley DB) to zestaw narzêdzi programistycznych
zapewniaj±cych obs³ugê baz danych w aplikacjach tradycyjnych jak i
-klient-serwer. Berkeley DB obs³ugje dostêp do bazy przez B-drzewa i
+klient-serwer. Berkeley DB obs³uguje dostêp do bazy przez B-drzewa i
funkcje mieszaj±ce ze sta³± lub zmienn± wielko¶ci± rekordu,
transakcje, kroniki, pamiêæ dzielon± i odtwarzanie baz. Ma wsparcie
dla C, C++, Javy i Perla.
%description static -l pl
Berkeley Database (Berkeley DB) to zestaw narzêdzi programistycznych
zapewniaj±cych obs³ugê baz danych w aplikacjach tradycyjnych jak i
-klient-serwer. Berkeley DB obs³ugje dostêp do bazy przez B-drzewa i
+klient-serwer. Berkeley DB obs³uguje dostêp do bazy przez B-drzewa i
funkcje mieszaj±ce ze sta³± lub zmienn± wielko¶ci± rekordu,
transakcje, kroniki, pamiêæ dzielon± i odtwarzanie baz. Ma wsparcie
dla C, C++, Javy i Perla.
Summary: Berkeley database library for Java
Summary(pl): Biblioteka baz danych Berkeley dla Javy
Group: Libraries
+Requires: jre
%description java
Berkeley database library for Java.
Biblioteka baz danych Berkeley dla Javy.
%package java-devel
-Summary: Development files for db-java library
-Summary(pl): Pliki programistyczne biblioteki db-java
-Group: Development/Languages/Java
-Requires: %{name}-java = %{epoch}:%{version}-%{release}
-Conflicts: db-devel < 4.1.25-3
+Summary: Development files for db-java library
+Summary(pl): Pliki programistyczne biblioteki db-java
+Group: Development/Languages/Java
+Requires: %{name}-java = %{epoch}:%{version}-%{release}
+Conflicts: db-devel < 4.1.25-3
%description java-devel
Development files for db-java library.
Pliki programistyczne biblioteki db-java.
%package tcl
-Summary: Berkeley database library for TCL
-Summary(pl): Biblioteka baz danych Berkeley dla TCL
+Summary: Berkeley database library for Tcl
+Summary(pl): Biblioteka baz danych Berkeley dla Tcl
Group: Development/Languages/Tcl
Requires: tcl
Obsoletes: db4-tcl
%description tcl
-Berkeley database library for TCL.
+Berkeley database library for Tcl.
%description tcl -l pl
-Biblioteka baz danych Berkeley dla TCL.
+Biblioteka baz danych Berkeley dla Tcl.
%package tcl-devel
Summary: Development files for db-tcl library
%description utils -l pl
Berkeley Database (Berkeley DB) to zestaw narzêdzi programistycznych
zapewniaj±cych obs³ugê baz danych w aplikacjach tradycyjnych jak i
-klient-serwer. Berkeley DB obs³ugje dostêp do bazy przez B-drzewa i
+klient-serwer. Berkeley DB obs³uguje dostêp do bazy przez B-drzewa i
funkcje mieszaj±ce ze sta³± lub zmienn± wielko¶ci± rekordu,
transakcje, kroniki, pamiêæ dzielon± i odtwarzanie baz. Ma wsparcie
dla C, C++, Javy i Perla.
%prep
%setup -q
%patch0 -p1
+%patch1 -p0
+%patch2 -p0
+%patch3 -p0
+%patch4 -p0
+%patch5 -p1
+
+%if %{without nptl}
+sed -i -e 's,AM_PTHREADS_SHARED("POSIX/.*,:,' dist/aclocal/mutex.ac
+%endif
%build
cd dist
-cp -f %{_datadir}/aclocal/libtool.m4 aclocal/libtool.ac
-cp -f %{_datadir}/automake/config.sub .
-cp -f %{_datadir}/libtool/ltmain.sh .
+cp -f /usr/share/aclocal/libtool.m4 aclocal/libtool.ac
+cp -f /usr/share/automake/config.sub .
+cp -f /usr/share/libtool/ltmain.sh .
sh s_config
cd ..
CXX="%{__cxx}"
CFLAGS="%{rpmcflags}"
CXXFLAGS="%{rpmcflags} -fno-implicit-templates"
-LDFLAGS="%{rpmldflags} %{?with_nptl:-lpthread}"
+LDFLAGS="%{rpmldflags}"
export CC CXX CFLAGS CXXFLAGS LDFLAGS
../dist/%configure \
--disable-shared \
--enable-static \
--enable-rpc \
- %{?with_nptl:--enable-posixmutexes} \
+ --%{?with_pmutex:en}%{!?with_pmutex:dis}able-posixmutexes \
--enable-cxx
# (temporarily?) disabled because of compilation errors:
--libdir=%{_libdir} \
--enable-compat185 \
--enable-rpc \
- %{?with_nptl:--enable-posixmutexes} \
+ --%{?with_pmutex:en}%{!?with_pmutex:dis}able-posixmutexes \
--enable-cxx \
%{?with_tcl:--enable-tcl} \
%{?with_tcl:--with-tcl=/usr/lib} \
--enable-shared
%{__make} library_build \
- TCFLAGS='-I$(builddir) -I%{_includedir}'
+ TCFLAGS='-I$(builddir) -I%{_includedir}' \
+ LIBSO_LIBS="\$(LIBS)" \
+ LIBTSO_LIBS="\$(LIBS) -ltcl"
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_includedir},%{_libdir},%{_bindir},/lib}
+install -d $RPM_BUILD_ROOT{%{_includedir},%{_libdir},%{_bindir},/%{_lib}}
%if %{with java}
-install -d $RPM_BUILD_ROOT%{_javalibdir}
+install -d $RPM_BUILD_ROOT%{_javadir}
%endif
%{__make} -C build_unix.static library_install \
DESTDIR=$RPM_BUILD_ROOT \
LIB_INSTALL_FILE_LIST=""
+mv $RPM_BUILD_ROOT%{_libdir}/libdb-4.2.so $RPM_BUILD_ROOT/%{_lib}
+
cd $RPM_BUILD_ROOT%{_libdir}
-ln -sf libdb-4.2.so libdb.so
-ln -sf libdb-4.2.so libdb4.so
-ln -sf libdb-4.2.so libdb-4.so
-ln -sf libdb-4.2.so libndbm.so
+ln -sf /%{_lib}/libdb-4.2.so libdb.so
+ln -sf /%{_lib}/libdb-4.2.so libdb4.so
+ln -sf /%{_lib}/libdb-4.2.so libdb-4.so
+ln -sf /%{_lib}/libdb-4.2.so libndbm.so
ln -sf libdb-4.2.la libdb.la
ln -sf libdb-4.2.la libdb4.la
ln -sf libdb-4.2.la libndbm.la
%if %{with java}
ln -sf libdb_java-4.2.la libdb_java.la
-mv -f *.jar $RPM_BUILD_ROOT%{_javalibdir}
+mv -f $RPM_BUILD_ROOT%{_libdir}/*.jar $RPM_BUILD_ROOT%{_javadir}
%endif
%if %{with tcl}
ln -sf libdb_tcl-4.2.so libdb_tcl.so
%clean
rm -rf $RPM_BUILD_ROOT
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
%post tcl -p /sbin/ldconfig
%postun tcl -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
%doc LICENSE README
-%attr(755,root,root) %{_libdir}/libdb-4.2.so
+%attr(755,root,root) /%{_lib}/libdb-4.2.so
%dir %{_docdir}/%{name}-%{version}-docs
%{_docdir}/%{name}-%{version}-docs/sleepycat
%{_docdir}/%{name}-%{version}-docs/index.html
%if %{with java}
%files java
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libdb_java*.so
-%{_javalibdir}/db.jar
+%attr(755,root,root) %{_libdir}/libdb_java-4.2.so
+%{_javadir}/db.jar
%files java-devel
%defattr(644,root,root,755)