Blob Blame History Raw
Name:           saga
Version:        2.2.4
Release:        3%{?dist}
Summary:        Geographic information system with an API for processing geodata 

Group:          Applications/Engineering

# libsaga_api is licensed under the terms of LGPLv2. So is one single
# module and some of the code to create documentation.
# The rest of the code is GPLv2, GPLv2+ or compatible (ISC, MIT/X11)
License:        GPLv2 and LGPLv2
URL:            http://www.saga-gis.org 
#Source0:                http://sourceforge.net/projects/%{name}-gis/files/SAGA%20-%202.2/SAGA%202.2.2/%{name}-%{version}.tar.gz
# Mailing list discussion on non-free components
# https://sourceforge.net/p/saga-gis/mailman/message/28391147/
Source0:    %{name}-%{version}-fedora.tar.gz

# Script to generate free tarball
# See comments inside
Source2:    %{name}_tarball.sh

# Some of the patches are taken or adapted from Ubuntugis

# Link to grib2 system library
Patch3:     %{name}-2.1.2-use-system-version-of-grib2.patch

# Dxflib is not regarded free as of http://lists.fedoraproject.org/pipermail/legal/2011-October/001734.html
# Sources are excluded from tarball
# http://sourceforge.net/mailarchive/forum.php?thread_name=50917DA0.1090600%40ribbonsoft.com&forum_name=saga-gis-developer
# https://lists.fedoraproject.org/pipermail/legal/2012-November/002033.html
# http://sourceforge.net/p/saga-gis/bugs/135/
Patch5:     %{name}-2.1.4-dxflib.patch

# Use system-wide e00compr
# http://sourceforge.net/p/saga-gis/bugs/137/
Patch6:     %{name}-2.1.2-e00.patch

# Use system-wide polyclipping
# http://sourceforge.net/p/saga-gis/bugs/135/
Patch7:     %{name}-2.2.1-poly.patch

BuildRequires: libappstream-glib
BuildRequires: desktop-file-utils
BuildRequires: libtool automake autoconf
BuildRequires: e00compr-static
BuildRequires: g2clib-static
BuildRequires: gdal-devel 
BuildRequires: jasper-devel 
BuildRequires: libharu-devel
BuildRequires: libtiff-devel 
BuildRequires: polyclipping-devel
BuildRequires: proj-devel 
BuildRequires: postgresql-devel 
BuildRequires: python2-devel 
BuildRequires: qhull-devel 
BuildRequires: swig
BuildRequires: unixODBC-devel 
BuildRequires: vigra-devel
BuildRequires: wxGTK3-devel 

%description
SAGA is a geographic information system (GIS) with a special API
for geographic data processing. This API makes it easy to implement
new algorithms. The SAGA API supports grid data, vector data, and tables. 

%package python
Summary:        SAGA Python interface
Group:          Applications/Engineering
Requires:       %{name}%{?_isa} = %{version}-%{release}

%description python
Python interface for SAGA

%package devel
Summary:        SAGA development package
Group:          Applications/Engineering
Requires:       %{name}%{?_isa} = %{version}-%{release}

%description devel
This package includes the headers and development libraries for SAGA.

# We don't want to provide private Python extension libs
# This approach only works with rpm 4.9
# See https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering#Usage and https://fedorahosted.org/fpc/ticket/76
#TODO: Check if provides are proper

%global __provides_exclude_from ^%{python_sitearch}/.*\.so$
%global __provides_requires_from ^%{python_sitearch}/.*\.so$

%prep
%setup -q -n %{name}-%{version}-fedora
# Convert to UNIX line-breaks
sed -i 's/\r//' AUTHORS

gzip -c ChangeLog > ChangeLog.gz

# Delete bundled g2clib, e00compr, polyclipping and triangle (qhull)
rm -r src/modules/io/io_grid_grib2/g2clib-1.0.4
rm -r src/modules/io/io_esri_e00/e00compr
rm src/saga_core/saga_api/clipper.{c,h}pp
rm -r src/modules/grid/grid_gridding/nn/triangle.*

%patch3 -p1 -b .~grib2
%patch5 -p1 -b .~dxflib
%patch6 -p1 -b .~e00
%patch7 -p1 -b .~poly

%if 0%{?fedora} > 24
# Installation directory has changed
sed -i -e 's,qhull/qhull_a.h,libqhull/qhull_a.h,' \
  src/modules/grid/grid_gridding/nn/delaunay.c
%endif

%build
# wxGTK3 3.0.1-3 moved wx-config to libexecdir
PATH=$PATH:%{_libexecdir}/wxGTK3/
autoreconf -fi

#TODO: openmp?
# Build without non-free components
%configure \
    --disable-static \
    --enable-python \
    --disable-libfire \
    --with-system_grib2c \
    --disable-triangle

# Get rid of undesirable hardcoded rpaths; workaround libtool reordering
# -Wl,--as-needed after all the libraries.
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
    -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
    -e 's|^LTCC="gcc"|LTCC="gcc -Wl,--as-needed"|' \
    -e 's|^CC="g++"|CC="g++ -Wl,--as-needed"|' \
    -i libtool

make %{?_smp_mflags}


%install
make install DESTDIR=%{buildroot}

# Drop libtool archives
rm -rf %{buildroot}/%{_libdir}/saga/lib*.la     \
     %{buildroot}/%{_libdir}/saga/libsaga_*.la
rm -rf %{buildroot}/%{python_sitearch}/*.la     \
     %{buildroot}/%{_libdir}/*.la

desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/%{name}.appdata.xml


%files
%doc AUTHORS COPYING README
%{_bindir}/%{name}_cmd
%{_bindir}/%{name}_gui
%{_libdir}/%{name}/
%{_datadir}/%{name}/
# No soname versioning is yet in place and the interfaces are not stable
%{_libdir}/lib%{name}_api-%{version}.so
%{_libdir}/lib%{name}_gdi-%{version}.so
%{_datadir}/pixmaps/%{name}.png
%{_datadir}/applications/%{name}.desktop
%{_datadir}/appdata/%{name}.appdata.xml
%{_mandir}/man1/%{name}_*1*

%files python
%{python_sitearch}/*.py*
%{python_sitearch}/*.so

%files devel
%{_includedir}/%{name}/
%{_libdir}/lib%{name}_api.so
%{_libdir}/lib%{name}_gdi.so

%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig


%changelog
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.4-3
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Fri Apr 29 2016 Ralf Corsépius <corsepiu@fedoraproject.org> - 2.2.4-2
- Rebuild for qhull-2015.2-1.
- Reflect qhull_a.h's location having changed.

* Sat Mar 12 2016 Volker Froehlich <volker27@gmx.at> - 2.2.4-1
- New upstream release
- Use the new build options to get rid of triangle, libfire and grib2c

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Fri Oct 16 2015 Volker Froehlich <volker27@gmx.at> - 2.2.2-1
- New upstream release

* Fri Sep 25 2015 Volker Froehlich <volker27@gmx.at> - 2.2.1-1
- New upstream release

* Sun Jul 26 2015 Volker Froehlich <volker27@gmx.at> - 2.2.0-2
- Rebuild for GDAL 2.0

* Sat Jul  4 2015 Volker Froehlich <volker27@gmx.at> - 2.2.0-1
- New upstream version

* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 2.1.4-4
- Rebuilt for GCC 5 C++11 ABI change

* Thu Mar 26 2015 Orion Poplawski <orion@cora.nwra.com> - 2.1.4-3
- Fix up removing bundled source

* Sat Mar 14 2015 Volker Froehlich <volker27@gmx.at> - 2.1.4-2
- Rebuild for Proj 4.1.9

* Fri Nov 14 2014 Volker Fröhlich <volker27@gmx.at> - 2.1.4-1
- New upstream release
- Update dxflib patch

* Fri Oct 31 2014 Volker Fröhlich <volker27@gmx.at> - 2.1.3-1
- New upstream release
- Remove ChangeLog, as it is not updated, ship README instead
- Add and validate appdata file
- Remove format patch (solved upstream)

* Wed Oct 22 2014 Volker Froehlich <volker27@gmx.at> - 2.1.2-5
- Rebuild for polyclipping 6.2.0

* Tue Oct 14 2014 Volker Fröhlich <volker27@gmx.at> - 2.1.2-4
- Adapt package to new file layout in wxGTK3 3.0.1-3 (F22)

* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Thu May 15 2014 Volker Fröhlich <volker27@gmx.at> - 2.1.2-1
- New upstream release

* Thu Feb 13 2014 Volker Fröhlich <volker27@gmx.at> - 2.1.1-1
- New upstream release
- Compress changelog file
- Adjust to using wxGTK3, thus drop propgrid dependency as it is included
- Drop outdated build options
- Adapt to polyclipping 6.1 API
- Add BR for postgresql-devel
- Drop custom desktop file and use png icon
- Remove odbc headers from devel package, as discussed with Volker Wichmann
- Add complementary requires-filtering

* Sat Jan 18 2014 Volker Fröhlich <volker27@gmx.at> - 2.0.8-14
- Use safe printing format, solve BZ #1037315 and upstream bug #163
- Add patch for vigra 1.10.0 (upstream bug #173)

* Tue Aug 27 2013 Orion Poplawski <orion@cora.nwra.com> - 2.0.8-13
- Rebuild for gdal 1.10.0

* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.8-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Mon Jun 24 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.8-11
- Rebuild for polyclipping 5.1.6

* Mon Mar  4 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.8-10
- Rebuild for polyclipping 5.1.2

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.8-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Tue Jan  8 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.8-8
- Rebuild for polyclipping

* Wed Dec 26 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.8-7
- Rebuild for polyclipping

* Fri Nov 23 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.8-6
- Rebuild for polyclipping

* Fri Oct 19 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.8-5
- Correct isa macros
- No later versions of GPL and LGPL are allowed
- Break down licenses
- Solve the rpath issue differently
- Rename patches and change numbering

* Tue Oct  9 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.8-4
- Remove draft patch breaking the build

* Sun Oct  7 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.8-3
- Replace provides-filtering with a suitable method
- Replace dos2unix invocation with sed

* Thu Apr 12 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.8-2
- Build with system-wide wxpropgrid and polyclipping
- Correct Exec entry in the desktop file
- Update patch for e00compr

* Thu Nov 24 2011 Volker Fröhlich <volker27@gmx.at> - 2.0.8-1
- Updated for new version
- Drop obsolete patches gcc46 and python-parallel
- Correct tarball script
- Update and correct linking in g2clib patch

* Sun Oct 30 2011 Volker Fröhlich <volker27@gmx.at> - 2.0.7-3
- Delete dxflib from tarball
- Split patches for dxflib and e00compr
- Use bundled wxpropgrid for the time being
- Use system-wide e00compr

* Fri Oct 07 2011 Volker Fröhlich <volker27@gmx.at> - 2.0.7-2
- Correct g2clib patch to actually use g2clib
- Only link to libraries actually used
- Fix configure.in to really search for lodbc
- Require g2clib-static instead of -devel

* Fri Sep 09 2011 Volker Fröhlich <volker27@gmx.at> - 2.0.7-1
- Initital package