%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 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 4.8.30-4mamba - java-bdb48: don't obsolete libdb-java, provided by libdb51-java * Thu Mar 31 2011 Silvan Calarco 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 4.8.30-2mamba - rename to db48 - add db48 libdb48-static docs sub packages * Mon Jan 17 2011 gil 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 4.8.26-1mamba - automatic update to 4.8.26 by autodist * Fri Sep 25 2009 Silvan Calarco 4.8.24-1mamba - update to 4.8.24 * Thu Jul 03 2008 gil 4.7.25-1mamba - update to version 4.7.25 - removed patches * Wed Jun 04 2008 Silvan Calarco 4.2.52-8mamba - specfile updated * Thu Jul 13 2006 Davide Madrisan 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 4.2.52-6qilnx - add OpenOffice patch * Mon Oct 24 2005 Silvan Calarco 4.2.52-5qilnx - do not link against libpthread * Mon Oct 24 2005 Silvan Calarco 4.2.52-4qilnx - rebuild with gcj * Wed Feb 02 2005 Silvan Calarco 4.2.52-3qilnx - rebuilt with java bindings * Tue Jul 27 2004 Silvan Calarco 4.2.25-8qilnx - new version build - source RPM renamed to db42 (should cohexist with libdb4) * Sun May 09 2004 Silvan Calarco 4.1.25-8qilnx - added libdb.so provides * Fri May 07 2004 Silvan Calarco 4.1.25-7qilnx - fixed symlinks for compatibility * Fri May 07 2004 Silvan Calarco 4.1.25-6qilnx - rebuild with --enable-compat185 * Tue Sep 15 2003 Silvan Calarco 4.1.25-5qilnx - Added symlink /usr/include/db.h so that db4 is system default version * Tue Sep 09 2003 Silvan Calarco 4.1.25-4qilnx - Moved includes to /usr/include/db4 for devel packages co-existence * Fri Jul 25 2003 Silvan Calarco 4.1.25-3qilnx - Removed compat185 (it looks broken, I'll try to use db2's compat185) * Thu Jul 24 2003 Silvan Calarco 4.1.25-2qilnx - Enabled compatibiliy with version 185 * Tue Apr 22 2003 Luca Tinelli 4.1.25-1qilnx - Creation of db4 package