Sophie

Sophie

distrib > Mageia > 3 > i586 > media > core-release-src > by-pkgid > f2b7be296081f294e2fd2368ad526a24 > files > 6

db48-4.8.30-10.mga3.src.rpm

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

%define	__soversion	4.8
%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	db%{__soversion}

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

%ifnarch %mips %arm
%bcond_without java
%define gcj_support 1
%endif

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

# 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	0

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

# mutexes defaults to POSIX/pthreads/library
%define build_asmmutex 0

%{?_with_asmmutex: %global build_asmmutex 1}
%{?_without_asmmutex: %global build_asmmutex 0}

Summary:	The Berkeley DB database library for C
Name:		db48
Version:	4.8.30
Release:	%mkrel 10
Source0:	http://download.oracle.com/berkeley-db/db-%{version}.tar.gz
# statically link db1 library
Patch0:		db-4.2.52-db185.patch
Patch1:		db-4.8.30-fix-format-errors.patch
Patch2:		db-4.8.30-tcl-link.patch
# fedora patches
Patch101:	db-4.7.25-jni-include-dir.patch
URL:		http://www.oracle.com/technology/software/products/berkeley-db/
License:	BSD
Group:		System/Libraries
BuildRequires:	%{!?_without_tcl:tcl-devel} %{!?_without_db1:db1-devel} ed libtool
%if %with java
BuildRequires:  java-rpmbuild
BuildRequires:  sharutils
%if %{gcj_support}
BuildRequires: java-gcj-compat-devel
%endif
%endif
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-buildroot

%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
Requires(pre): filesystem >= 2.1.9-18

%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

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

%if %with java
%package -n %{libdbjava}
Summary: The Berkeley DB database library for C++
Group: System/Libraries

%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 %{libdbjava}-javadoc
Summary:        Javadoc for %{name}
Group:          Development/Java

%description -n %{libdbjava}-javadoc
Javadoc for %{name}.
%endif

%if %{!?_without_tcl:1}%{?_without_tcl:0}
%package -n %{libdbtcl}
Summary: The Berkeley DB database library for TCL
Group: System/Libraries

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

%package utils
Summary: Command line tools for managing Berkeley DB databases
Group: Databases
%if !%{build_parallel}
Conflicts: db3-utils
Conflicts: db46-utils
Conflicts: db47-utils
%endif
Provides: db4-utils = %{version}-%{release}

%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(pre): filesystem >= 2.1.9-18
Requires: %{libname} = %{version}-%{release}
%if %{!?_without_tcl:1}%{?_without_tcl:0}
Requires: %{libdbtcl} = %{version}-%{release}
%endif
Requires: %{libdbcxx} = %{version}-%{release}
%if %with java
Requires: %{libdbjava} = %{version}
%endif
Provides: db%{__soversion}-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
Conflicts: %{libname_orig}4.3-devel %{libname_orig}4.4-devel
Conflicts: %{libname_orig}4.5-devel
Conflicts: %{libname_orig}4.6-devel
Conflicts: %{libname_orig}4.7-devel
Provides: db-devel = %{version}-%{release}
Provides: db4-devel = %{version}-%{release}

%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%{__soversion}-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
Conflicts: %{libname_orig}4.3-static-devel %{libname_orig}4.4-static-devel
Conflicts: %{libname_orig}4.5-static-devel
Conflicts: %{libname_orig}4.6-static-devel
Conflicts: %{libname_orig}4.7static-devel
Provides: db-static-devel = %{version}-%{release}
Provides: db4-static-devel = %{version}-%{release}

%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: %{_lib}dbnss-devel = %{version}-%{release}
Provides: db_nss-devel = %{version}-%{release}
Provides: libdb_nss-devel = %{version}-%{release}
Conflicts: %{libname_orig}nss4.2-devel
Conflicts: %{libname_orig}nss4.6-devel
Conflicts: %{libname_orig}nss4.7devel

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

# fix strange attribs
find . -type f -perm 0444 -exec chmod 644 {} \;

%{__rm} -r docs/java
%patch0 -p1 -b .db185
%patch1 -p1 -b .format
%patch2 -p0 -b .tcl

# fedora patches
%patch101 -p1 -b .jni

pushd dist
libtoolize --copy --force
cat %{_datadir}/aclocal/libtool.m4 >> aclocal.m4
popd

# 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,="../api_tcl/,="../../%{name}-devel-%{version}/api_tcl/,g' \
            -e 's,="api_tcl/,="../%{name}-devel-%{version}/api_tcl/,g' \
            -e 's,="../java/,="../../%{name}-devel-%{version}/java/,g' \
            -e 's,="java/,="../%{name}-devel-%{version}/java/,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,="../images/,="../../%{name}-devel-%{version}/images/,g' \
            -e 's,="images/,="../%{name}-devel-%{version}/images/,g' \
            -e 's,="../utility/,="../../%{name}-utils-%{version}/utility/,g' \
            -e 's,="utility/,="../%{name}-utils-%{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

cd dist
./s_config

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

%if %with java
export CLASSPATH=
export JAVAC=%{javac}
export JAR=%{jar}
export JAVA=%{java}
export JAVACFLAGS="-nowarn"
JAVA_MAKE="JAR=%{jar} JAVAC=%{javac} JAVACFLAGS="-nowarn" JAVA=%{java}"
%endif

pushd build_unix
CONFIGURE_TOP="../dist" %configure2_5x \
	--enable-shared --enable-static \
%if %{?!_without_db1:1}%{?_without_db1:0}
	--enable-compat185 --enable-dump185 \
%endif
%if %{?!_without_tcl:1}%{?_without_tcl:0}
	--enable-tcl --with-tcl=%{_libdir} --enable-test \
%endif
	--enable-cxx \
%if %with java
        --enable-java \
%endif
%if %{build_asmmutex}
%ifarch %{ix86}
	--disable-posixmutexes --with-mutex=x86/gcc-assembly
%endif
%ifarch x86_64
	--disable-posixmutexes --with-mutex=x86_64/gcc-assembly
%endif
%ifarch alpha
	--disable-posixmutexes --with-mutex=ALPHA/gcc-assembly
%endif
%ifarch ia64
	--disable-posixmutexes --with-mutex=ia64/gcc-assembly
%endif
%ifarch ppc
	--disable-posixmutexes --with-mutex=PPC/gcc-assembly
%endif
%ifarch %{sunsparc}
	--disable-posixmutexes --with-mutex=Sparc/gcc-assembly
%endif
%ifarch %mips
	--disable-posixmutexes --with-mutex=MIPS/gcc-assembly
%endif
%ifarch %arm
	--disable-posixmutexes --with-mutex=ARM/gcc-assembly
%endif
%else
	--with-mutex=POSIX/pthreads/library
%endif

%make $JAVA_MAKE
%if %with java
pushd ../java
%{javadoc} -d ../docs/java `%{_bindir}/find . -name '*.java'`
popd
%endif
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 \
	--with-uniquename=_nss \
	--enable-compat185 \
	--disable-cryptography --disable-queue \
        --disable-replication --disable-verify \
%ifarch %{ix86}
	--disable-posixmutexes --with-mutex=x86/gcc-assembly
%endif
%ifarch x86_64
	--disable-posixmutexes --with-mutex=x86_64/gcc-assembly
%endif
%ifarch alpha
	--disable-posixmutexes --with-mutex=ALPHA/gcc-assembly
%endif
%ifarch ia64
	--disable-posixmutexes --with-mutex=ia64/gcc-assembly
%endif
%ifarch ppc
	--disable-posixmutexes --with-mutex=PPC/gcc-assembly
%endif
%ifarch %{sunsparc}
	--disable-posixmutexes --with-mutex=Sparc/gcc-assembly
%endif
%ifarch %mips
	--disable-posixmutexes --with-mutex=MIPS/gcc-assembly
%endif
%ifarch %arm
	--disable-posixmutexes --with-mutex=ARM/gcc-assembly
%endif

%make libdb_base=libdb_nss libso_target=libdb_nss-%{__soversion}.la libdir=%{_libdir}
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=""
%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 %with java
mkdir -p %{buildroot}%{_datadir}/java
mv %{buildroot}%{_libdir}/db.jar %{buildroot}%{_datadir}/java/db%{__soversion}-%{version}.jar
(cd %{buildroot}%{_datadir}/java && for jar in *-%{version}*; do %{__ln_s} ${jar} ${jar/-%{version}/}; done)

%{__mkdir_p} %{buildroot}%{_javadocdir}/db%{__soversion}-%{version}
%{__cp} -a docs/java/* %{buildroot}%{_javadocdir}/db%{__soversion}-%{version}
%{__ln_s} db%{__soversion}-%{version} %{buildroot}%{_javadocdir}/db%{__soversion}

%if %{gcj_support}
%{_bindir}/aot-compile-rpm
%endif
%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 %with 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
rm -fr %{buildroot}%{_includedir}/db_nss/db_cxx.h

%clean
rm -rf %{buildroot}

%if %with java
%post -n %{libdbjava}
%{update_gcjdb}

%postun -n %{libdbjava}
%{clean_gcjdb}
%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 %with java
%files -n %{libdbjava}
%defattr(644,root,root,755)
%doc docs/java
%doc examples_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
%{_datadir}/java/db%{__soversion}-%{version}.jar
%if %{gcj_support}
%dir %{_libdir}/gcj/%{name}
%{_libdir}/gcj/%{name}/*
%endif

%files -n %{libdbjava}-javadoc
%defattr(0644,root,root,0755)
%doc %{_javadocdir}/db%{__soversion}-%{version}
%doc %dir %{_javadocdir}/db%{__soversion}
%endif

%if %{?!_without_tcl:1}%{?_without_tcl:0} 
%files -n %{libdbtcl}
%defattr(755,root,root)
%{_libdir}/libdb_tcl-%{__soversion}.so
%endif

%files utils
%defattr(-,root,root)
%{_bindir}/db*_archive
%{_bindir}/db*_checkpoint
%{_bindir}/db*_deadlock
%{_bindir}/db*_dump*
%{_bindir}/db*_hotbackup
%{_bindir}/db*_load
%{_bindir}/db*_printlog
%{_bindir}/db*_recover
%{_bindir}/db*_sql
%{_bindir}/db*_stat
%{_bindir}/db*_upgrade
%{_bindir}/db*_verify

%files -n %{libnamedev}
%defattr(644,root,root,755)
%doc docs/api_reference
%dir %{_includedir}/db4
%{_includedir}/db4/db.h
%if %{?!_without_db1:1}%{?_without_db1:0} 
%{_includedir}/db4/db_185.h
%endif
%{_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
%if %{?!_without_tcl:1}%{?_without_tcl:0} 
%{_libdir}/libdb_tcl.so
%{_libdir}/libdb_tcl-4.so
%{_libdir}/libdb_tcl-%{__soversion}.la
%endif
%if %with 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) 
%{_libdir}/libdb_nss-%{__soversion}.so

%files -n %{libdbnssdev}
%defattr(644,root,root,755)
%dir %{_includedir}/db_nss
%{_includedir}/db_nss/db.h
%if %{?!_without_db1:1}%{?_without_db1:0} 
%{_includedir}/db_nss/db_185.h
%endif
%{_libdir}/libdb_nss.so
%{_libdir}/libdb_nss-4.so
%{_libdir}/libdb_nss-%{__soversion}.la
%endif





%changelog

* Fri Jan 11 2013 umeabot <umeabot> 4.8.30-10.mga3
+ Revision: 348626
- Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild

* Sat Jul 21 2012 colin <colin> 4.8.30-9.mga3
+ Revision: 273178
- Rename patch
- Update for usrmove

* Sat Sep 03 2011 dmorgan <dmorgan> 4.8.30-8.mga2
+ Revision: 138228
- Do not install files twice

* Sat Sep 03 2011 dmorgan <dmorgan> 4.8.30-7.mga2
+ Revision: 138227
- Install jar files at the right place

* Sat Jul 02 2011 fwang <fwang> 4.8.30-6.mga2
+ Revision: 117282
- rebuild for new tcl

* Fri Mar 25 2011 dmorgan <dmorgan> 4.8.30-5.mga1
+ Revision: 77192
- Rebuild to try to fix provides

  + pterjan <pterjan>
    - Re-enable java support

* Tue Jan 11 2011 dmorgan <dmorgan> 4.8.30-3.mga1
+ Revision: 5910
- Do not use %%exclude

  + pterjan <pterjan>
    - Drop java support while bootstraping the distro

  + blino <blino>
    - remove old ldconfig scriptlets
    - imported package db48