353 lines
12 KiB
RPMSpec
353 lines
12 KiB
RPMSpec
#TODO: Run test suite (see debian/rules)
|
|
|
|
Name: qgis
|
|
Version: 2.99
|
|
Release: 1%{?dist}
|
|
Summary: A user friendly Open Source Geographic Information System
|
|
Group: Applications/Engineering
|
|
|
|
License: GPLv3+ with exceptions
|
|
URL: http://www.qgis.org
|
|
|
|
Source0: http://qgis.org/downloads/%{name}-%{version}.tar.bz2
|
|
|
|
# Sample configuration files for QGIS server
|
|
Source2: %{name}-server-httpd.conf
|
|
Source4: %{name}-server-README.fedora
|
|
|
|
# MIME definitions
|
|
# Based on debian/qgis.xml but excluding already defined or proprietary types
|
|
Source5: %{name}-mime.xml
|
|
|
|
# Fix builds on 64-bit machines
|
|
# https://hub.qgis.org/issues/15602
|
|
# https://github.com/qgis/QGIS/commit/718581ffb12b723f9a3c0ae01b7ec2d8aed9d4bb.patch
|
|
Patch0: %{name}-lib64.patch
|
|
|
|
# Some plug-ins need Pyspatialite (bundled)
|
|
# The license is not totally clear, see:
|
|
# http://code.google.com/p/pyspatialite/issues/detail?id=3
|
|
# It also is sort of a fork of pysqlite, which is not elegant.
|
|
|
|
# Compling stuff
|
|
BuildRequires: bison
|
|
BuildRequires: clang
|
|
BuildRequires: cmake
|
|
BuildRequires: expat-devel
|
|
BuildRequires: flex
|
|
BuildRequires: desktop-file-utils
|
|
|
|
# Geo stuff
|
|
BuildRequires: gdal-devel
|
|
BuildRequires: gdal-python3
|
|
BuildRequires: geos-devel
|
|
BuildRequires: gsl-devel
|
|
BuildRequires: libspatialite-devel
|
|
BuildRequires: proj-devel
|
|
BuildRequires: spatialindex-devel
|
|
BuildRequires: grass-devel
|
|
|
|
# Other stuff
|
|
BuildRequires: gsl-devel
|
|
BuildRequires: libzip-devel
|
|
BuildRequires: postgresql-devel
|
|
BuildRequires: sqlite-devel
|
|
BuildRequires: fcgi-devel
|
|
|
|
# Python stuff
|
|
BuildRequires: python3-future
|
|
BuildRequires: python3-jinja2
|
|
BuildRequires: python3-OWSLib
|
|
BuildRequires: python3-psycopg2
|
|
BuildRequires: python3-pygments
|
|
BuildRequires: python3-PyYAML
|
|
BuildRequires: python3-qscintilla-devel
|
|
BuildRequires: python3-qscintilla-qt5
|
|
BuildRequires: python3-qscintilla-qt5-devel
|
|
BuildRequires: python3-qt5-devel
|
|
BuildRequires: sip-devel
|
|
|
|
# Qca stuff
|
|
BuildRequires: qca-qt5-devel
|
|
BuildRequires: qca-qt5-ossl
|
|
BuildRequires: qscintilla-qt5-devel
|
|
|
|
# Qt5 stuff
|
|
BuildRequires: qt5-qtlocation-devel
|
|
BuildRequires: qt5-qtscript-devel
|
|
BuildRequires: qt5-qtsvg-devel
|
|
BuildRequires: qt5-qttools-static
|
|
BuildRequires: qt5-qtwebkit-devel
|
|
BuildRequires: qt5-qtxmlpatterns-devel
|
|
BuildRequires: qtkeychain-qt5-devel
|
|
BuildRequires: qextserialport-devel
|
|
|
|
# Qwt stuff
|
|
BuildRequires: qwt-devel
|
|
BuildRequires: qwt-qt5-devel
|
|
BuildRequires: qwt-qt5-devel
|
|
|
|
Requires: gpsbabel
|
|
|
|
# We don't want to provide private Python extension libs
|
|
%global __provides_exclude_from ^(%{python3_sitearch}|%{_libdir}/%{name}/plugins)/.*\.so(\.%{version})?$
|
|
|
|
%description
|
|
Geographic Information System (GIS) manages, analyzes, and displays
|
|
databases of geographic information. QGIS supports shape file
|
|
viewing and editing, spatial data storage with PostgreSQL/PostGIS, projection
|
|
on-the-fly, map composition, and a number of other features via a plugin
|
|
interface. QGIS also supports display of various geo-referenced raster and
|
|
Digital Elevation Model (DEM) formats including GeoTIFF, Arc/Info ASCII Grid,
|
|
and USGS ASCII DEM.
|
|
|
|
%package devel
|
|
Summary: Development Libraries for the QGIS
|
|
Group: Development/Libraries
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
%description devel
|
|
Development packages for QGIS including the C header files.
|
|
|
|
%package grass
|
|
Summary: GRASS Support Libraries for QGIS
|
|
Group: Applications/Engineering
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
# The plug-in requires more than just the grass-libs.
|
|
# This questions the sense of the libs package.
|
|
# WARNING: Rebuild QGIS whenever a new version of GRASS is shipped! Even though
|
|
# the soname might stay the same, it won't work anymore.
|
|
#http://hub.qgis.org/issues/5274
|
|
Requires: grass%{?_isa} = %{grass_version}
|
|
|
|
%description grass
|
|
GRASS plugin for QGIS required to interface with the GRASS system.
|
|
|
|
%package -n python3-qgis
|
|
%{?python_provide:%python_provide python3-qgis}
|
|
# Remove before F30
|
|
Provides: %{name}-python = %{version}-%{release}
|
|
Provides: %{name}-python%{?_isa} = %{version}-%{release}
|
|
Obsoletes: %{name}-python < %{version}-%{release}
|
|
Summary: Python integration and plug-ins for QGIS
|
|
Group: Applications/Engineering
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
Requires: gdal-python3
|
|
Requires: python3-future
|
|
Requires: python3-jinja2
|
|
Requires: python3-OWSLib
|
|
Requires: python3-psycopg2
|
|
Requires: python3-pygments
|
|
Requires: python3-PyYAML
|
|
Requires: python3-qscintilla
|
|
Requires: python3-qscintilla-qt5
|
|
Requires: python3-qt5
|
|
%{?_sip_api:Requires: sip-api(%{_sip_api_major}) >= %{_sip_api}}
|
|
|
|
%description -n python3-qgis
|
|
Python integration and plug-ins for QGIS.
|
|
|
|
%package server
|
|
Summary: FCGI-based OGC web map server
|
|
Group: Applications/Engineering
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
Requires: mod_fcgid
|
|
Provides: mapserver = %{version}-%{release}
|
|
Obsoletes: mapserver < 2.8.1-1
|
|
|
|
%description server
|
|
This FastCGI OGC web map server implements OGC WMS 1.3.0 and 1.1.1.
|
|
The services are prepared as regular projects in QGIS. They're rendered using
|
|
the QGIS libraries. The server also supports SLD (Styled Layer Descriptor)
|
|
for styling. Sample configurations for Httpd and Lighttpd are included.
|
|
|
|
Please refer to %{name}-server-README.fedora for details!
|
|
|
|
%prep
|
|
%setup -q
|
|
%patch0 -p0 -b .lib64
|
|
|
|
# Remove executable permissions from source code files
|
|
find . \( -name "*.cpp" -o -name "*.h" \) -type f -perm /111 -execdir chmod -x {} \+
|
|
|
|
# Readme file for QGIS server configuration and Lighttpd example
|
|
install -pm0644 %{SOURCE4} .
|
|
|
|
# Delete bundled libs
|
|
# Using external QEXTSERIALPORT causes segfaults
|
|
# rm -rf src/core/gps/qextserialport/
|
|
|
|
gzip ChangeLog
|
|
|
|
|
|
%build
|
|
|
|
%cmake \
|
|
%{_cmake_skip_rpath} \
|
|
-D QGIS_LIB_SUBDIR=%{_lib} \
|
|
-D QGIS_MANUAL_SUBDIR=/share/man \
|
|
-D QGIS_CGIBIN_SUBDIR=%{_libexecdir}/%{name} \
|
|
-D WITH_BINDINGS:BOOL=TRUE \
|
|
-D WITH_GRASS7:BOOL=TRUE \
|
|
-D GRASS_PREFIX7=%{_libdir}/grass72 \
|
|
-D WITH_CUSTOM_WIDGETS:BOOL=TRUE \
|
|
-D BINDINGS_GLOBAL_INSTALL:BOOL=TRUE \
|
|
-D ENABLE_TESTS:BOOL=FALSE \
|
|
-D WITH_QSPATIALITE:BOOL=TRUE \
|
|
-D WITH_SERVER:BOOL=TRUE \
|
|
.
|
|
|
|
# Using external QEXTSERIALPORT causes segfaults
|
|
# -D WITH_INTERNAL_QEXTSERIALPORT:BOOL=FALSE \
|
|
# -D QEXTSERIALPORT_INCLUDE_DIR:STRING=%{_includedir}/QtExtSerialPort \
|
|
|
|
make %{?_smp_mflags}
|
|
|
|
|
|
%install
|
|
# Necessary for the test suite
|
|
#export LD_LIBRARY_PATH=%{_builddir}%{name}-%{version}/output/%{_lib}
|
|
make install DESTDIR=%{buildroot}
|
|
|
|
# Install desktop file without connecting proprietary file types
|
|
desktop-file-install \
|
|
--vendor="fedora" \
|
|
--remove-mime-type="application/x-raster-ecw" \
|
|
--remove-mime-type="application/x-raster-mrsid" \
|
|
--dir=%{buildroot}%{_datadir}/applications \
|
|
debian/qgis.desktop
|
|
|
|
# Install MIME type definitions
|
|
install -d %{buildroot}%{_datadir}/mime/packages
|
|
install -pm0644 %{SOURCE5} \
|
|
%{buildroot}%{_datadir}/mime/packages/%{name}.xml
|
|
|
|
# Install application and MIME icons
|
|
for size in 8x8 16x16 22x22 24x24 32x32 36x36 42x42 48x48 64x64 72x72 80x80 96x96 128x128 192x192 256x256 512x512; do
|
|
install -pd %{buildroot}%{_datadir}/icons/hicolor/$size/apps
|
|
install -pm0644 debian/icons/%{name}-icon$size.png %{buildroot}%{_datadir}/icons/hicolor/$size/apps/qgis.png
|
|
done
|
|
|
|
for size in 8x8 16x16 22x22 24x24 32x32 36x36 42x42 48x48 64x64 72x72 80x80 96x96 128x128; do
|
|
install -pd %{buildroot}%{_datadir}/icons/hicolor/$size/mimetypes
|
|
install -pm0644 debian/icons/qgis-mime-icon$size.png %{buildroot}%{_datadir}/icons/hicolor/$size/mimetypes/qgis-mime.png
|
|
done
|
|
|
|
install -pd %{buildroot}%{_datadir}/pixmaps
|
|
install -pd %{buildroot}%{_datadir}/icons/hicolor/scalable/apps
|
|
|
|
install -pm0644 images/icons/%{name}-icon-512x512.png %{buildroot}%{_datadir}/pixmaps/%{name}.png
|
|
install -pm0644 images/icons/%{name}_icon.svg %{buildroot}%{_datadir}/pixmaps/%{name}.svg
|
|
install -pm0644 images/icons/%{name}_icon.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
|
|
install -pm0644 images/icons/%{name}-mime-icon.png %{buildroot}%{_datadir}/pixmaps/%{name}-mime.png
|
|
install -pm0644 images/icons/%{name}_mime_icon.svg %{buildroot}%{_datadir}/pixmaps/%{name}-mime.png
|
|
|
|
# Install basic QGIS Mapserver configuration for Apache
|
|
install -pd %{buildroot}%{_sysconfdir}/httpd/conf.d
|
|
install -pm0644 %{SOURCE2} \
|
|
%{buildroot}%{_sysconfdir}/httpd/conf.d/qgis-server.conf
|
|
|
|
# See qgis-server-README.fedora
|
|
rm -f %{buildroot}%{_libexecdir}/%{name}/wms_metadata.xml
|
|
rm -f %{buildroot}%{_libexecdir}/%{name}/admin.sld
|
|
|
|
# Remove install instructions
|
|
rm -f %{buildroot}%{_datadir}/%{name}/doc/INSTALL*
|
|
|
|
%find_lang %{name} --with-qt
|
|
|
|
|
|
%post
|
|
/sbin/ldconfig
|
|
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
|
|
touch --no-create %{_datadir}/mime/packages &> /dev/null || :
|
|
|
|
%postun
|
|
/sbin/ldconfig
|
|
if [ $1 -eq 0 ] ; then
|
|
touch --no-create %{_datadir}/icons/hicolor &>/dev/null
|
|
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|
touch --no-create %{_datadir}/mime/packages &> /dev/null || :
|
|
update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || :
|
|
fi
|
|
|
|
%posttrans
|
|
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|
update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || :
|
|
|
|
%post grass -p /sbin/ldconfig
|
|
|
|
%postun grass -p /sbin/ldconfig
|
|
|
|
%post -n python3-qgis -p /sbin/ldconfig
|
|
|
|
%postun -n python3-qgis -p /sbin/ldconfig
|
|
|
|
%files -f %{name}.lang
|
|
%doc BUGS NEWS Exception_to_GPL_for_Qt.txt ChangeLog.gz
|
|
# QGIS shows the following files in the GUI, including the license text
|
|
%doc %{_datadir}/%{name}/doc/
|
|
%dir %{_datadir}/%{name}/i18n/
|
|
%lang(zh-Hans) %{_datadir}/%{name}/i18n/%{name}_zh-Hans.qm
|
|
%lang(zh-Hant) %{_datadir}/%{name}/i18n/%{name}_zh-Hant.qm
|
|
%{_libdir}/lib%{name}_native.so.*
|
|
%{_libdir}/lib%{name}_app.so.*
|
|
%{_libdir}/lib%{name}_analysis.so.*
|
|
%{_libdir}/lib%{name}_core.so.*
|
|
%{_libdir}/lib%{name}_gui.so.*
|
|
%{_libdir}/%{name}/
|
|
%{_qt5_prefix}/plugins/sqldrivers/libqsqlspatialite.so
|
|
%{_bindir}/%{name}
|
|
%{_mandir}/man1/%{name}.1*
|
|
%dir %{_datadir}/%{name}/
|
|
%{_datadir}/mime/packages/qgis.xml
|
|
%{_datadir}/pixmaps/
|
|
%{_datadir}/icons/hicolor/*/apps/*
|
|
%{_datadir}/icons/hicolor/*/mimetypes/*
|
|
%{_datadir}/applications/*%{name}.desktop
|
|
%{_datadir}/%{name}/qgis_global_settings.ini
|
|
%{_datadir}/%{name}/images/
|
|
%{_datadir}/%{name}/resources/
|
|
%{_datadir}/%{name}/svg/
|
|
%exclude %{_libdir}/libqgisgrass*.so.*
|
|
%exclude %{_libdir}/%{name}/plugins/libgrassprovider*.so
|
|
%exclude %{_libdir}/%{name}/plugins/libgrassrasterprovider*.so
|
|
%exclude %{_libdir}/%{name}/plugins/libgrassplugin*.so
|
|
%exclude %{_libdir}/%{name}/grass/
|
|
|
|
%files devel
|
|
%{_datadir}/%{name}/FindQGIS.cmake
|
|
%{_includedir}/%{name}/
|
|
%{_libdir}/lib%{name}*.so
|
|
%{?_qt5_plugindir}/designer/libqgis_customwidgets.so*
|
|
|
|
%files grass
|
|
%{_libdir}/lib%{name}grass*.so.*
|
|
%{_libdir}/%{name}/plugins/libgrassprovider*.so
|
|
%{_libdir}/%{name}/plugins/libgrassrasterprovider*.so
|
|
%{_libdir}/%{name}/plugins/libgrassplugin*.so
|
|
%{_libdir}/%{name}/grass/
|
|
%{_datadir}/%{name}/grass/
|
|
|
|
%files -n python3-qgis
|
|
%{_libdir}/libqgispython.so.*
|
|
%{_datadir}/%{name}/python/
|
|
%{python3_sitearch}/%{name}/
|
|
%{python3_sitearch}/PyQt5/uic/widget-plugins/
|
|
%exclude %{python3_sitearch}/%{name}/server/
|
|
%exclude %{python3_sitearch}/%{name}/_server.so
|
|
|
|
%files server
|
|
%doc src/server/admin.sld src/server/wms_metadata.xml %{name}-server-README.fedora
|
|
%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}-server.conf
|
|
%{_libdir}/lib%{name}_server.so.*
|
|
%{_libexecdir}/%{name}/
|
|
%{python3_sitearch}/%{name}/server/
|
|
%{python3_sitearch}/%{name}/_server.so
|
|
|
|
|
|
%changelog
|
|
* Thu Sep 28 2017 Daniele Viganò <daniele@vigano.me> - 2.99-1
|
|
- Unstable build
|