Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > 1da3642212ad045d197d3f8b1fd44284 > files > 6

db43-4.3.29-4mdv2008.0.src.rpm

# compatibility with legacy rpm
%{!?_lib:%define _lib	lib}

%define	__soversion	4.3
%define	_libdb_a	libdb-%{__soversion}.a
%define	_libcxx_a	libdb_cxx-%{__soversion}.a

%define libname_orig	%mklibname db
%define libname		%{libname_orig}%{__soversion}
%define libnamedev	%{libname}-devel
%define libnamestatic	%{libname}-static-devel

%define libdbcxx	%{libname_orig}cxx%{__soversion}
%define libdbtcl	%{libname_orig}tcl%{__soversion}
%define libdbjava	%{libname_orig}java%{__soversion}

%define libdbnss	%{libname_orig}nss%{__soversion}
%define libdbnssdev	%{libdbnss}-devel

# Define Mandrake Linux version we are building for
%{?!mdkversion:%define mdkversion	%(perl -pe '/(\\d+)\\.(\\d)\\.?(\\d)?/; $_="$1$2".($3||0)' /etc/mandrake-release)}

# Define to build Java bindings (does not work)
%define build_java	0

# Allow --with[out] JAVA rpm command line build
%{?_with_JAVA: %{expand: %%define build_java 1}}
%{?_without_JAVA: %{expand: %%define build_java 0}}

# Define to build a stripped down version to use for nss libraries
%define build_nss	0

# Allow --with[out] nss rpm command line build
%{?_with_nss: %{expand: %%define build_nss 1}}
%{?_without_nss: %{expand: %%define build_nss 0}}

# Define to rename utilities and allow parallel installation
%define build_parallel	1

# Allow --with[out] parallel rpm command line build
%{?_with_parallel: %{expand: %%define build_parallel 1}}
%{?_without_parallel: %{expand: %%define build_parallel 0}}

# Don't build Java bindings for any MDK release < 9.0
%if %{mdkversion} < 900
%define build_java	0
%endif

Summary: The Berkeley DB database library for C
Name: db43
Version: 4.3.29
Release: %mkrel 4
Source: ftp://sleepycat1.inetu.net/releases/db-%{version}.tar.bz2
URL: http://www.sleepycat.com
License: BSD
Group: System/Libraries
BuildRequires: tcl, db1-devel,ed
%if %{mdkversion} >= 900
BuildRequires: glibc-static-devel	
%endif
%if %{build_java}
BuildRequires: gcc-java >= 3.1.1-0.8mdk
%endif

# NPTL pthreads mutex are evil
Patch2: db-4.3.21-disable-pthreadsmutexes.patch
# Add fast AMD64 mutexes
Patch3: db-4.1.25-amd64-mutexes.patch
# statically link db1 library
Patch4: db-4.2.52-db185.patch
# Fix broken built-in libtool 1.5
Patch5: db-4.3.21-libtool-fixes.patch

BuildRoot: %{_tmppath}/%{name}-root

%description
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides
embedded database support for both traditional and client/server applications.
Berkeley DB is used by many applications, including Python and Perl, so this
should be installed on all systems.

%package -n %{libname}
Summary: The Berkeley DB database library for C
Group: System/Libraries

%description -n %{libname}
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides
embedded database support for both traditional and client/server applications.
Berkeley DB is used by many applications, including Python and Perl, so this
should be installed on all systems.

%package -n %{libdbcxx}
Summary: The Berkeley DB database library for C++
Group: System/Libraries
#Provides: libdbcxx = %{version}-%{release}

%description -n %{libdbcxx}
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides
embedded database support for both traditional and client/server applications.
Berkeley DB is used by many applications, including Python and Perl, so this
should be installed on all systems.

This package contains the files needed to build C++ programs which use
Berkeley DB.

%package -n %{libdbjava}
Summary: The Berkeley DB database library for C++
Group: System/Libraries
#Provides: libdbjava = %{version}-%{release}

%description -n %{libdbjava}
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides
embedded database support for both traditional and client/server applications.
Berkeley DB is used by many applications, including Python and Perl, so this
should be installed on all systems.

This package contains the files needed to build Java programs which use
Berkeley DB.

%package -n %{libdbtcl}
Summary: The Berkeley DB database library for TCL
Group: System/Libraries
#Provides: libdbtcl = %{version}-%{release}

%description -n %{libdbtcl}
The Berkeley Database (Berkeley DB) is a programmatic toolkit that provides
embedded database support for both traditional and client/server applications.
Berkeley DB is used by many applications, including Python and Perl, so this
should be installed on all systems.

This package contains the header files, libraries, and documentation for
building tcl programs which use Berkeley DB.

%package utils
Summary: Command line tools for managing Berkeley DB databases
Group: Databases
%if !%{build_parallel}
Conflicts: db3-utils
#Provides: db4-utils
#Obsoletes: db4-utils
%endif

%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.

This package contains command line tools for managing Berkeley DB databases.

%package -n %{libnamedev}
Summary: Development libraries/header files for the Berkeley DB library
Group: Development/Databases
Requires: %{libname} = %{version}-%{release}
Requires: %{libdbtcl} = %{version}-%{release}
Requires: %{libdbcxx} = %{version}-%{release}
#Provides: db-devel = %{version}-%{release}
#Provides: db4-devel = %{version}-%{release}
Provides: db%{__soversion}-devel = %{version}-%{release}
#Provides: libdb-devel = %{version}-%{release}
Provides: libdb%{__soversion}-devel = %{version}-%{release}
Conflicts: %{libname_orig}3.3-devel, %{libname_orig}4.0-devel
Conflicts: %{libname_orig}4.1-devel %{libname_orig}4.2-devel

%description -n %{libnamedev}
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.

This package contains the header files, libraries, and documentation for
building programs which use Berkeley DB.

%package -n %{libnamestatic}
Summary: Development static libraries files for the Berkeley DB library
Group: Development/Databases
Requires: db%{__soversion}-devel = %{version}-%{release}
#Provides: db-static-devel = %{version}-%{release}
#Provides: db4-static-devel = %{version}-%{release}
Provides: db%{__soversion}-static-devel = %{version}-%{release}
#Provides: libdb-static-devel = %{version}-%{release}
Provides: libdb%{__soversion}-static-devel = %{version}-%{release}
Conflicts: %{libname_orig}3.3-static-devel, %{libname_orig}4.0-static-devel
Conflicts: %{libname_orig}4.1-static-devel %{libname_orig}4.2-static-devel

%description -n %{libnamestatic}
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.

This package contains the static libraries for building programs which
use Berkeley DB.

%if %{build_nss}
%package -n %{libdbnss}
Summary: The Berkeley DB database library for NSS modules
Group: System/Libraries

%description -n %{libdbnss}
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.

This package contains the shared library required by some nss modules
that use Berkeley DB.

%package -n %{libdbnssdev}
Summary: Development libraries/header files for building nss modules with Berkeley DB
Group: Development/Databases
Requires: %{libdbnss} = %{version}-%{release}
#Provides: libdbnss-devel = %{version}-%{release}
#Provides: db_nss-devel = %{version}-%{release}
#Provides: libdb_nss-devel = %{version}-%{release}

%description -n %{libdbnssdev}
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.

This package contains the header files and libraries for building nss
modules which use Berkeley DB.
%endif

%prep
%setup -q -n db-%{version}
%patch2 -p1 -b .pthreadsmutexes
%patch3 -p1 -b .amd64-mutexes
%patch4 -p1 -b .db185
%patch5 -p1 -b .libtool-fixes

# Remove tags files which we don't need.
find . -name tags | xargs rm -f
# 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,="../java/,="../../%{name}-devel-%{version}/java/,g' \
            -e 's,="java/,="../%{name}-devel-%{version}/java/,g' \
            -e 's,="../api_tcl/,="../../%{name}-devel-%{version}/api_tcl/,g' \
            -e 's,="api_tcl/,="../%{name}-devel-%{version}/api_tcl/,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,="../sleepycat/,="../../%{name}-devel-%{version}/sleepycat/,g' \
            -e 's,="sleepycat/,="../%{name}-devel-%{version}/sleepycat/,g' \
            -e 's,="../images/,="../../%{name}-%{version}/images/,g' \
            -e 's,="images/,="../%{name}-%{version}/images/,g' \
            -e 's,="../utility/,="../../%{name}-%{version}/utility/,g' \
            -e 's,="utility/,="../%{name}-%{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	# XXX painful to watch
# Fix all of the HTML files.
fixup_href `find . -name "*.html"`
set -x	# XXX painful to watch

chmod -R u+w dist
(cd dist && ./s_config)

%build
CFLAGS="$RPM_OPT_FLAGS"
%ifarch ppc
CFLAGS="$CFLAGS -D_GNU_SOURCE -D_REENTRANT"
%endif
export CFLAGS

%if %{build_java}
# Use javac trampoline from gcj
mkdir -p build_unix/gcj
pushd build_unix/gcj;
cat > jar << EOF
#!/bin/sh
exec /usr/bin/gcj-jar-`gcj -dumpversion` "\$@"
EOF
chmod +x jar
cat > javac << EOF
#!/bin/sh
exec /usr/bin/gcj-javac-`gcj -dumpversion` "\$@"
EOF
chmod +x javac
cat > java << EOF
#!/bin/sh
echo 'fake version "1.3.1"'
EOF
chmod +x java
export PATH=$PWD:$PATH
# Kludge lookup of <jni.h> and make configure grab the right one from gcj
ln -s `gcj -print-file-name=include`/libgcj include
popd
%endif

%if %{build_java}
ENABLE_JAVA="--enable-java"
%endif

%if %{mdkversion} < 1010
%define __libtoolize /bin/true
%endif
pushd build_unix
CONFIGURE_TOP="../dist" %configure2_5x \
	--enable-compat185 --enable-dump185 \
	--enable-shared --enable-static --enable-rpc \
	--enable-tcl --with-tcl=%{_libdir} \
	--enable-cxx $ENABLE_JAVA --enable-test  \
	--disable-pthreadsmutexes \
	# --enable-diagnostic \
	# --enable-debug --enable-debug_rop --enable-debug_wop \

%make
popd
%if %{build_nss}
mkdir build_nss
pushd build_nss
CONFIGURE_TOP="../dist" %configure2_5x \
	--enable-shared --disable-static \
	--disable-tcl --disable-cxx --disable-java \
	--disable-pthreadsmutexes \
	--with-uniquename \
	--enable-compat185 \
	--disable-cryptography --disable-queue \
        --disable-replication --disable-verify \
	#--disable-hash  \
	#--enable-smallbuild \
	# END

%make libdb_base=libdb_nss libso_target=libdb_nss-%{__soversion}.la libdir=/%{_lib}
popd
%endif

%install
rm -rf %{buildroot}
make -C build_unix install_setup install_include install_lib install_utilities \
	DESTDIR=%{buildroot} includedir=%{_includedir}/db4 \
	emode=755

%if %{build_nss}
make -C build_nss install_include install_lib libdb_base=libdb_nss \
	DESTDIR=%{buildroot} includedir=%{_includedir}/db_nss \
	LIB_INSTALL_FILE_LIST=""

mkdir -p %{buildroot}/%{_lib}
mv %{buildroot}/%{_libdir}/libdb_nss-%{__soversion}.so %{buildroot}/%{_lib}
ln -s  /%{_lib}/libdb_nss-%{__soversion}.so %{buildroot}%{_libdir}
%endif

ln -sf db4/db.h %{buildroot}%{_includedir}/db.h

# XXX This is needed for parallel install with db4.2
%if %{build_parallel}
for F in %{buildroot}%{_bindir}/*db_* ; do
   mv $F `echo $F | sed -e 's,db_,%{name}_,'`
done
%endif

# Move db.jar file to the correct place, and version it
%if %{build_java}
mkdir -p %{buildroot}%{_datadir}/java
mv %{buildroot}%{_libdir}/db.jar %{buildroot}%{_datadir}/java/db-%{__soversion}.jar
%endif

#symlink the short libdb???.a name
ln -sf %{_libdb_a} %{buildroot}%{_libdir}/libdb.a
ln -sf %{_libcxx_a} %{buildroot}%{_libdir}/libdb_cxx.a
ln -sf libdb_tcl-%{__soversion}.a %{buildroot}%{_libdir}/libdb_tcl.a
ln -sf %{_libdb_a} %{buildroot}%{_libdir}/libdb-4.a
ln -sf %{_libcxx_a} %{buildroot}%{_libdir}/libdb_cxx-4.a
ln -sf libdb_tcl-%{__soversion}.a %{buildroot}%{_libdir}/libdb_tcl-4.a
%if %{build_java}
ln -sf libdb_java-%{__soversion}.a %{buildroot}%{_libdir}/libdb_java.a
ln -sf libdb_java-%{__soversion}.a %{buildroot}%{_libdir}/libdb_java-4.a
%endif

%clean
rm -rf %{buildroot}

%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig

%post -n %{libdbcxx} -p /sbin/ldconfig
%postun -n %{libdbcxx} -p /sbin/ldconfig

%if %{build_java}
%post -n %{libdbjava} -p /sbin/ldconfig
%postun -n %{libdbjava} -p /sbin/ldconfig
%endif
 
%post -n %{libdbtcl} -p /sbin/ldconfig
%postun -n %{libdbtcl} -p /sbin/ldconfig

%if %{build_nss}
%post -n %{libdbnss} -p /sbin/ldconfig
%postun -n %{libdbnss} -p /sbin/ldconfig
%endif

%files -n %{libname}
%defattr(644,root,root,755)
%doc LICENSE README
%attr(755,root,root) %{_libdir}/libdb-%{__soversion}.so

%files -n %{libdbcxx}
%defattr(755,root,root) 
%{_libdir}/libdb_cxx-%{__soversion}.so

%if %{build_java}
%files -n %{libdbjava}
%defattr(644,root,root,755) 
%doc docs/java
%attr(755,root,root) %{_libdir}/libdb_java-%{__soversion}.so
%attr(755,root,root) %{_libdir}/libdb_java-%{__soversion}_g.so
%{_datadir}/java/db-%{__soversion}.jar
%endif

%files -n %{libdbtcl}
%defattr(755,root,root)
%{_libdir}/libdb_tcl-%{__soversion}.so

%files utils
%defattr(644,root,root,755)
%doc docs/utility/*
%defattr(755,root,root)
%{_bindir}/berkeley_db*_svc
%{_bindir}/db*_archive
%{_bindir}/db*_checkpoint
%{_bindir}/db*_deadlock
%{_bindir}/db*_dump
%{_bindir}/db*_dump185
%{_bindir}/db*_load
%{_bindir}/db*_printlog
%{_bindir}/db*_recover
%{_bindir}/db*_stat
%{_bindir}/db*_upgrade
%{_bindir}/db*_verify

%files -n %{libnamedev}
%defattr(644,root,root,755)
%doc docs/api_c docs/api_cxx docs/java docs/api_tcl docs/index.html
%doc docs/ref docs/sleepycat docs/images
%doc examples_c examples_cxx
%dir %{_includedir}/db4
%{_includedir}/db4/db.h
%{_includedir}/db4/db_185.h
%{_includedir}/db4/db_cxx.h
%{_includedir}/db.h
%{_libdir}/libdb.so
%{_libdir}/libdb-4.so
%{_libdir}/libdb-%{__soversion}.la
%{_libdir}/libdb_cxx.so
%{_libdir}/libdb_cxx-4.so
%{_libdir}/libdb_cxx-%{__soversion}.la
%{_libdir}/libdb_tcl.so
%{_libdir}/libdb_tcl-4.so
%{_libdir}/libdb_tcl-%{__soversion}.la
%if %build_java
%{_libdir}/libdb_java.so
%{_libdir}/libdb_java-4.so
%{_libdir}/libdb_java-%{__soversion}.la
%endif

%files -n %{libnamestatic}
%defattr(644,root,root,755)
%{_libdir}/*.a

%if %{build_nss}
%files -n %{libdbnss}
%defattr(755,root,root) 
/%{_lib}/libdb_nss-%{__soversion}.so

%files -n %{libdbnssdev}
%defattr(644,root,root,755)
%dir %{_includedir}/db_nss
%{_includedir}/db_nss/db.h
%{_includedir}/db_nss/db_185.h
%exclude %{_includedir}/db_nss/db_cxx.h
%{_libdir}/libdb_nss.so
%{_libdir}/libdb_nss-4.so
%{_libdir}/libdb_nss-%{__soversion}.la
%{_libdir}/libdb_nss-%{__soversion}.so
%endif



%changelog
* Thu Aug 23 2007 Thierry Vignaud <tvignaud@mandriva.com> 4.3.29-4mdv2008.0
+ Revision: 70178
- kill ldconfig require as requested by pixel
- kill file require

* Mon Jul 30 2007 David Walluck <walluck@mandriva.org> 4.3.29-3mdv2008.0
+ Revision: 56751
- rebuild to fix %%mkrel


* Thu May 11 2006 Thierry Vignaud <tvignaud@mandriva.com> 4.3.29-2mdk
- rebuild for outdated packages on x86_64

* Wed Mar 08 2006 Buchan Milne <bgmilne@mandriva.org> 4.3.29-1mdk
- New release 4.3.29
- use %%mkrel
- rpmbuildupdate-able
- misc fixes (PreReq vs Requires(pre), summaries with dots, prefix tags)

* Mon Sep 05 2005 Oden Eriksson <oeriksson@mandriva.com> 4.3.21-2mdk
- do not provide just yet..., please...

* Sat Nov 20 2004 Luca Berra <bluca@vodka.it> 4.3.21-1mdk 
- updated to db-4.3
- create a build option for parallel install of db4X-utils
- rediffed p1, p5
- disabled nss for now
- as always java doesn't build and has been disabled

* Thu Sep 16 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 4.2.52-6mdk
- fix merged x86_64 mutexes
- fix embedded libtool 1.5 bugs

* Mon Aug 16 2004 Luca Berra <bluca@vodka.it> 4.2.52-5mdk 
- fix uniquename for libdb_nss

* Fri Aug 13 2004 Luca Berra <bluca@vodka.it> 4.2.52-4mdk 
- enable build of libdb_java, by tricking configure.

* Mon Aug 09 2004 Luca Berra <bluca@vodka.it> 4.2.52-3mdk 
- added a special version used to build nss modules
- removed more cruft from the specfile

* Sun Aug 08 2004 Christiaan Welvaart <cjw@daneel.dyndns.org> 4.2.52-2mdk
- add BuildRequires: ed

* Mon Jul 26 2004 Luca Berra <bluca@vodka.it> 4.2.52-1mdk 
- fixed a lot of cruft in the specfile
- correctly generate static libraries

* Tue Jun 08 2004 Luca Berra <bluca@vodka.it> 4.2.52-0.2mdk
- really disabled pthreads mutexes
- disable java for now (requires java 1.3)

* Sun Jun 06 2004 Luca Berra <bluca@vodka.it> 4.2.52-0.1mdk 
- first take at db-4.2 rpm

* Thu Jun 03 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 4.1.25-5mdk
- rebuilt against gcc3.4

* Fri Feb 27 2004 Olivier Thauvin <thauvin@aerov.jussieu.fr> 4.1.25-4mdk
- Own %%includedir/db4
- db4-utils conflicts db3-utils
- fix unpackaged files

* Fri Aug 22 2003 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 4.1.25-3mdk
- Add some provides & conflicts to ease installations

* Wed Jul 30 2003 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 4.1.25-2mdk
- Patch2: Add fast mutexes for AMD64
- %%configure2_5x, fix mklibnamification

* Thu Jun 26 2003 Stefan van der Eijk <stefan@eijk.nu> 4.1.25-1mdk
- Buchan's package
  * Sun May 18 2003 Buchan Milne <bgmilne@linux-mandrake.com> 4.1.25-1mdk
  - 4.1.25 (see if we can get openldap-2.1 to build with bdb support)
  - Remove db_recover patch(0), add official patch(1)
  - Maybe someone needs libdb_java-4.1.la, and if no-one does, at least
   use the macro so it doesn't have to be changed every time ...