%{?mingw_package_header}
%global sum MinGW build of The Berkeley DB database library
Name: mingw-libdb
Version: 5.3.28
Release: 3%{?dist}
Summary: %{sum}
License: BSD and LGPLv2 and Sleepycat
URL: http://www.oracle.com/database/berkeley-db/
Source0: http://download.oracle.com/berkeley-db/db-%{version}.tar.gz
# For mt19937db.c
Source1: http://www.gnu.org/licenses/lgpl-2.1.txt
# Cross-compilation specific patches
Patch1: db-5.3.21-case-sensitive-winioctl.patch
Patch2: db-5.3.21-install-utilities.patch
# Other patches
Patch24: db-4.5.20-jni-include-dir.patch
# License clarification patch
# http://devel.trisquel.info/gitweb/?p=package-helpers.git;a=blob;f=helpers/DATA/db4.8/007-mt19937db.c_license.patch;h=1036db4d337ce4c60984380b89afcaa63b2ef88f;hb=df48d40d3544088338759e8bea2e7f832a564d48
Patch25: 007-mt19937db.c_license.patch
#Adds missing constant to Optcodes.java and changes ClassReader.java to use it. This makes package to build with Java 8.
Patch26: java8-fix.patch
# memp_stat fix provided by upstream (rhbz#1211871)
Patch27: db-5.3.21-memp_stat-upstream-fix.patch
BuildRequires: mingw32-filesystem >= 95
BuildRequires: mingw64-filesystem >= 95
BuildRequires: mingw32-gcc mingw64-gcc
BuildRequires: mingw32-gcc-c++ mingw64-gcc-c++
BuildRequires: mingw32-binutils mingw64-binutils
BuildRequires: mingw32-winpthreads mingw64-winpthreads
BuildRequires: shtool coreutils
BuildArch: noarch
%description
The Berkeley DB Database is a programmatic toolkit that provides
database support for applications.
%package -n mingw32-libdb
Summary: %{sum} for Win32
%description -n mingw32-libdb
The Berkeley DB Database is a programmatic toolkit that provides
database support for applications.
%package -n mingw32-libdb-static
Requires: mingw32-libdb = %{version}-%{release}
Summary: %{sum} for Win32
%description -n mingw32-libdb-static
The Berkeley DB Database is a programmatic toolkit that provides
database support for applications.
%package -n mingw64-libdb
Summary: %{sum} for Win64
%description -n mingw64-libdb
The Berkeley DB Database is a programmatic toolkit that provides
database support for applications.
%package -n mingw64-libdb-static
Requires: mingw64-libdb = %{version}-%{release}
Summary: %{sum} for Win64
%description -n mingw64-libdb-static
The Berkeley DB Database is a programmatic toolkit that provides
database support for applications.
%package -n mingw32-libdb-utils
Requires: mingw32-libdb = %{version}-%{release}
Summary: %{sum} utilities for Win32
%description -n mingw32-libdb-utils
The Berkley DB Database Win32 executable tools and utilities
%package -n mingw64-libdb-utils
Requires: mingw64-libdb = %{version}-%{release}
Summary: %{sum} utilities for Win64
%description -n mingw64-libdb-utils
The Berkley DB Database Win64 executable tools and utilities
%{?mingw_debug_package}
%prep
%setup -q -n db-%{version}
cp %{SOURCE1} .
%patch1 -p1 -b winioctl
%patch2 -p1 -b utilities
%patch24 -p1 -b .4.5.20.jni
%patch25 -p1 -b .licensefix
%patch26 -p1 -b .java8-fix
%patch27 -p1 -b .memp_stat-fix
%build
pushd build_unix
mkdir -p build_win32
pushd build_win32
%{mingw32_env}
../../dist/configure \
--host=%{mingw32_host} \
--build=%_build \
--target=%{mingw32_target} \
--prefix=%{mingw32_prefix} \
--exec-prefix=%{mingw32_exec_prefix} \
--bindir=%{mingw32_bindir} \
--sbindir=%{mingw32_sbindir} \
--sysconfdir=%{mingw32_sysconfdir} \
--datadir=%{mingw32_datadir} \
--includedir=%{mingw32_includedir} \
--libdir=%{mingw32_libdir} \
--libexecdir=%{mingw32_libexecdir} \
--localstatedir=%{mingw32_localstatedir} \
--sharedstatedir=%{mingw32_sharedstatedir} \
--mandir=%{mingw32_mandir} \
--infodir=%{mingw32_infodir} \
--enable-mingw \
--enable-cxx \
--enable-compat185 \
--enable-shared \
--enable-static \
CC=%{mingw32_cc} \
CXX=%{mingw32_cxx}
popd
mkdir -p build_win64
pushd build_win64
%{mingw64_env}
../../dist/configure \
--host=%{mingw64_host} \
--build=%_build \
--target=%{mingw64_target} \
--prefix=%{mingw64_prefix} \
--exec-prefix=%{mingw64_exec_prefix} \
--bindir=%{mingw64_bindir} \
--sbindir=%{mingw64_sbindir} \
--sysconfdir=%{mingw64_sysconfdir} \
--datadir=%{mingw64_datadir} \
--includedir=%{mingw64_includedir} \
--libdir=%{mingw64_libdir} \
--libexecdir=%{mingw64_libexecdir} \
--localstatedir=%{mingw64_localstatedir} \
--sharedstatedir=%{mingw64_sharedstatedir} \
--mandir=%{mingw64_mandir} \
--infodir=%{mingw64_infodir} \
--enable-mingw \
--enable-cxx \
--enable-compat185 \
--enable-shared \
--enable-static\
CC=%{mingw64_cc} \
CXX=%{mingw64_cxx}
popd
%mingw_make %{?_smp_mflags}
popd
%install
pushd build_unix
%mingw_make install DESTDIR=%{buildroot}
popd
find %{buildroot} -name '*.la' -delete
find %{buildroot} -name '*.exe' -exec chmod 755 '{}' \;
#find %{buildroot} -name '*.dll' -exec chmod 755 '{}' \;
(cd ${RPM_BUILD_ROOT}%{mingw64_libdir} && \
ln -s libdb-5.?.dll.a libdb.dll.a && \
ln -s libdb-5.?.dll.a libdb-5.dll.a && \
ln -s libdb_cxx-5.?.dll.a libdb_cxx.dll.a && \
ln -s libdb_cxx-5.?.dll.a libdb_cxx-5.dll.a)
(cd ${RPM_BUILD_ROOT}%{mingw32_libdir} && \
ln -s libdb-5.?.dll.a libdb.dll.a && \
ln -s libdb-5.?.dll.a libdb-5.dll.a && \
ln -s libdb_cxx-5.?.dll.a libdb_cxx.dll.a && \
ln -s libdb_cxx-5.?.dll.a libdb_cxx-5.dll.a)
rm -rf ${RPM_BUILD_ROOT}%{mingw64_prefix}/docs
rm -rf ${RPM_BUILD_ROOT}%{mingw32_prefix}/docs
%files -n mingw32-libdb
%license LICENSE lgpl-2.1.txt
%doc README
%{mingw32_bindir}/libdb-5.3.dll
%{mingw32_bindir}/libdb_cxx-5.3.dll
%{mingw32_libdir}/libdb-5.3.dll.a
%{mingw32_libdir}/libdb-5.dll.a
%{mingw32_libdir}/libdb.dll.a
%{mingw32_libdir}/libdb_cxx-5.3.dll.a
%{mingw32_libdir}/libdb_cxx-5.dll.a
%{mingw32_libdir}/libdb_cxx.dll.a
%{mingw32_includedir}/db*.h
%files -n mingw32-libdb-static
%{mingw32_libdir}/libdb-5.3.a
%{mingw32_libdir}/libdb_cxx-5.3.a
%{mingw32_libdir}/libdb.a
%{mingw32_libdir}/libdb_cxx.a
%files -n mingw64-libdb
%license LICENSE lgpl-2.1.txt
%doc README
%{mingw64_bindir}/libdb-5.3.dll
%{mingw64_bindir}/libdb_cxx-5.3.dll
%{mingw64_libdir}/libdb-5.3.dll.a
%{mingw64_libdir}/libdb-5.dll.a
%{mingw64_libdir}/libdb.dll.a
%{mingw64_libdir}/libdb_cxx-5.3.dll.a
%{mingw64_libdir}/libdb_cxx-5.dll.a
%{mingw64_libdir}/libdb_cxx.dll.a
%{mingw64_includedir}/db*.h
%files -n mingw64-libdb-static
%{mingw64_libdir}/libdb-5.3.a
%{mingw64_libdir}/libdb_cxx-5.3.a
%{mingw64_libdir}/libdb.a
%{mingw64_libdir}/libdb_cxx.a
%files -n mingw32-libdb-utils
%{mingw32_bindir}/db_archive.exe
%{mingw32_bindir}/db_checkpoint.exe
%{mingw32_bindir}/db_deadlock.exe
%{mingw32_bindir}/db_dump.exe
%{mingw32_bindir}/db_hotbackup.exe
%{mingw32_bindir}/db_load.exe
%{mingw32_bindir}/db_log_verify.exe
%{mingw32_bindir}/db_printlog.exe
%{mingw32_bindir}/db_recover.exe
%{mingw32_bindir}/db_replicate.exe
%{mingw32_bindir}/db_stat.exe
%{mingw32_bindir}/db_tuner.exe
%{mingw32_bindir}/db_upgrade.exe
%{mingw32_bindir}/db_verify.exe
%files -n mingw64-libdb-utils
%{mingw64_bindir}/db_archive.exe
%{mingw64_bindir}/db_checkpoint.exe
%{mingw64_bindir}/db_deadlock.exe
%{mingw64_bindir}/db_dump.exe
%{mingw64_bindir}/db_hotbackup.exe
%{mingw64_bindir}/db_load.exe
%{mingw64_bindir}/db_log_verify.exe
%{mingw64_bindir}/db_printlog.exe
%{mingw64_bindir}/db_recover.exe
%{mingw64_bindir}/db_replicate.exe
%{mingw64_bindir}/db_stat.exe
%{mingw64_bindir}/db_tuner.exe
%{mingw64_bindir}/db_upgrade.exe
%{mingw64_bindir}/db_verify.exe
%changelog
* Thu Apr 13 2017 Greg Hellings <greg.hellings@gmail.com> - 5.3.28-3
- Separate out exe files to separate package
- Move summary to a separate variable
* Wed Sep 28 2016 Neal Gompa <ngompa13@gmail.com> - 5.3.28-2
- Use license macro for license files
* Fri Aug 26 2016 Neal Gompa <ngompa13@gmail.com> - 5.3.28-1
- Bump up to BDB 5.3.28
- Sync patches with native libdb package
* Mon Dec 10 2012 Greg Hellings <greg.hellings@gmail.com> - 5.3.21-2
- Cleaned up rpmlint messages
* Mon Dec 10 2012 Greg Hellings <greg.hellings@gmail.com> - 5.3.21-1
- Initial build