-%define __soversion 3.1
-%define _libdb_a libdb-%{__soversion}.a
-
Summary: BSD database library for C
+Summary(pl): Biblioteka C do obs³ugi baz Berkeley DB
Name: db3
-Version: 3.1.14
-Release: 1
-Group: Libraries
+Version: 3.1.17
+Release: 10
License: GPL
-URL: http://www.sleepycat.com
-Source0: http://www.sleepycat.com/update/%{version}/db-%{version}.tar.gz
-#Patch0: http://www.sleepycat.com/update/%{version}/patch.3.0.55.1
-Patch0: db3-align.patch
-Patch1: db3-linux-threads.patch
-Patch2: db3-shmget.patch
-PreReq: /sbin/ldconfig
-
-# XXX written as a file prereq in order to build with glibc-2.1.3
-%ifos linux
-BuildPrereq: /usr/lib/libdb1.a
-%endif
-
+Group: Libraries
+Group(de): Libraries
+Group(es): Bibliotecas
+Group(fr): Librairies
+Group(pl): Biblioteki
+Group(pt_BR): Bibliotecas
+Group(ru): âÉÂÌÉÏÔÅËÉ
+Group(uk): â¦Â̦ÏÔÅËÉ
+Source0: http://www.berkeleydb.com/update/%{version}/db-%{version}.tar.gz
+Patch0: %{name}-static.patch
+Patch1: %{name}-linux.patch
+Patch2: %{name}-jbj.patch
+URL: http://www.berkeleydb.com/
+BuildRequires: db1-static
+BuildRequires: glibc-static
+BuildRequires: tcl-devel >= 8.3.2
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
client/server applications. Berkeley DB is used by many applications,
including Python and Perl, so this should be installed on all systems.
+%description -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 jest u¿ywana wielu aplikacjach, w tym w
+Pythonie i Perlu.
+
%package utils
-Summary: Command line tools for managing Berkeley DB databases.
+Summary: Command line tools for managing Berkeley DB databases
+Summary(pl): Narzêdzia do obs³ugi baz Berkeley DB z linii poleceñ
Group: Applications/Databases
+Group(de): Applikationen/Dateibanken
Group(pl): Aplikacje/Bazy danych
Requires: %{name} = %{version}
This package contains command line tools for managing Berkeley DB
databases.
+%description -l pl utils
+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
+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.
+
+Ten pakiet zawiera narzêdzia do obs³ugi baz Berkeley DB z linii
+poleceñ.
+
+%package tcl
+Summary: Berkeley database library for TCL
+Summary(pl): Biblioteka baz danych Berkeley dla TCL
+Group: Development/Languages/Tcl
+Group(de): Entwicklung/Sprachen/Tcl
+Group(pl): Programowanie/Jêzyki/Tcl
+Requires: %{name} = %{version}
+Requires: tcl
+
+%description tcl
+Berkeley database library for TCL.
+
+%description tcl -l pl
+Biblioteka baz danych Berkeley dla TCL.
+
%package devel
-Summary: Development libraries and header files for Berkeley database library
+Summary: Header files for Berkeley database library
+Summary(pl): Pliki nag³ówkowe do biblioteki Berkeley Database
Group: Development/Libraries
+Group(de): Entwicklung/Libraries
+Group(es): Desarrollo/Bibliotecas
Group(fr): Development/Librairies
Group(pl): Programowanie/Biblioteki
+Group(pt_BR): Desenvolvimento/Bibliotecas
+Group(ru): òÁÚÒÁÂÏÔËÁ/âÉÂÌÉÏÔÅËÉ
+Group(uk): òÏÚÒÏÂËÁ/â¦Â̦ÏÔÅËÉ
Requires: %{name} = %{version}
%description devel
This package contains the header files, libraries, and documentation
for building programs which use Berkeley DB.
+%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
+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.
+
+Ten pakiet zawiera pliki nag³ówkowe i dokumentacjê do budowania
+programów u¿ywaj±cych Berkeley DB.
+
%package static
Summary: Static libraries for Berkeley database library
+Summary(pl): Statyczne biblioteki Berkeley Database
Group: Development/Libraries
+Group(de): Entwicklung/Libraries
+Group(es): Desarrollo/Bibliotecas
Group(fr): Development/Librairies
Group(pl): Programowanie/Biblioteki
+Group(pt_BR): Desenvolvimento/Bibliotecas
+Group(ru): òÁÚÒÁÂÏÔËÁ/âÉÂÌÉÏÔÅËÉ
+Group(uk): òÏÚÒÏÂËÁ/â¦Â̦ÏÔÅËÉ
Requires: %{name}-devel = %{version}
%description static
transactions, locking, logging, shared memory caching and database
recovery. DB supports C, C++, Java and Perl APIs.
-This package contains the static libraries for building programs which use
-Berkeley DB.
+This package contains the static libraries for building programs which
+use Berkeley DB.
+
+%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
+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.
+
+Ten pakiet zawiera statyczne biblioteki do budowania programów
+u¿ywaj±cych Berkeley DB.
%prep
%setup -q -n db-%{version}
-#%patch0 -p0
-#%patch1 -p1
-# XXX not applied
-#%patch1 -p1
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
%build
+cp -a build_unix build_unix.static
+
+cd build_unix.static
+
+CFLAGS="%{rpmcflags} -fno-rtti -fno-implicit-templates" \
+CXXFLAGS="%{rpmcflags} -fno-rtti -fno-implicit-templates" \
+../dist/configure \
+ --prefix=%{_prefix} \
+ --enable-compat185 \
+ --enable-dump185 \
+ --disable-shared \
+ --enable-static \
+ --enable-rpc \
+ --enable-cxx
+
+%{__make} static db_dump185
+
+cd ../build_unix
+
+CFLAGS="%{rpmcflags} -fno-rtti -fno-implicit-templates" \
+CXXFLAGS="%{rpmcflags} -fno-rtti -fno-implicit-templates" \
+../dist/configure \
+ --prefix=%{_prefix} \
+ --enable-compat185 \
+ --enable-shared \
+ --disable-static \
+ --enable-rpc \
+ --enable-cxx \
+ --enable-tcl
+
+%{__make} TCFLAGS='-I$(builddir) -I%{_includedir}'
-cd build_unix
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_includedir},%{_libdir},%{_bindir},/lib}
-# XXX --enable-tcl can't add without picking up dependency on libtcl.so
-# XXX --enable-posixmutexes (missing pthread_{cond,mutex}attr_setpshared)
-# XXX --enable-cxx (barfs on clone proto in %{_includedir}/bits/sched.h)
-# XXX --enable-debug_{r,w}op should be disabled for production.
-CFLAGS="$RPM_OPT_FLAGS" ../dist/configure --prefix=%{_prefix} --enable-debug --enable-compat185 --enable-diagnostic --enable-dump185 --enable-shared --enable-static --enable-rpc --enable-tcl # --enable-test --enable-debug --enable-debug_rop --enable-debug_wop # --enable-posixmutexes
+cd build_unix.static
-%{__make} libdb=%{_libdb_a} %{_libdb_a}
+%{__make} prefix=$RPM_BUILD_ROOT%{_prefix} \
+ install_static \
+ install_static_cxx
-# Static link with old db-185 libraries.
-/bin/sh ./libtool --mode=compile cc -c -O2 -g -g -I%{_includedir}/db1 -I../dist/../include -D_REENTRANT ../dist/../db_dump185/db_dump185.c
-cc -s -static -o db_dump185 db_dump185.lo -L%{_libdir} -ldb1
+install db_dump185 $RPM_BUILD_ROOT%{_bindir}
-# Compile rest normally.
-%{__make} libdb=%{_libdb_a} TCFLAGS='-I$(builddir) -I%{_includedir}' LDFLAGS="-s"
+cd ../build_unix
-%install
-rm -rf $RPM_BUILD_ROOT
-install -d ${RPM_BUILD_ROOT}%{_includedir}
-install -d ${RPM_BUILD_ROOT}%{_libdir}
-
-cd build_unix
-
-# XXX install_tcl
-# XXX install_static_cxx
-# XXX install_dynamic_cxx
-# XXX install_java
-# XXX install_docs (handled by %docs)
-%{__make} libdb=%{_libdb_a} LDFLAGS="-s" prefix=${RPM_BUILD_ROOT}%{_prefix} install_include install_dynamic install_static install_tcl install_utilities
-
-# XXX annoying
-set -x
-( cd ${RPM_BUILD_ROOT}
-
-%ifos linux
- install -d ./lib
- mv -f .%{_libdir}/libdb[-.]*so* ./lib
- if [ "%{_libdir}" != "%{_libdir}" ]; then
- install -d .%{_libdir}
- mv -f .%{_libdir}/libdb* .%{_libdir}
- fi
-%endif
-
- mkdir -p .%{_includedir}/db3
- mv -f .%{_prefix}/include/*.h .%{_includedir}/db3
- ln -sf db3/db.h .%{_includedir}/db.h
-# for F in .%{_prefix}/bin/db_* ; do
-# mv $F `echo $F | sed -e 's,/db_,/db3_,'`
-# done
-)
-set +x
+%{__make} \
+ prefix=$RPM_BUILD_ROOT%{_prefix} \
+ includedir=$RPM_BUILD_ROOT%{_includedir} \
+ install_include \
+ install_dynamic \
+ install_dynamic_cxx \
+ install_tcl \
+ install_utilities
+
+mv -f $RPM_BUILD_ROOT%{_libdir}/libdb-*.so $RPM_BUILD_ROOT/lib
+ln -sf ../../lib/libdb-3.1.so $RPM_BUILD_ROOT%{_libdir}/libdb.so
+ln -sf ../../lib/libdb-3.1.so $RPM_BUILD_ROOT%{_libdir}/libdb3.so
+ln -sf ../../lib/libdb-3.1.so $RPM_BUILD_ROOT%{_libdir}/libdb-3.1.so
+ln -sf libdb-3.1.a $RPM_BUILD_ROOT%{_libdir}/libdb3.a
+ln -sf libdb-3.1.a $RPM_BUILD_ROOT%{_libdir}/libdb.a
+ln -sf libdb3.so $RPM_BUILD_ROOT%{_libdir}/libndbm.so
+ln -sf libdb3.a $RPM_BUILD_ROOT%{_libdir}/libndbm.a
+
+
+OLDPWD=$(pwd); cd $RPM_BUILD_ROOT%{_libdir}/
+for i in libdb*.la; do mv $i $i.old; done
+sed -e "s/old_library=''/old_library='libdb-3.1.a'/" libdb-3.1.la.old > libdb-3.1.la
+sed -e "s/old_library=''/old_library='libdb_cxx.a'/" libdb_cxx-3.1.la.old > libdb_cxx-3.1.la
+rm -f libdb*.la.old
+cd $OLDPWD
+
+for i in $RPM_BUILD_ROOT%{_bindir}/db_* ; do
+ mv -f $i `echo $i | sed -e 's,/db_,/db3_,'`
+done
+
+cd ../
+rm -rf examples_java
+cp -a java/src/com/sleepycat/examples examples_java
+
+gzip -9nf LICENSE README
%clean
rm -rf $RPM_BUILD_ROOT
-%post -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 docs/images
-%ifos linux
-/lib/libdb-%{__soversion}.so
-%else
-%{_libdir}/libdb-%{__soversion}.so
-%endif
+%doc LICENSE.gz README.gz
+%attr(755,root,root) /lib/libdb-*.so
%files utils
%defattr(644,root,root,755)
-%doc docs/utility
-%{_libdir}/libdb_tcl-%{__soversion}.so
+%doc docs/utility/*
%attr(755,root,root) %{_bindir}/berkeley_db_svc
%attr(755,root,root) %{_bindir}/db*_archive
%attr(755,root,root) %{_bindir}/db*_checkpoint
%attr(755,root,root) %{_bindir}/db*_upgrade
%attr(755,root,root) %{_bindir}/db*_verify
+%files tcl
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libdb_tcl-*.so
+
%files devel
%defattr(644,root,root,755)
-%doc docs/api_c docs/api_cxx docs/api_java docs/api_tcl docs/index.html
-%doc docs/ref docs/sleepycat
-%doc examples_c examples_cxx
-%{_libdir}/libdb-%{__soversion}.la
-%{_libdir}/libdb_tcl-%{__soversion}.la
-%{_libdir}/%{_libdb_a}
-%{_includedir}/db3/db.h
-%{_includedir}/db3/db_185.h
-%{_includedir}/db3/db_cxx.h
-%{_includedir}/db.h
-%ifos linux
-/lib/libdb.so
-%else
-%{_libdir}/libdb.so
-%endif
-%{_libdir}/libdb_tcl.so
+%doc docs/{api*,ref,index.html,sleepycat,images} examples*
+%attr(755,root,root) %{_libdir}/libdb*.la
+%attr(755,root,root) %{_libdir}/libdb.so
+%attr(755,root,root) %{_libdir}/libdb3.so
+%attr(755,root,root) %{_libdir}/libdb-3.1.so
+%attr(755,root,root) %{_libdir}/libndbm.so
+%attr(755,root,root) %{_libdir}/libdb_tcl.so
+%attr(755,root,root) %{_libdir}/libdb_cxx*.so
+%{_includedir}/*
%files static
%defattr(644,root,root,755)
-%{_libdir}/%{_libdb_a}
+%{_libdir}/lib*.a