Blob Blame History Raw
%{?mingw_package_header}

%global pkgname gdal

# does not support out-of-tree builds
%global w64_dir %{_builddir}/mingw64-%{pkgname}-%{version}-%{release}

Name:          mingw-%{pkgname}
Version:       2.2.4
Release:       5%{?dist}
Summary:       MinGW Windows GDAL library

BuildArch:     noarch
License:       MIT
URL:           http://www.gdal.org
# Source0:      http://download.osgeo.org/gdal/%%{version}/gdal-%%{version}.tar.xz
# See PROVENANCE.TXT-fedora and the cleaner script for details!
Source0:       %{pkgname}-%{version}-fedora.tar.xz

# Fix MinGW build
Patch0:        gdal_mingw.patch
# Patch to use system g2clib
Patch1:        gdal-g2clib.patch
# Use system zlib header
Patch2:        gdal-zlib.patch
# Use correct name for libproj dll (update this patch when proj soversion changes!)
Patch3:        gdal_proj-libname.patch


BuildRequires: automake autoconf libtool

BuildRequires: mingw32-filesystem >= 102
BuildRequires: mingw32-gcc-c++
BuildRequires: mingw32-cfitsio
BuildRequires: mingw32-curl
BuildRequires: mingw32-expat
BuildRequires: mingw32-freexl
BuildRequires: mingw32-g2clib
BuildRequires: mingw32-geos
BuildRequires: mingw32-giflib
BuildRequires: mingw32-jasper
BuildRequires: mingw32-libgta
BuildRequires: mingw32-libjpeg-turbo
BuildRequires: mingw32-libkml
BuildRequires: mingw32-libpng
BuildRequires: mingw32-libtiff
BuildRequires: mingw32-libgeotiff
BuildRequires: mingw32-libspatialite
BuildRequires: mingw32-libwebp
BuildRequires: mingw32-pcre
BuildRequires: mingw32-poppler
BuildRequires: mingw32-postgresql
BuildRequires: mingw32-proj
BuildRequires: mingw32-python2
BuildRequires: mingw32-python2-numpy
BuildRequires: mingw32-sqlite
BuildRequires: mingw32-xerces-c
BuildRequires: mingw32-xz-libs
BuildRequires: mingw32-zlib

BuildRequires: mingw64-filesystem >= 102
BuildRequires: mingw64-gcc-c++
BuildRequires: mingw64-cfitsio
BuildRequires: mingw64-curl
BuildRequires: mingw64-expat
BuildRequires: mingw64-freexl
BuildRequires: mingw64-g2clib
BuildRequires: mingw64-geos
BuildRequires: mingw64-giflib
BuildRequires: mingw64-jasper
BuildRequires: mingw64-libgta
BuildRequires: mingw64-libjpeg-turbo
BuildRequires: mingw64-libkml
BuildRequires: mingw64-libpng
BuildRequires: mingw64-libtiff
BuildRequires: mingw64-libgeotiff
BuildRequires: mingw64-libspatialite
BuildRequires: mingw64-libwebp
BuildRequires: mingw64-pcre
BuildRequires: mingw64-poppler
BuildRequires: mingw64-postgresql
BuildRequires: mingw64-proj
BuildRequires: mingw64-python2
BuildRequires: mingw64-python2-numpy
BuildRequires: mingw64-sqlite
BuildRequires: mingw64-xerces-c
BuildRequires: mingw64-xz-libs
BuildRequires: mingw64-zlib

# TODO
# BuildRequires: armadillo-devel
# BuildRequires: hdf-devel
# BuildRequires: hdf5-devel
# BuildRequires: netcdf-devel
# BuildRequires: libdap-devel
# BuildRequires: librx-devel
# BuildRequires: mysql-devel
# BuildRequires: ogdi-devel
# BuildRequires: unixODBC-devel



%description
MinGW Windows GDAL library.


%package -n mingw32-%{pkgname}
Summary:       MinGW Windows GDAL library
# Explicit require since libproj is opened at runtime, see also gdal_proj-libname.patch
Requires:      mingw32(libproj-12.dll)

%description -n mingw32-%{pkgname}
MinGW Windows GDAL library.


%package -n mingw32-python2-%{pkgname}
Summary:       MinGW Windows Python2 GDAL bindings

%description -n mingw32-python2-%{pkgname}
MinGW Windows Python2 GDAL bindings.


%package -n mingw32-%{pkgname}-tools
Summary:       MinGW Windows GDAL library tools

%description -n mingw32-%{pkgname}-tools
MinGW Windows GDAL library tools.


%package -n mingw64-%{pkgname}
Summary:       MinGW Windows GDAL library
# Explicit require since libproj is opened at runtime, see also gdal_proj-libname.patch
Requires:      mingw64(libproj-12.dll)

%description -n mingw64-%{pkgname}
MinGW Windows GDAL library.


%package -n mingw64-python2-%{pkgname}
Summary:       MinGW Windows Python2 GDAL bindings

%description -n mingw64-python2-%{pkgname}
MinGW Windows Python2 GDAL bindings.


%package -n mingw64-%{pkgname}-tools
Summary:       MinGW Windows GDAL library tools

%description -n mingw64-%{pkgname}-tools
MinGW Windows GDAL library tools.


%{?mingw_debug_package}


%prep
%autosetup -p1 -n %{pkgname}-%{version}-fedora

# Delete bundled libraries
rm -rf frmts/zlib
rm -rf frmts/png/libpng
rm -rf frmts/gif/giflib
rm -rf frmts/jpeg/libjpeg
rm -rf frmts/jpeg/libjpeg12
rm -rf frmts/gtiff/libgeotiff
rm -rf frmts/gtiff/libtiff
rm -rf frmts/grib/degrib18/g2clib-1.0.4


# http://ramblingfoo.blogspot.ch/2007/07/required-file-configrpath-not-found.html
touch config.rpath
autoreconf -ifv .

cp -a . %{w64_dir}


%build
%mingw32_configure \
    --without-bsb \
    --with-liblzma \
    --with-curl \
    --with-webp \
    --with-spatialite \
    --with-poppler=%{mingw32_prefix} \
    --with-geos=%{mingw32_bindir}/%{mingw32_target}-geos-config \
    --with-libkml=%{mingw32_prefix} \
    --disable-static
%mingw32_make %{?_smp_mflags}

pushd swig/python
%{mingw32_python2} setup.py build
popd

(
cd %{w64_dir}
%mingw64_configure \
    --without-bsb \
    --with-liblzma \
    --with-curl \
    --with-webp \
    --with-spatialite \
    --with-poppler=%{mingw64_prefix} \
    --with-geos=%{mingw64_bindir}/%{mingw64_target}-geos-config \
    --with-libkml=%{mingw64_prefix} \
    --disable-static
%mingw64_make %{?_smp_mflags}

pushd swig/python
%{mingw64_python2} setup.py build
popd
)


%install
%mingw32_make DESTDIR=%{buildroot} install
pushd swig/python
%{mingw32_python2} setup.py install -O1 --skip-build --root=%{buildroot}
popd

(
cd %{w64_dir}
%mingw64_make DESTDIR=%{buildroot} install
pushd swig/python
%{mingw64_python2} setup.py install -O1 --skip-build --root=%{buildroot}
popd
)

# Delete *.la files
find %{buildroot} -name '*.la' -delete

# Delete empty gdalplugins dir
rmdir %{buildroot}%{mingw32_libdir}/gdalplugins
rmdir %{buildroot}%{mingw64_libdir}/gdalplugins

# Delete data
rm -r %{buildroot}%{mingw32_datadir}
rm -r %{buildroot}%{mingw64_datadir}

# Exclude debug files from the main files (note: the debug files are only created after %%install, so we can't search for them directly)
find %{buildroot}%{mingw32_prefix} | grep -E '.(exe|dll|pyd)$' | sed 's|^%{buildroot}\(.*\)$|%%exclude \1.debug|' > mingw32-python2-%{pkgname}.debugfiles
find %{buildroot}%{mingw64_prefix} | grep -E '.(exe|dll|pyd)$' | sed 's|^%{buildroot}\(.*\)$|%%exclude \1.debug|' > mingw64-python2-%{pkgname}.debugfiles


%files -n mingw32-%{pkgname}
%license LICENSE.TXT
%{mingw32_bindir}/libgdal-20.dll
%{mingw32_bindir}/gdal-config
%{mingw32_libdir}/libgdal.dll.a
%{mingw32_libdir}/pkgconfig/gdal.pc
%{mingw32_includedir}/*.h

%files -n mingw32-python2-%{pkgname} -f mingw32-python2-%{pkgname}.debugfiles
%{mingw32_python2_sitearch}/*

%files -n mingw32-%{pkgname}-tools
%{mingw32_bindir}/*.exe

%files -n mingw64-%{pkgname}
%license LICENSE.TXT
%{mingw64_bindir}/libgdal-20.dll
%{mingw64_bindir}/gdal-config
%{mingw64_libdir}/libgdal.dll.a
%{mingw64_libdir}/pkgconfig/gdal.pc
%{mingw64_includedir}/*.h

%files -n mingw64-python2-%{pkgname} -f mingw32-python2-%{pkgname}.debugfiles
%{mingw64_python2_sitearch}/*

%files -n mingw64-%{pkgname}-tools
%{mingw64_bindir}/*.exe


%changelog
* Tue Jul 24 2018 Pete Walter <pwalter@fedoraproject.org> - 2.2.4-5
- Rebuild for xerces-c 3.2

* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Wed Jun 13 2018 Sandro Mani <manisandro@gmail.com> - 2.2.4-3
- Rebuild for libkml ABI change

* Wed Apr 11 2018 Sandro Mani <manisandro@gmail.com> - 2.2.4-2
- Rebuild (poppler)

* Tue Mar 27 2018 Sandro Mani <manisandro@gmail.com> - 2.2.4-1
- Update to 2.2.4

* Thu Feb 15 2018 Sandro Mani <manisandro@gmail.com> - 2.2.3-3
- Rebuild (poppler)

* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Tue Dec 05 2017 Sandro Mani <manisandro@gmail.com> - 2.2.3-1
- Update to 2.2.3

* Thu Nov 09 2017 Sandro Mani <manisandro@gmail.com> - 2.2.2-6
- Rebuild (libkml)

* Wed Nov 08 2017 Sandro Mani <manisandro@gmail.com> - 2.2.2-5
- Rebuild (poppler)

* Mon Oct 30 2017 Sandro Mani <manisandro@gmail.com> - 2.2.2-4
- Enable libkml support

* Tue Oct 24 2017 Sandro Mani <manisandro@gmail.com> - 2.2.2-3
- Add patch to fix incorrect libproj libname

* Mon Oct 09 2017 Sandro Mani <manisandro@gmail.com> - 2.2.2-2
- Rebuild (poppler)

* Wed Sep 27 2017 Sandro Mani <manisandro@gmail.com> - 2.2.2-1
- Update to 2.2.2

* Sat Sep 09 2017 Sandro Mani <manisandro@gmail.com> - 2.2.1-6
- Rebuild (mingw-filesystem)

* Fri Sep 08 2017 Sandro Mani <manisandro@gmail.com> - 2.2.1-5
- Rebuild (gdal)

* Sun Sep 03 2017 Sandro Mani <manisandro@gmail.com> - 2.2.1-4
- Build python2 bindings

* Thu Aug 24 2017 Sandro Mani <manisandro@gmail.com> - 2.2.1-3
- Fix spatialite detection

* Sun Aug 06 2017 Sandro Mani <manisandro@gmail.com> - 2.2.1-2
- Rebuild (poppler)

* Tue Jul 11 2017 Sandro Mani <manisandro@gmail.com> - 2.2.1-1
- Update to 2.2.1

* Sat Feb 04 2017 Sandro Mani <manisandro@gmail.com> - 2.1.3-1
- Update to 2.1.3

* Thu Jan 12 2017 Sandro Mani <manisandro@gmail.com> - 2.1.2-1
- Update to 2.1.2

* Fri Jan 22 2016 Sandro Mani <manisandro@gmail.com> - 2.0.1-1
- Update to 2.0.1

* Wed Aug 05 2015 Sandro Mani <manisandro@gmail.com> - 2.0.0-1
- Update to 2.0.0

* Tue May 12 2015 Sandro Mani <manisandro@gmail.com> - 1.11.2-1
- Initial package