diff --git a/libdb.spec b/libdb.spec index ecd302b..a0a45a6 100644 --- a/libdb.spec +++ b/libdb.spec @@ -4,7 +4,7 @@ Summary: The Berkeley DB database library for C Name: libdb Version: 5.3.15 -Release: 2%{?dist} +Release: 3%{?dist} Source0: http://download.oracle.com/berkeley-db/db-%{version}.tar.gz Source1: http://download.oracle.com/berkeley-db/db.1.85.tar.gz Patch0: libdb-multiarch.patch @@ -20,12 +20,11 @@ Patch24: db-4.5.20-jni-include-dir.patch URL: http://www.oracle.com/database/berkeley-db/ License: BSD Group: System Environment/Libraries -BuildRequires: perl, libtool +BuildRequires: perl libtool BuildRequires: tcl-devel >= 8.5.2-3 BuildRequires: gcc-java BuildRequires: java-devel >= 1:1.6.0 BuildRequires: chrpath -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Conflicts: filesystem < 3 %description @@ -41,7 +40,7 @@ be installed on all systems. %package utils Summary: Command line tools for managing Berkeley DB databases Group: Applications/Databases -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} %description utils The Berkeley Database (Berkeley DB) is a programmatic toolkit that @@ -54,7 +53,7 @@ recovery. DB supports C, C++, Java and Perl APIs. %package devel Summary: C development files for the Berkeley DB library Group: Development/Libraries -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The Berkeley Database (Berkeley DB) is a programmatic toolkit that @@ -65,9 +64,10 @@ Berkeley DB. %package devel-doc Summary: C development documentation files for the Berkeley DB library -Group: Development/Libraries +Group: Documentation Requires: %{name} = %{version}-%{release} Requires: %{name}-devel = %{version}-%{release} +BuildArch: noarch %description devel-doc The Berkeley Database (Berkeley DB) is a programmatic toolkit that @@ -76,24 +76,37 @@ client/server applications. This package contains the header files, libraries, and documentation for building programs which use the Berkeley DB. -%package static +%package devel-static Summary: Berkeley DB static libraries Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Requires: %{name}-devel = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} -%description static +%description devel-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 needed for applications that require static linking of Berkeley DB. +%package cxx +Summary: The Berkeley DB database library for C++ +Group: System Environment/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description cxx +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 cxx-devel Summary: The Berkeley DB database library for C++ Group: System Environment/Libraries -Requires: %{name} = %{version}-%{release} -Requires: %{name}-devel = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description cxx-devel The Berkeley Database (Berkeley DB) is a programmatic toolkit that @@ -105,11 +118,21 @@ 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 tcl +Summary: Development files for using the Berkeley DB with tcl +Group: Development/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description 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. + %package tcl-devel Summary: Development files for using the Berkeley DB with tcl Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Requires: %{name}-devel = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description tcl-devel The Berkeley Database (Berkeley DB) is a programmatic toolkit that @@ -117,11 +140,21 @@ 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. +%package sql +Summary: Development files for using the Berkeley DB with sql +Group: Development/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description sql +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 SQL. + %package sql-devel Summary: Development files for using the Berkeley DB with sql Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Requires: %{name}-devel = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description sql-devel The Berkeley Database (Berkeley DB) is a programmatic toolkit that @@ -129,11 +162,21 @@ 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 SQL. +%package java +Summary: Development files for using the Berkeley DB with Java +Group: Development/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description java +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 Java. + %package java-devel Summary: Development files for using the Berkeley DB with Java Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Requires: %{name}-devel = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description java-devel The Berkeley Database (Berkeley DB) is a programmatic toolkit that @@ -162,56 +205,44 @@ cd dist ./s_config %build -CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"; export CFLAGS +export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" # Build the old db-185 libraries. make -C db.1.85/PORT/%{_os} OORG="$CFLAGS" -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 util/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 +test -d dist/dist-tls || mkdir dist/dist-tls +# 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 util/db_dump185.c -o dist/dist-tls/db_dump185.lo +/bin/sh libtool --mode=link %{__cc} -o dist/dist-tls/db_dump185 dist/dist-tls/db_dump185.lo db.1.85/PORT/%{_os}/libdb.a - pushd dist - popd - pushd dist/$1 - ln -sf ../configure . - # XXX --enable-diagnostic should be disabled for production (but is - # useful). - # XXX --enable-debug_{r,w}op should be disabled for production. - %configure -C \ - --enable-compat185 --enable-dump185 \ - --enable-shared --enable-static \ - --enable-tcl --with-tcl=%{_libdir} \ - --enable-cxx --enable-sql \ - --enable-java \ - --enable-test \ - --with-tcl=%{_libdir}/tcl8.5 \ - --disable-rpath \ - # --enable-diagnostic \ - # --enable-debug --enable-debug_rop --enable-debug_wop \ +pushd dist/dist-tls +ln -sf ../configure . +%configure -C \ + --enable-compat185 --enable-dump185 \ + --enable-shared --enable-static \ + --enable-tcl --with-tcl=%{_libdir} \ + --enable-cxx --enable-sql \ + --enable-java \ + --enable-test \ + --disable-rpath \ + --with-tcl=%{_libdir}/tcl8.5 - # Remove libtool predep_objects and postdep_objects wonkiness so that - # building without -nostdlib doesn't include them twice. Because we - # already link with g++, weird stuff happens if you don't let the - # compiler handle this. - 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 +# Remove libtool predep_objects and postdep_objects wonkiness so that +# building without -nostdlib doesn't include them twice. Because we +# already link with g++, weird stuff happens if you don't let the +# compiler handle this. +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 %{?_smp_mflags} +make %{?_smp_mflags} - # XXX hack around libtool not creating ./libs/libdb_java-X.Y.lai - LDBJ=./.libs/libdb_java-%{__soversion}.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 +# XXX hack around libtool not creating ./libs/libdb_java-X.Y.lai +LDBJ=./.libs/libdb_java-%{__soversion}.la +if test -f ${LDBJ} -a ! -f ${LDBJ}i; then + sed -e 's,^installed=no,installed=yes,' < ${LDBJ} > ${LDBJ}i +fi +popd %install rm -rf ${RPM_BUILD_ROOT} @@ -222,11 +253,6 @@ mkdir -p ${RPM_BUILD_ROOT}%{_libdir} # XXX Nuke non-versioned archives and symlinks rm -f ${RPM_BUILD_ROOT}%{_libdir}/{libdb.a,libdb_cxx.a,libdb_tcl.a,libdb_sql.a} -rm -f ${RPM_BUILD_ROOT}%{_libdir}/libdb-%{__soversion_major}.so -rm -f ${RPM_BUILD_ROOT}%{_libdir}/libdb_cxx-%{__soversion_major}.so -rm -f ${RPM_BUILD_ROOT}%{_libdir}/libdb_tcl-%{__soversion_major}.so -rm -f ${RPM_BUILD_ROOT}%{_libdir}/libdb_sql-%{__soversion_major}.so -rm -f ${RPM_BUILD_ROOT}%{_libdir}/libdb_tcl.so chmod +x ${RPM_BUILD_ROOT}%{_libdir}/*.so* @@ -253,9 +279,6 @@ chmod u+w ${RPM_BUILD_ROOT}%{_bindir} ${RPM_BUILD_ROOT}%{_bindir}/* # remove unneeded .la files (#225675) rm -f ${RPM_BUILD_ROOT}%{_libdir}/*.la -# avoid fancy permissons -chmod 0755 ${RPM_BUILD_ROOT}%{_libdir}/*.so - # remove RPATHs chrpath -d ${RPM_BUILD_ROOT}%{_libdir}/*.so ${RPM_BUILD_ROOT}%{_bindir}/* @@ -272,26 +295,50 @@ rm -rf ${RPM_BUILD_ROOT} %postun -p /sbin/ldconfig -%post -p /sbin/ldconfig cxx-devel +%post -p /sbin/ldconfig cxx -%postun -p /sbin/ldconfig cxx-devel +%postun -p /sbin/ldconfig cxx -%post -p /sbin/ldconfig sql-devel +%post -p /sbin/ldconfig sql -%postun -p /sbin/ldconfig sql-devel +%postun -p /sbin/ldconfig sql -%post -p /sbin/ldconfig tcl-devel +%post -p /sbin/ldconfig tcl -%postun -p /sbin/ldconfig tcl-devel +%postun -p /sbin/ldconfig tcl -%post -p /sbin/ldconfig java-devel +%post -p /sbin/ldconfig java -%postun -p /sbin/ldconfig java-devel +%postun -p /sbin/ldconfig java %files %defattr(-,root,root,-) %doc LICENSE README %{_libdir}/libdb-%{__soversion}.so +%{_libdir}/libdb-%{__soversion_major}.so + +%files devel +%defattr(-,root,root,-) +%{_libdir}/libdb.so +%dir %{_includedir}/%{name} +%{_includedir}/%{name}/db.h +%{_includedir}/%{name}/db_185.h +%{_includedir}/%{name}/db_cxx.h +%{_includedir}/db.h +%{_includedir}/db_185.h +%{_includedir}/db_cxx.h + +%files devel-doc +%defattr(-,root,root,-) +%doc docs/* + +%files devel-static +%defattr(-,root,root,-) +%{_libdir}/libdb-%{__soversion}.a +%{_libdir}/libdb_cxx-%{__soversion}.a +%{_libdir}/libdb_tcl-%{__soversion}.a +%{_libdir}/libdb_sql-%{__soversion}.a +%{_libdir}/libdb_java-%{__soversion}.a %files utils %defattr(-,root,root,-) @@ -309,51 +356,48 @@ rm -rf ${RPM_BUILD_ROOT} %{_bindir}/db*_verify %{_bindir}/db*_tuner -%files devel +%files cxx %defattr(-,root,root,-) -%{_libdir}/libdb.so -%dir %{_includedir}/%{name} -%{_includedir}/%{name}/db.h -%{_includedir}/%{name}/db_185.h -%{_includedir}/%{name}/db_cxx.h -%{_includedir}/db.h -%{_includedir}/db_185.h -%{_includedir}/db_cxx.h - -%files devel-doc -%defattr(-,root,root,-) -%doc docs/* - -%files static -%defattr(-,root,root,-) -%{_libdir}/libdb-%{__soversion}.a -%{_libdir}/libdb_cxx-%{__soversion}.a -%{_libdir}/libdb_tcl-%{__soversion}.a -%{_libdir}/libdb_sql-%{__soversion}.a -%{_libdir}/libdb_java-%{__soversion}.a +%{_libdir}/libdb_cxx-%{__soversion}.so +%{_libdir}/libdb_cxx-%{__soversion_major}.so %files cxx-devel %defattr(-,root,root,-) %{_libdir}/libdb_cxx.so -%{_libdir}/libdb_cxx-%{__soversion}.so + +%files tcl +%defattr(-,root,root,-) +%{_libdir}/libdb_tcl-%{__soversion}.so +%{_libdir}/libdb_tcl-%{__soversion_major}.so %files tcl-devel %defattr(-,root,root,-) -%{_libdir}/libdb_tcl-%{__soversion}.so +%{_libdir}/libdb_tcl.so + +%files sql +%defattr(-,root,root,-) +%{_libdir}/libdb_sql-%{__soversion}.so +%{_libdir}/libdb_sql-%{__soversion_major}.so %files sql-devel %defattr(-,root,root,-) %{_bindir}/dbsql %{_libdir}/libdb_sql.so -%{_libdir}/libdb_sql-%{__soversion}.so %{_includedir}/%{name}/dbsql.h +%files java +%defattr(-,root,root,-) +%{_libdir}/libdb_java-%{__soversion_major}*.so +%{_datadir}/java/*.jar + %files java-devel %defattr(-,root,root,-) -%{_libdir}/libdb_java*.so -%{_datadir}/java/*.jar +%{_libdir}/libdb_java.so %changelog +* Sun May 6 2012 Jindrich Novy 5.3.15-3 +- package -devel packages correctly + * Sat Apr 21 2012 Jindrich Novy 5.3.15-2 - fix multiarch conflict in libdb-devel (#812901) - remove unneeded dos2unix BR