package -devel packages correctly

This commit is contained in:
Jindrich Novy 2012-05-06 17:45:55 +02:00
parent edcd9c975a
commit 5168f20c3a

View File

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