summaryrefslogtreecommitdiff
path: root/packaging/db4.spec
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/db4.spec')
-rw-r--r--packaging/db4.spec199
1 files changed, 199 insertions, 0 deletions
diff --git a/packaging/db4.spec b/packaging/db4.spec
new file mode 100644
index 00000000..39d02f9d
--- /dev/null
+++ b/packaging/db4.spec
@@ -0,0 +1,199 @@
+%define generic_name db
+%define docdir %{_defaultdocdir}/%{name}
+%define major 4
+%define minor 8
+
+Name: db4
+Version: %{major}.%{minor}.30.NC
+Release: 0
+Summary: Berkeley DB Database Library Version 4.8
+License: BSD-3-Clause
+Group: System/Libraries
+Url: http://www.sleepycat.com
+Source: db-%{version}.tar.gz
+Source1: %{name}.changes
+Source9: getpatches
+Patch0: db-%{version}.patch
+BuildRequires: autoconf
+BuildRequires: fdupes
+BuildRequires: gcc-c++
+Provides: db = %{version}
+
+%description
+The Berkeley DB Database is a programmatic toolkit that provides
+database support for applications.
+
+This package contains the necessary runtime libraries.
+
+%package utils
+Summary: Command Line tools for Managing Berkeley DB Databases
+Group: Productivity/Databases/Tools
+
+%description utils
+The Berkeley DB Database is a programmatic toolkit that provides
+database support for applications.
+
+This package contains the command line tools for managing Berkeley DB
+databases.
+
+%package doc
+Summary: Documentation for Berkeley DB
+Group: Development/Libraries/C and C++
+BuildArch: noarch
+
+%description doc
+The Berkeley DB Database is a programmatic toolkit that provides
+database support for applications.
+
+This package contains the documentation.
+
+%package devel
+Summary: Development Files and Libraries for the Berkeley DB library Version 4.8
+Group: Development/Libraries/C and C++
+Requires: %{name} = %{version}
+Requires: glibc-devel
+
+%description devel
+The Berkeley DB Database is a programmatic toolkit that provides
+database support for applications.
+
+This package contains the header files and libraries.
+
+%prep
+%setup -q -n %{generic_name}-%{version}
+%patch0
+cd ..
+tar -jcf %{generic_name}-%{version}.tar.bz2 %{generic_name}-%{version}
+
+%build
+cd dist
+# dist/RELEASE codes the build date into the binary.
+# Use last change of changes file instead
+LAST_MOD=`stat --format="%Y" %SOURCE1`
+DIST_DATE=`date '+%B %e, %Y' --date="@$LAST_MOD"`
+sed -i -e "s/^DB_RELEASE_DATE=.*$/DB_RELEASE_DATE=\"$DIST_DATE\"/" RELEASE
+./s_config
+CFLAGS="%{optflags} -fno-strict-aliasing"
+CC=gcc
+export CFLAGS CXXFLAGS CC
+#
+# Build now the NPTL version
+#
+mkdir ../build_nptl
+cd ../build_nptl
+../dist/configure --prefix=%{_prefix} \
+ --libdir=%{_libdir} --enable-compat185 --disable-dump185 \
+ --enable-shared --disable-static --enable-cxx \
+ --with-mutex="POSIX/pthreads/library" \
+%ifarch %arm
+ %{_target_cpu}-suse-linux-gnueabi
+%else
+ %{_target_cpu}-suse-linux
+%endif
+# Make sure O_DIRECT is really disabled (build host could have old kernel)
+perl -pi -e 's/#define HAVE_O_DIRECT 1/#undef HAVE_O_DIRECT/' db_config.h
+# Remove libtool predep_objects and postdep_objects wonkiness
+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} LIBSO_LIBS='$(LIBS)' LIBXSO_LIBS='$(LIBS)'" -L%{_libdir} -lstdc++"
+
+%install
+mkdir -p %{buildroot}%{_includedir}/db4
+CONFIG_ARGS=$(find . -name "config.log" -exec grep "\$ \.\./dist\/configure" {} \; | sed 's/.*configure\( --.*\)/\1/g')
+if [ -z "$CONFIG_ARGS" ]
+then
+ echo "could not find configure arguments ... exiting"
+ exit 42
+fi
+mkdir -p %{buildroot}%{_libdir}
+cd build_nptl
+make prefix=%{buildroot}%{_prefix} libdir=%{buildroot}%{_libdir} strip=true install
+cd ..
+# make ldd happy:
+chmod 755 %{buildroot}%{_libdir}/libdb*.so
+# Fix header file installation
+mv %{buildroot}%{_includedir}/*.h %{buildroot}%{_includedir}/db4
+echo "#include <db4/db.h>" > %{buildroot}%{_includedir}/db.h
+echo "#include <db4/db_185.h>" > %{buildroot}%{_includedir}/db_185.h
+echo "#include <db4/db_cxx.h>" > %{buildroot}%{_includedir}/db_cxx.h
+# remove dangling tags symlink from examples.
+rm -f examples_cxx/tags
+rm -f examples_c/tags
+# Move documentation to the right directory
+mkdir -p %{buildroot}%{docdir}
+mv %{buildroot}%{_prefix}/docs/* %{buildroot}/%{docdir}
+cp -a examples_cxx examples_c %{buildroot}/%{docdir}
+cp -a LICENSE README %{buildroot}/%{docdir}
+#
+# Remove api documentation for C++, Java and TCL
+rm -rf %{buildroot}/%{docdir}/csharp
+rm -rf %{buildroot}/%{docdir}/java
+rm -rf %{buildroot}/%{docdir}/api_reference/CXX
+rm -rf %{buildroot}/%{docdir}/api_reference/STL
+rm -rf %{buildroot}/%{docdir}/api_reference/TCL
+rm -rf %{buildroot}/%{docdir}/gsg*/CXX
+rm -rf %{buildroot}/%{docdir}/gsg*/JAVA
+mv %{buildroot}/%{docdir}/collections/tutorial %{buildroot}/%{docdir}/
+# Remove crappy *.la files
+rm -rf %{buildroot}%{_libdir}/*.la
+rm -rf %{buildroot}%{_libdir}/tls/*.la
+%fdupes %{buildroot}%{_libdir}
+%fdupes %{buildroot}%{docdir}
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root)
+%{_libdir}/libdb-%{major}.%{minor}.so
+%{_libdir}/libdb_cxx-%{major}.%{minor}.so
+
+%files doc
+%defattr(-,root,root)
+%dir %{docdir}
+%doc %{docdir}/LICENSE
+%doc %{docdir}/README
+%doc %{docdir}/index.html
+%doc %{docdir}/license
+%doc %{docdir}/articles
+%doc %{docdir}/api_reference
+%doc %{docdir}/examples_c
+%doc %{docdir}/examples_cxx
+%doc %{docdir}/gsg*
+%doc %{docdir}/porting
+%doc %{docdir}/programmer_reference
+%doc %{docdir}/tutorial
+
+%files utils
+%defattr(-,root,root)
+%{_bindir}/db_archive
+%{_bindir}/db_checkpoint
+%{_bindir}/db_deadlock
+%{_bindir}/db_dump
+%{_bindir}/db_load
+%{_bindir}/db_printlog
+%{_bindir}/db_recover
+%{_bindir}/db_sql
+%{_bindir}/db_stat
+%{_bindir}/db_upgrade
+%{_bindir}/db_verify
+%{_bindir}/db_hotbackup
+
+%files devel
+%defattr(-,root,root)
+%dir %{_includedir}/db4
+%{_includedir}/db.h
+%{_includedir}/db_185.h
+%{_includedir}/db_cxx.h
+%{_includedir}/db4/db.h
+%{_includedir}/db4/db_185.h
+%{_includedir}/db4/db_cxx.h
+%{_libdir}/libdb.so
+%{_libdir}/libdb-%{major}.so
+%{_libdir}/libdb_cxx.so
+%{_libdir}/libdb_cxx-%{major}.so
+
+%changelog