Blob Blame History Raw
%{?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