# vi:syntax=spec # TODO: Run test suite (see debian/rules) # Template variables # - _version # - _relver # - _timestamp (optional) # Force the python interpreter to python3: # brp-python-bytecompile is unable to identify # the proper required version of python for # py files located under /usr/share/qgis/python/plugins %global __python %{__python3} %define grass_prefix $(pkg-config --variable=prefix grass) %if 0 > 0 # Epoch is set only when building packages from master Epoch: 0 %define configure_with_sha -D SHA=%(sha=1; echo ${sha##git}) %define combinedversion %{epoch}:%{version} %define builddate %(date -d @0 '+%a %b %d %Y') %else %define combinedversion %{version} %define builddate %(date '+%a %b %d %Y') %endif Name: qgis Version: 3.40.0 Release: 1%{?dist} Summary: A user friendly Open Source Geographic Information System License: GPLv2+ URL: http://www.qgis.org Source0: http://qgis.org/downloads/%{name}-%{version}.tar.bz2 # Sample configuration files for QGIS server Source1: %{name}-server-httpd.conf Source2: %{name}-server-nginx.conf Source3: %{name}-server-fcgi.socket Source4: %{name}-server-fcgi.service Source5: %{name}-server-README.fedora # MIME definitions # Based on debian/qgis.xml but excluding already defined or proprietary types Source6: %{name}-mime.xml # Compiling stuff BuildRequires: bison BuildRequires: clang BuildRequires: cmake BuildRequires: expat-devel BuildRequires: flex BuildRequires: desktop-file-utils # Geo stuff BuildRequires: gdal-devel %if 0%{?fedora} >= 37 BuildRequires: python3-gdal %else BuildRequires: gdal-python3 %endif BuildRequires: geos-devel BuildRequires: gsl-devel BuildRequires: libspatialite-devel BuildRequires: PDAL BuildRequires: PDAL-devel BuildRequires: proj-devel BuildRequires: spatialindex-devel BuildRequires: grass-devel # Other stuff BuildRequires: exiv2-devel BuildRequires: gsl-devel BuildRequires: laszip-devel BuildRequires: libzip-devel BuildRequires: libzstd-devel BuildRequires: postgresql-devel BuildRequires: sqlite-devel BuildRequires: hdf5-devel BuildRequires: netcdf-devel BuildRequires: fcgi-devel BuildRequires: protobuf-compiler BuildRequires: protobuf-devel BuildRequires: protobuf-lite-devel BuildRequires: draco-devel # OpenCL BuildRequires: opencl-headers BuildRequires: ocl-icd-devel # Python stuff BuildRequires: python3-devel BuildRequires: python3-jinja2 BuildRequires: python3-OWSLib BuildRequires: python3-psycopg2 BuildRequires: python3-pygments BuildRequires: python3-PyYAML BuildRequires: python3-qscintilla-qt5 BuildRequires: python3-qscintilla-qt5-devel BuildRequires: python3-qt5-devel BuildRequires: sip6 BuildRequires: PyQt-builder # Qca stuff BuildRequires: qca-qt5-devel BuildRequires: qca-qt5-ossl BuildRequires: qscintilla-qt5-devel # Qt5 stuff BuildRequires: qt5-qtlocation-devel BuildRequires: qt5-qtmultimedia-devel BuildRequires: qt5-qtsvg-devel BuildRequires: qt5-qttools-static BuildRequires: qt5-qtwebkit-devel BuildRequires: qtkeychain-qt5-devel BuildRequires: qt5-qtserialport-devel BuildRequires: qt5-qt3d-devel BuildRequires: qt5-qtbase-private-devel # Qwt stuff BuildRequires: qwt-qt5-devel # GDAL must be explicit. It is required by some raster tools # like Warp (Reproject) which relies on gdalwarp Requires: gdal # Installation of QCA plugins must be explicit Requires: qca-qt5-ossl Requires: gpsbabel Requires: PDAL Requires: qt5-qtcharts # 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 Requires: %{name}%{?_isa} = %{combinedversion}-%{release} %description devel Development packages for QGIS including the C header files. %package grass Summary: GRASS Support Libraries for QGIS Requires: %{name}%{?_isa} = %{combinedversion}-%{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. # https://github.com/qgis/QGIS/issues/14999 Requires: grass%{?_isa} %description grass GRASS plugin for QGIS required to interface with the GRASS system. %package -n python3-qgis %{?python_provide:%python_provide python3-qgis} Provides: %{name}-python = %{combinedversion}-%{release} Provides: %{name}-python%{?_isa} = %{combinedversion}-%{release} Summary: Python integration and plug-ins for QGIS Requires: %{name}%{?_isa} = %{combinedversion}-%{release} %if 0%{?fedora} >= 37 Requires: python3-gdal %else Requires: gdal-python3 %endif Requires: gdal-python-tools Requires: python3-jinja2 Requires: python3-OWSLib Requires: python3-psycopg2 Requires: python3-pygments Requires: python3-PyYAML Requires: python3-qscintilla-qt5 Requires: python3-qt5 %{?_sip_api:Requires: python3-pyqt5-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 Requires: %{name}%{?_isa} = %{combinedversion}-%{release} 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 Nginx are included. Please refer to %{name}-server-README.fedora for details! %prep %setup -q # 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 HTTPD and Nginx example install -pm0644 %{SOURCE1} . install -pm0644 %{SOURCE2} . install -pm0644 %{SOURCE3} . install -pm0644 %{SOURCE4} . install -pm0644 %{SOURCE5} . 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 \ %if 0%{?fedora} >= 36 -D WITH_GRASS8:BOOL=TRUE \ -D GRASS_PREFIX8=%{grass_prefix} \ %else -D WITH_GRASS7:BOOL=TRUE \ -D GRASS_PREFIX7=%{grass_prefix} \ %endif -D WITH_CUSTOM_WIDGETS:BOOL=TRUE \ -D BINDINGS_GLOBAL_INSTALL:BOOL=TRUE \ -D ENABLE_TESTS:BOOL=FALSE \ -D WITH_EPT:BOOL=TRUE \ -D WITH_PDAL:BOOL=TRUE \ -D WITH_QSPATIALITE:BOOL=TRUE \ -D WITH_SERVER:BOOL=TRUE \ -D WITH_3D:BOOL=TRUE \ -D USE_OPENCL:BOOL=TRUE \ %{configure_with_sha} \ . %cmake_build %install # Necessary for the test suite #export LD_LIBRARY_PATH=%{_builddir}%{name}-%{version}/output/%{_lib} %cmake_install # Install MIME type definitions install -d %{buildroot}%{_datadir}/mime/packages install -pm0644 %{SOURCE6} \ %{buildroot}%{_datadir}/mime/packages/%{name}.xml # 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 %files -f %{name}.lang %doc BUGS NEWS.md 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}/lib%{name}_3d.so.* %{_libdir}/%{name}/ %{?_qt5_plugindir}/sqldrivers/libqsqlspatialite.so %{_bindir}/%{name} %{_bindir}/%{name}_process %{_mandir}/man1/%{name}.1* %dir %{_datadir}/%{name}/ %{_datadir}/mime/packages/qgis.xml %{_datadir}/metainfo/org.qgis.qgis.appdata.xml %{_datadir}/icons/hicolor/*/apps/* %{_datadir}/icons/hicolor/*/mimetypes/* %{_datadir}/applications/*%{name}.desktop %{_datadir}/%{name}/images/ %{_datadir}/%{name}/resources/ %{_datadir}/%{name}/svg/ %exclude %{_libdir}/libqgisgrass*.so.* %exclude %{_libdir}/%{name}/plugins/libplugin_grass*.so %exclude %{_libdir}/%{name}/plugins/libprovider_grassraster*.so %exclude %{_libdir}/%{name}/plugins/libprovider_grass*.so %exclude %{_libdir}/%{name}/server/ %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/libplugin_grass*.so %{_libdir}/%{name}/plugins/libprovider_grassraster*.so %{_libdir}/%{name}/plugins/libprovider_grass*.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 %{name}-server-README.fedora %doc %{name}-server-httpd.conf %{name}-server-nginx.conf %{name}-server-fcgi.socket %{name}-server-fcgi.service %{_bindir}/%{name}_mapserver %{_libdir}/%{name}/server/ %{_libdir}/lib%{name}_server.so.* %{_libexecdir}/%{name}/ %{python3_sitearch}/%{name}/server/ %{python3_sitearch}/%{name}/_server.so %changelog * %{builddate} Daniele ViganĂ² 3.40.0-1 - Automatic build