337 lines
10 KiB
RPMSpec
337 lines
10 KiB
RPMSpec
|
#
|
||
|
# spec file for package qgis
|
||
|
#
|
||
|
# Copyright (c) 2024 SUSE LLC
|
||
|
#
|
||
|
# All modifications and additions to the file contributed by third parties
|
||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||
|
# upon. The license for this file, and modifications and additions to the
|
||
|
# file, is the same license as for the pristine package itself (unless the
|
||
|
# license for the pristine package is not an Open Source License, in which
|
||
|
# case the license is the MIT License). An "Open Source License" is a
|
||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||
|
# published by the Open Source Initiative.
|
||
|
|
||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||
|
#
|
||
|
|
||
|
|
||
|
%define is_ltr 0
|
||
|
|
||
|
%bcond_without grass
|
||
|
%if %is_ltr
|
||
|
Name: qgis-ltr
|
||
|
%else
|
||
|
Name: qgis
|
||
|
%endif
|
||
|
Version: 3.38.2
|
||
|
Release: 0
|
||
|
Summary: A Geographic Information System (GIS)
|
||
|
License: GPL-2.0-only
|
||
|
Group: Productivity/Graphics/Visualization/Other
|
||
|
URL: https://qgis.org/
|
||
|
Source: https://qgis.org/downloads/qgis-%{version}.tar.bz2
|
||
|
Source1: https://qgis.org/downloads/qgis-%{version}.tar.bz2.sha256
|
||
|
Source2: %{name}.rpmlintrc
|
||
|
Source3: qgis_sample_data.zip
|
||
|
# PATCH-FIX-OPENSUSE - adapt include path of fastcgi
|
||
|
Patch1: fix-fastcgi-include.patch
|
||
|
# PATCH-FIX-UPSTREAM - scan for pdal-config instead of pdal in cmake
|
||
|
Patch2: qgis-fix-cmake-findpdal.patch
|
||
|
BuildRequires: FastCGI-devel
|
||
|
BuildRequires: PDAL-devel
|
||
|
BuildRequires: bison >= 2.4
|
||
|
BuildRequires: cmake >= 3.12.0
|
||
|
BuildRequires: fdupes
|
||
|
BuildRequires: filesystem
|
||
|
BuildRequires: flex >= 2.5.6
|
||
|
BuildRequires: geos-devel >= 3.9
|
||
|
BuildRequires: libQt5Sql-private-headers-devel
|
||
|
BuildRequires: libQt5Sql5-mysql
|
||
|
BuildRequires: libQt5Sql5-postgresql
|
||
|
# Add the 3 main db we should access
|
||
|
# also have them in requires
|
||
|
BuildRequires: libQt5Sql5-sqlite
|
||
|
BuildRequires: libexiv2-devel
|
||
|
BuildRequires: libqscintilla_qt5-devel
|
||
|
BuildRequires: libspatialindex-devel
|
||
|
BuildRequires: libzstd-devel
|
||
|
BuildRequires: ocl-icd-devel
|
||
|
BuildRequires: opencl-cpp-headers
|
||
|
BuildRequires: pkgconfig
|
||
|
BuildRequires: poppler-tools
|
||
|
BuildRequires: protobuf-devel
|
||
|
BuildRequires: python3-GDAL
|
||
|
BuildRequires: python3-Jinja2
|
||
|
BuildRequires: python3-OWSLib
|
||
|
BuildRequires: python3-PyYAML
|
||
|
BuildRequires: python3-psycopg2
|
||
|
BuildRequires: python3-pygments
|
||
|
BuildRequires: python3-pyqt-builder
|
||
|
BuildRequires: python3-qscintilla-qt5
|
||
|
BuildRequires: python3-qscintilla-qt5-sip
|
||
|
BuildRequires: python3-qt5-devel
|
||
|
BuildRequires: python3-sip-devel
|
||
|
BuildRequires: python3-termcolor
|
||
|
BuildRequires: sqlite-devel >= 3.12.0
|
||
|
BuildRequires: unzip
|
||
|
BuildRequires: update-desktop-files
|
||
|
BuildRequires: (qwt6-devel or qwt6-qt5-devel)
|
||
|
BuildRequires: cmake(Qt53DAnimation)
|
||
|
BuildRequires: cmake(Qt53DCore)
|
||
|
BuildRequires: cmake(Qt53DExtras)
|
||
|
BuildRequires: cmake(Qt53DInput)
|
||
|
BuildRequires: cmake(Qt53DLogic)
|
||
|
BuildRequires: cmake(Qt53DQuick)
|
||
|
BuildRequires: cmake(Qt53DQuickAnimation)
|
||
|
BuildRequires: cmake(Qt53DQuickExtras)
|
||
|
BuildRequires: cmake(Qt53DQuickInput)
|
||
|
BuildRequires: cmake(Qt53DQuickRender)
|
||
|
BuildRequires: cmake(Qt53DQuickScene2D)
|
||
|
BuildRequires: cmake(Qt53DRender)
|
||
|
BuildRequires: cmake(Qt5Concurrent)
|
||
|
BuildRequires: cmake(Qt5Core)
|
||
|
BuildRequires: cmake(Qt5DBus)
|
||
|
BuildRequires: cmake(Qt5Gui)
|
||
|
BuildRequires: cmake(Qt5Keychain) >= 0.5
|
||
|
BuildRequires: cmake(Qt5Network)
|
||
|
BuildRequires: cmake(Qt5Positioning)
|
||
|
BuildRequires: cmake(Qt5PrintSupport)
|
||
|
BuildRequires: cmake(Qt5Script)
|
||
|
BuildRequires: cmake(Qt5SerialPort)
|
||
|
BuildRequires: cmake(Qt5Sql)
|
||
|
BuildRequires: cmake(Qt5Svg)
|
||
|
BuildRequires: cmake(Qt5Test)
|
||
|
BuildRequires: cmake(Qt5UiTools)
|
||
|
BuildRequires: cmake(Qt5Widgets)
|
||
|
BuildRequires: cmake(Qt5Xml)
|
||
|
BuildRequires: pkgconfig(draco)
|
||
|
BuildRequires: pkgconfig(expat) >= 1.95
|
||
|
# Requires at least gdal 3.1 for GeoTIFF and Proj >= 6 - https://github.com/qgis/QGIS/issues/36699#issuecomment-633539864
|
||
|
BuildRequires: pkgconfig(gdal) >= 3.2.0
|
||
|
BuildRequires: pkgconfig(Qt5Qwt6)
|
||
|
BuildRequires: pkgconfig(gsl) >= 1.8
|
||
|
BuildRequires: pkgconfig(libpq) > 9.4
|
||
|
BuildRequires: pkgconfig(libzip)
|
||
|
BuildRequires: pkgconfig(netcdf)
|
||
|
BuildRequires: pkgconfig(pdal) >= 2.2.0
|
||
|
BuildRequires: pkgconfig(proj) >= 7.2.0
|
||
|
BuildRequires: pkgconfig(python3) >= 3.7
|
||
|
BuildRequires: pkgconfig(qca2-qt5)
|
||
|
BuildRequires: pkgconfig(spatialite) >= 4.2.0
|
||
|
# Force requires of those 3 main component.
|
||
|
Requires: libQt5Sql5-mysql
|
||
|
Requires: libQt5Sql5-postgresql
|
||
|
Requires: libQt5Sql5-sqlite
|
||
|
# proj.db is required
|
||
|
Requires: proj
|
||
|
Requires: pdal
|
||
|
Requires: python3-GDAL
|
||
|
Requires: python3-Jinja2
|
||
|
Requires: python3-OWSLib
|
||
|
Requires: python3-PyYAML
|
||
|
Requires: python3-Pygments
|
||
|
Requires: python3-numpy
|
||
|
Requires: python3-psycopg2
|
||
|
# Those are not picked by obs
|
||
|
Requires: python3-qscintilla-qt5
|
||
|
Requires: python3-termcolor
|
||
|
Recommends: %{name}-sample-data
|
||
|
Recommends: apache2-mod_fcgid
|
||
|
Recommends: gpsbabel
|
||
|
Recommends: mod_spatialite
|
||
|
# It's in Application:Geo, but not in Factory
|
||
|
Suggests: saga-gis
|
||
|
%if %is_ltr
|
||
|
Conflicts: qgis
|
||
|
%else
|
||
|
Conflicts: qgis-ltr
|
||
|
%endif
|
||
|
Conflicts: qgis-master
|
||
|
Obsoletes: qgis2 < %{version}
|
||
|
%if %{with grass}
|
||
|
BuildRequires: grass-devel >= 7.2
|
||
|
%endif
|
||
|
%ifarch ppc64le
|
||
|
BuildRequires: memory-constraints
|
||
|
%endif
|
||
|
|
||
|
%package devel
|
||
|
Summary: Development Libraries for QGIS
|
||
|
Group: Development/Libraries/C and C++
|
||
|
Requires: %{name} = %{version}
|
||
|
Requires: python3-qt5-devel
|
||
|
%if %{with grass}
|
||
|
%package plugin-grass
|
||
|
Summary: GRASS Support Libraries for QGIS
|
||
|
Group: Productivity/Graphics/Visualization/Other
|
||
|
Requires: %{name} = %{version}
|
||
|
Requires: grass > 7.0
|
||
|
Requires: grass-doc
|
||
|
Obsoletes: %{name}-plugin-grass < %{version}
|
||
|
|
||
|
%description plugin-grass
|
||
|
GRASS plugin for QGIS required to interface with GRASS system.
|
||
|
%endif
|
||
|
|
||
|
%package sample-data
|
||
|
%define sampledir sample-data
|
||
|
Summary: QGIS sample data
|
||
|
Group: Productivity/Graphics/Visualization/Other
|
||
|
BuildArch: noarch
|
||
|
|
||
|
%description
|
||
|
QGIS is a Geographic Information System (GIS). QGIS supports vector,
|
||
|
raster, OWS and database formats. QGIS can be used to browse and
|
||
|
create map data on the computer. It supports many common spatial data
|
||
|
formats (e.g. ESRI ShapeFile, geotiff). QGIS supports plugins to do
|
||
|
things like display tracks from a GPS.
|
||
|
|
||
|
%description devel
|
||
|
Development packages for QGIS, including the C header files.
|
||
|
|
||
|
%description sample-data
|
||
|
QGIS sample data with raster, vector, gps files and a GRASS location from the Alaska area.
|
||
|
|
||
|
%lang_package
|
||
|
|
||
|
%prep
|
||
|
%autosetup -p1 -n qgis-%{version}
|
||
|
# Remove bad env and python version in grass plugin
|
||
|
sed -i 's,^#!%{_bindir}/env python$,#!%{_bindir}/python3,g' src/plugins/grass/scripts/*.py
|
||
|
sed -i 's,^#!%{_bindir}/env python3$,#!%{_bindir}/python3,g' src/plugins/grass/scripts/*.py
|
||
|
|
||
|
%build
|
||
|
%define _lto_cflags %{nil}
|
||
|
|
||
|
export CFLAGS="%{optflags}"
|
||
|
export QTDIR=%{_prefix}
|
||
|
export PATH=$PATH:$QTDIR/bin
|
||
|
|
||
|
%cmake \
|
||
|
-DQGIS_LIB_SUBDIR=%{_lib} \
|
||
|
-DWITH_3D=TRUE \
|
||
|
-DWITH_BINDINGS=TRUE \
|
||
|
%if %{with grass}
|
||
|
-DWITH_GRASS=TRUE \
|
||
|
-DWITH_GRASS7=TRUE \
|
||
|
-DWITH_GRASS8=TRUE \
|
||
|
%if 0%{?suse_version} > 1500
|
||
|
-DGRASS_PREFIX7=`cat %{_sysconfdir}/GRASSDIR` \
|
||
|
-DGRASS_PREFIX8=`cat %{_sysconfdir}/GRASSDIR` \
|
||
|
%else
|
||
|
-DGRASS_PREFIX7=%{_libdir}/grass78 \
|
||
|
-DGRASS_PREFIX8=%{_libdir}/grass82 \
|
||
|
%endif
|
||
|
%endif
|
||
|
-DWITH_QSPATIALITE=TRUE \
|
||
|
-DWITH_SERVER=TRUE \
|
||
|
-DWITH_SERVER_PLUGINS=TRUE \
|
||
|
-DWITH_POSTGRESQL=TRUE \
|
||
|
-DWITH_PDAL=TRUE \
|
||
|
-DWITH_QTWEBKIT=FALSE \
|
||
|
-DFCGI_INCLUDE_DIR=%{_includedir}/fastcgi \
|
||
|
-DPOSTGRES_LIBRARY=%{_libdir}/libpq.so \
|
||
|
-DPOSTGRES_INCLUDE_DIR=%{_includedir}/pgsql \
|
||
|
-DQGIS_PLUGIN_SUBDIR=%{_lib}/qgis \
|
||
|
-DQGIS_MANUAL_SUBDIR=share/man \
|
||
|
-DQWT_INCLUDE_DIR=%{_includedir}/qt5/qwt6 \
|
||
|
-DQCA_INCLUDE_DIR=%{_includedir}/qt5/Qca-qt5/QtCrypto \
|
||
|
-DCMAKE_SKIP_RPATH=OFF \
|
||
|
-DOpenCL_INCLUDE_DIR=%{_includedir} \
|
||
|
-Wno-dev
|
||
|
|
||
|
export QTDIR=%{_prefix}
|
||
|
export PATH=$PATH:$QTDIR/bin
|
||
|
%ifarch ppc64le
|
||
|
# avoid OOM failure on power8-01 builder
|
||
|
%limit_build -m 1300
|
||
|
%endif
|
||
|
%make_jobs
|
||
|
|
||
|
%install
|
||
|
%cmake_install
|
||
|
|
||
|
mkdir -p %{buildroot}%{_datadir}/pixmaps
|
||
|
ln -s ../qgis/images/icons/qgis-icon-512x512.png %{buildroot}/%{_datadir}/pixmaps/qgis.png
|
||
|
|
||
|
# Rename .desktop file
|
||
|
mv %{buildroot}%{_datadir}/applications/org.qgis.qgis.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop
|
||
|
|
||
|
# Install sample data
|
||
|
pushd %{buildroot}%{_datadir}/qgis
|
||
|
unzip %{SOURCE3}
|
||
|
mv qgis_sample_data %{sampledir}
|
||
|
find %{sampledir} -depth \( -name .tmp -o -name .bash\* -o -name \*~ \) -exec rm -r {} +
|
||
|
popd
|
||
|
|
||
|
%find_lang %{name} --with-qt %{?no_lang_C}
|
||
|
|
||
|
%fdupes -s %{buildroot}
|
||
|
|
||
|
%post -p /sbin/ldconfig
|
||
|
%postun -p /sbin/ldconfig
|
||
|
|
||
|
%post plugin-grass -p /sbin/ldconfig
|
||
|
%postun plugin-grass -p /sbin/ldconfig
|
||
|
|
||
|
%files
|
||
|
%{_bindir}/*
|
||
|
%{_libdir}/libqgis*so*
|
||
|
%{_libdir}/qt5/plugins/sqldrivers/libqsqlspatialite.so
|
||
|
%{_mandir}/man1/*
|
||
|
%{_datadir}/qgis
|
||
|
%exclude %{_datadir}/qgis/i18n/*
|
||
|
%{_datadir}/applications/%{name}.desktop
|
||
|
%{_datadir}/pixmaps/qgis.png
|
||
|
# Own directories for icon size not provided by hicolor-icon-theme
|
||
|
%dir %{_datadir}/icons/hicolor/42x42
|
||
|
%dir %{_datadir}/icons/hicolor/42x42/apps
|
||
|
%dir %{_datadir}/icons/hicolor/42x42/mimetypes
|
||
|
%dir %{_datadir}/icons/hicolor/80x80
|
||
|
%dir %{_datadir}/icons/hicolor/80x80/apps
|
||
|
%dir %{_datadir}/icons/hicolor/80x80/mimetypes
|
||
|
%dir %{_datadir}/icons/hicolor/8x8
|
||
|
%dir %{_datadir}/icons/hicolor/8x8/apps
|
||
|
%dir %{_datadir}/icons/hicolor/8x8/mimetypes
|
||
|
%{_datadir}/icons/hicolor/*/apps/*.png
|
||
|
%{_datadir}/icons/hicolor/*/apps/*.svg
|
||
|
%{_datadir}/icons/hicolor/*/mimetypes/*.png
|
||
|
%{_datadir}/icons/hicolor/*/mimetypes/*.svg
|
||
|
%{_datadir}/metainfo/org.qgis.qgis.appdata.xml
|
||
|
%dir %{_libdir}/qgis/
|
||
|
%{_libdir}/qgis/*
|
||
|
%if %{with grass}
|
||
|
%exclude %{_libdir}/libqgisgrass?.so
|
||
|
%exclude %{_libdir}/libqgisgrass?.so.*
|
||
|
%exclude %{_libdir}/qgis/libplugin_grass?.so
|
||
|
%exclude %{_libdir}/qgis/libprovider_grass?.so
|
||
|
%exclude %{_libdir}/qgis/libprovider_grassraster?.so
|
||
|
%exclude %{_libdir}/qgis/grass
|
||
|
%endif
|
||
|
%exclude %{_datadir}/qgis/%{sampledir}
|
||
|
%license COPYING
|
||
|
%doc BUGS README.md
|
||
|
|
||
|
%files devel
|
||
|
%{_includedir}/qgis/
|
||
|
|
||
|
%if %{with grass}
|
||
|
%files plugin-grass
|
||
|
%{_libdir}/qgis/libplugin_grass?.so
|
||
|
%{_libdir}/qgis/libprovider_grass?.so
|
||
|
%{_libdir}/qgis/libprovider_grassraster?.so
|
||
|
%{_libdir}/libqgisgrass?.so
|
||
|
%{_libdir}/libqgisgrass?.so.*
|
||
|
%defattr(755,root,root)
|
||
|
%{_libdir}/qgis/grass
|
||
|
%endif
|
||
|
|
||
|
%files sample-data
|
||
|
%dir %{_datadir}/qgis
|
||
|
%{_datadir}/qgis/%{sampledir}
|
||
|
|
||
|
%files lang -f %{name}.lang
|
||
|
|
||
|
%changelog
|