aboutsummaryrefslogtreecommitdiff
path: root/graphics/qgis-ltr
diff options
context:
space:
mode:
authorLoïc Bartoletti <lbartoletti@FreeBSD.org>2020-08-29 19:59:41 +0000
committerLoïc Bartoletti <lbartoletti@FreeBSD.org>2020-08-29 19:59:41 +0000
commit1fc7b55791077eccee349dd8a64da1ab2c25a422 (patch)
tree8c13f88e8d8ec7c1fb7a4f05c16a32529e843609 /graphics/qgis-ltr
parent76d85793015dd78520ecfb9fe65317beda042ac9 (diff)
downloadports-1fc7b55791077eccee349dd8a64da1ab2c25a422.tar.gz
ports-1fc7b55791077eccee349dd8a64da1ab2c25a422.zip
graphics/qgis-ltr: Update to 3.10.9
- Update to 3.10.9 - Remove patch file for QT 5.15.0 (upstream now) - Add a license file - Add some Python dependencies: geopandas, pandas, jedi, nltk, psutil, pyrsgis, and qt5-quick - Add INSTALLS_ICONS=yes - Remove files/patch-src_analysis_interpolation_qgsinterpolator.h - Update pkg-plist - Prepare for sip5 and PyQT 5.15 PR: 248888 Submitted by: Rainer Hurling (maintainer) Reviewed by: fernape, lbartoletti
Notes
Notes: svn path=/head/; revision=546945
Diffstat (limited to 'graphics/qgis-ltr')
-rw-r--r--graphics/qgis-ltr/Makefile124
-rw-r--r--graphics/qgis-ltr/distinfo14
-rw-r--r--graphics/qgis-ltr/files/patch-CMakeLists.txt19
-rw-r--r--graphics/qgis-ltr/files/patch-cmake_FindPyQt5.py81
-rw-r--r--graphics/qgis-ltr/files/patch-cmake_FindQGIS.cmake20
-rw-r--r--graphics/qgis-ltr/files/patch-cmake_FindQtQmlTools.cmake16
-rw-r--r--graphics/qgis-ltr/files/patch-cmake_FindQwt.cmake10
-rw-r--r--graphics/qgis-ltr/files/patch-cmake_FindSIP.cmake17
-rw-r--r--graphics/qgis-ltr/files/patch-cmake_FindSIP.py47
-rw-r--r--graphics/qgis-ltr/files/patch-cmake_SIPMacros.cmake15
-rw-r--r--graphics/qgis-ltr/files/patch-src_analysis_interpolation_qgsinterpolator.h10
-rw-r--r--graphics/qgis-ltr/files/patch-src_core_CMakeLists.txt17
-rw-r--r--graphics/qgis-ltr/pkg-plist5
13 files changed, 308 insertions, 87 deletions
diff --git a/graphics/qgis-ltr/Makefile b/graphics/qgis-ltr/Makefile
index 682f859e9d49..114ac22dabf5 100644
--- a/graphics/qgis-ltr/Makefile
+++ b/graphics/qgis-ltr/Makefile
@@ -3,68 +3,40 @@
PORTNAME= qgis
DISTVERSIONPREFIX= final-
-DISTVERSION= 3_10_4
-PORTREVISION= 3
+DISTVERSION= 3_10_9
CATEGORIES= graphics geography
PKGNAMESUFFIX= -ltr
+
+PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES= 33192f38bc7d.patch:-p1 \
+ 12203f0ce527.patch:-p1 \
+ 6e9d42d70099.patch:-p1
+
MAINTAINER= rhurlin@gwdg.de
COMMENT= Free and Open Source Geographic Information System
-PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
-PATCHFILES= 4bb4bc8fb1b6.patch:-p1
-
LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/doc/LICENSE
BUILD_DEPENDS= gpsbabel>=1.5.4:astro/gpsbabel \
- txt2tags:textproc/txt2tags \
- ${PYTHON_PKGNAMEPREFIX}cycler>=0.10.0:devel/py-cycler@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dateutil>=2.8.0:devel/py-dateutil@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}future>=0.17.1:devel/py-future@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}httplib2>=0.12.1:www/py-httplib2@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}Jinja2>=2.10.1:devel/py-Jinja2@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}MarkupSafe>=1.1.1:textproc/py-MarkupSafe@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}matplotlib>=2.2.4:math/py-matplotlib@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}mock>=2.0.0:devel/py-mock@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}OWSLib>=0.18.0:graphics/py-OWSLib@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pbr>=3.1.1:devel/py-pbr@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pip>=9.0.3:devel/py-pip@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}plotly>=3.0.2:graphics/py-plotly@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pygments>=2.4.1:textproc/py-pygments@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pyproj>=2.1.3:graphics/py-pyproj@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pytz>=2019.1:devel/py-pytz@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}requests>=2.21.0:www/py-requests@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}six>=1.12.0:devel/py-six@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}sqlite3>=3.6.8:databases/py-sqlite3@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}yaml>=5.1:devel/py-yaml@${PY_FLAVOR}
-RUN_DEPENDS= astyle:devel/astyle \
${PYTHON_PKGNAMEPREFIX}cycler>=0.10.0:devel/py-cycler@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dateutil>=2.8.0:devel/py-dateutil@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}future>=0.17.1:devel/py-future@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}gdal>=2.4.1:graphics/py-gdal@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}geojson>=2.3.0:devel/py-geojson@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}httplib2>=0.12.1:www/py-httplib2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dateutil>=2.8.1:devel/py-dateutil@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}future>=0.18.2:devel/py-future@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}httplib2>=0.17.3:www/py-httplib2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Jinja2>=2.10.1:devel/py-Jinja2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}MarkupSafe>=1.1.1:textproc/py-MarkupSafe@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}matplotlib>=2.2.4:math/py-matplotlib@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}mock>=2.0.0:devel/py-mock@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}nbformat>=4.4.0:devel/py-nbformat@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}networkx>=2.1:math/py-networkx@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}numpy>=1.16.1:math/py-numpy@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}OWSLib>=0.17.1:graphics/py-OWSLib@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mock>=3.0.5:devel/py-mock@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}OWSLib>=0.20.0:graphics/py-OWSLib@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pbr>=3.1.1:devel/py-pbr@${PY_FLAVOR} \
- ${PY_PILLOW} \
- ${PYTHON_PKGNAMEPREFIX}pip>=9.0.3:devel/py-pip@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pip>=19.1.1:devel/py-pip@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}plotly>=3.0.2:graphics/py-plotly@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}psycopg2>=2.8.3:databases/py-psycopg2@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pygments>=2.4.1:textproc/py-pygments@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pygments>=2.5.2:textproc/py-pygments@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyproj>=2.1.3:graphics/py-pyproj@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytz>=2019.1:devel/py-pytz@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=2.21.0:www/py-requests@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}scikit-image>=0.14.2_2:graphics/py-scikit-image@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}Shapely>=1.6.4:devel/py-shapely@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=1.12.0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sqlite3>=3.6.8:databases/py-sqlite3@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}termcolor>=1.1.0:devel/py-termcolor@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}yaml>=5.1:devel/py-yaml@${PY_FLAVOR}
LIB_DEPENDS= libexiv2.so:graphics/exiv2 \
libexpat.so:textproc/expat2 \
@@ -83,26 +55,64 @@ LIB_DEPENDS= libexiv2.so:graphics/exiv2 \
libsz.so:science/szip \
libxerces-c.so:textproc/xerces-c3 \
libzip.so:archivers/libzip
+RUN_DEPENDS= astyle:devel/astyle \
+ ${PYTHON_PKGNAMEPREFIX}black>=19.10:devel/py-black@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}cycler>=0.10.0:devel/py-cycler@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dateutil>=2.8.1:devel/py-dateutil@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}future>=0.18.2:devel/py-future@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}gdal>=3.1.0:graphics/py-gdal@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}geojson>=2.3.0:devel/py-geojson@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}geopandas>=0.7.0:graphics/py-geopandas@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}httplib2>=0.17.3:www/py-httplib2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}jedi>=0.12.1:devel/py-jedi@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}Jinja2>=2.10.1:devel/py-Jinja2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}MarkupSafe>=1.1.1:textproc/py-MarkupSafe@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}matplotlib>=2.2.4:math/py-matplotlib@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mock>=3.0.5:devel/py-mock@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}nbformat>=5.0.7:devel/py-nbformat@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}networkx>=2.1:math/py-networkx@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}nltk>=3.4.1:textproc/py-nltk@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}numpy>=1.16.6:math/py-numpy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}OWSLib>=0.18.0:graphics/py-OWSLib@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pandas>=0.24.2:math/py-pandas@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pbr>=3.1.1:devel/py-pbr@${PY_FLAVOR} \
+ ${PY_PILLOW} \
+ ${PYTHON_PKGNAMEPREFIX}pip>=19.1.1:devel/py-pip@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}plotly>=3.0.2:graphics/py-plotly@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}psutil>=5.7.0:sysutils/py-psutil@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}psycopg2>=2.8.5:databases/py-psycopg2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pygments>=2.5.2:textproc/py-pygments@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyproj>=2.1.3:graphics/py-pyproj@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyrsgis>=0.2.6:graphics/py-pyrsgis@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytz>=2020.1:devel/py-pytz@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}qt5-quick>=5.13.1:x11-toolkits/py-qt5-quick@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>=2.22.0:www/py-requests@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}scikit-image>=0.14.3:graphics/py-scikit-image@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}Shapely>=1.6.4:devel/py-shapely@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}six>=1.14.0:devel/py-six@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}sqlite3>=3.7.7:databases/py-sqlite3@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}termcolor>=1.1.0:devel/py-termcolor@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}yaml>=5.3.1:devel/py-yaml@${PY_FLAVOR}
### Fortran is needed by numpy, GRASS, etc.
USES= bison cmake compiler:features cpe desktop-file-utils \
fortran gmake gl gnome pgsql pyqt:5 python:3.6+ qca qt:5 \
shebangfix sqlite:3
-USE_GNOME= libxml2
+USE_GITHUB= yes
+GH_PROJECT= ${PORTNAME:tu}
USE_GL= gl
+USE_GNOME= libxml2
+INSTALLS_ICONS= yes
+USE_LDCONFIG= yes
+USE_PYQT= core gui network qml quickwidgets qscintilla2 \
+ sip sql svg webkit_run webkitwidgets_run xml
USE_QT= 3d buildtools_build core concurrent dbus declarative \
designer doc gamepad gui linguist_build location \
network printsupport qmake_build script serialport \
sql sql-pgsql sql-sqlite3 svg testlib uitools \
webengine widgets webkit xml
-USE_PYQT= core gui network qml quickwidgets qscintilla2 \
- sip sql svg webkit_run webkitwidgets_run xml
-USE_LDCONFIG= yes
-
-CONFLICTS_INSTALL= qgis
-USE_GITHUB= yes
-GH_PROJECT= ${PORTNAME:tu}
+SHEBANG_FILES= src/plugins/grass/scripts/*.py
CMAKE_ARGS+= -DCMAKE_BUILD_TYPE:STRING=Release \
-DPYRCC_PROGRAM:FILEPATH=${LOCALBASE}/bin/pyrcc5-${PYTHON_VER} \
@@ -117,13 +127,15 @@ CMAKE_ON= BUILD_TESTING ENABLE_TESTS WITH_3D WITH_ASTYLE \
WITH_POSTGRESQL
CMAKE_OFF= WITH_GLOBE WITH_QWTPOLAR
+CONFLICTS_INSTALL= qgis
+
+PLIST_SUB= DISTVERSION=${PORTVERSION}
+
.if !defined(MAINTAINER_MODE)
CMAKE_ARGS+= -Wno-dev
CMAKE_OFF+= SUPPRESS_QT_WARNINGS
.endif
-SHEBANG_FILES= src/plugins/grass/scripts/*.py
-
OPTIONS_DEFINE= GRASS SERVER
OPTIONS_DEFAULT= GRASS SERVER
NO_OPTIONS_SORT= yes
@@ -137,8 +149,6 @@ GRASS_CMAKE_BOOL= WITH_GRASS7
SERVER_LIB_DEPENDS= libfcgi.so:www/fcgi
SERVER_CMAKE_BOOL= WITH_SERVER WITH_SERVER_PLUGINS WITH_QSPATIALITE
-PLIST_SUB= DISTVERSION=${PORTVERSION}
-
.include <bsd.port.pre.mk>
post-patch:
@@ -149,6 +159,10 @@ post-patch:
${WRKSRC}/src/core/CMakeLists.txt
.endif
+ @${REINPLACE_CMD} -e 's|%%PYQT_SIPDIR%%|${PYQT_SIPDIR}|' \
+ ${WRKSRC}/cmake/FindPyQt5.py \
+ ${WRKSRC}/cmake/FindSIP.py
+
pre-configure:
${MKDIR} ${CONFIGURE_WRKSRC}/bin && ${LN} -s ${PYTHON_CMD} ${CONFIGURE_WRKSRC}/bin/python3
diff --git a/graphics/qgis-ltr/distinfo b/graphics/qgis-ltr/distinfo
index 428ad142cbfb..e45cc1312505 100644
--- a/graphics/qgis-ltr/distinfo
+++ b/graphics/qgis-ltr/distinfo
@@ -1,5 +1,9 @@
-TIMESTAMP = 1591017346
-SHA256 (qgis-QGIS-final-3_10_4_GH0.tar.gz) = ef900da2108d9b10069587e7eeed8f42c07f2af50e7552d938ffa9418cb55961
-SIZE (qgis-QGIS-final-3_10_4_GH0.tar.gz) = 120683329
-SHA256 (4bb4bc8fb1b6.patch) = 87fa55e54bb72d570747aa10f082a8c2dd3528b11d564f54461372e77e5bde71
-SIZE (4bb4bc8fb1b6.patch) = 1918
+TIMESTAMP = 1598608287
+SHA256 (qgis-QGIS-final-3_10_9_GH0.tar.gz) = bb7cf7e83dbfac13ebe33336ac825e6b07282a9def4b9159ebce77500a4e28b3
+SIZE (qgis-QGIS-final-3_10_9_GH0.tar.gz) = 121338519
+SHA256 (33192f38bc7d.patch) = 97d3f882bea11c5342ddf53f6c055f9f38c5af18edb2d52c116f1dab4a49189b
+SIZE (33192f38bc7d.patch) = 12604
+SHA256 (12203f0ce527.patch) = bb30342fbf19f1a9150abd97fb1b5d6bbe3f3062bb217a7179332d0b02168235
+SIZE (12203f0ce527.patch) = 2452
+SHA256 (6e9d42d70099.patch) = 44c3ecc27c839492d9eae2d352e0ea9f37c11a419fb3f8862350b1e52cb359a6
+SIZE (6e9d42d70099.patch) = 1513
diff --git a/graphics/qgis-ltr/files/patch-CMakeLists.txt b/graphics/qgis-ltr/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..02c317be891c
--- /dev/null
+++ b/graphics/qgis-ltr/files/patch-CMakeLists.txt
@@ -0,0 +1,19 @@
+--- CMakeLists.txt.orig 2020-08-27 11:28:26 UTC
++++ CMakeLists.txt
+@@ -154,6 +154,7 @@ IF(WITH_CORE)
+ # as otherwise user has to use PYTHONPATH environment variable to add
+ # QGIS bindings to package search path
+ SET (BINDINGS_GLOBAL_INSTALL FALSE CACHE BOOL "Install bindings to global python directory? (might need root)")
++ SET (SIP_GLOBAL_INSTALL FALSE CACHE BOOL "Install sip source files to system sip directory? (might need root)")
+ SET (WITH_STAGED_PLUGINS TRUE CACHE BOOL "Stage-install core Python plugins to run from build directory? (utilities and console are always staged)")
+ SET (WITH_PY_COMPILE FALSE CACHE BOOL "Determines whether Python modules in staged or installed locations are byte-compiled")
+ # concatenate QScintilla2 API files
+@@ -851,7 +852,7 @@ IF (WITH_CORE AND WITH_BINDINGS)
+ INCLUDE(SIPMacros)
+
+ SET(SIP_INCLUDES ${PYQT_SIP_DIR} ${CMAKE_SOURCE_DIR}/python)
+- SET(SIP_CONCAT_PARTS 4)
++ SET(SIP_CONCAT_PARTS 6)
+
+ IF (NOT BINDINGS_GLOBAL_INSTALL)
+ SET(PYTHON_SITE_PACKAGES_DIR ${QGIS_DATA_DIR}/python)
diff --git a/graphics/qgis-ltr/files/patch-cmake_FindPyQt5.py b/graphics/qgis-ltr/files/patch-cmake_FindPyQt5.py
new file mode 100644
index 000000000000..9524721ba06c
--- /dev/null
+++ b/graphics/qgis-ltr/files/patch-cmake_FindPyQt5.py
@@ -0,0 +1,81 @@
+--- cmake/FindPyQt5.py.orig 2020-08-28 05:25:49 UTC
++++ cmake/FindPyQt5.py
+@@ -30,14 +30,15 @@
+ # Redistribution and use is allowed according to the terms of the BSD license.
+ # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
++import os.path
++import PyQt5.QtCore
++
+ try:
+- import PyQt5.pyqtconfig
+- pyqtcfg = PyQt5.pyqtconfig.Configuration()
++ __import__('sipbuild')
+ except ImportError:
+- import PyQt5.QtCore
+- import sipconfig # won't work for SIP v5
+- import os.path
++ import sipconfig # won't work for SIP v5
+ import sys
++
+ cfg = sipconfig.Configuration()
+ sip_dir = cfg.default_sip_dir
+ if sys.platform.startswith('freebsd'):
+@@ -51,38 +52,44 @@ except ImportError:
+ sip_dir = p
+ break
+ cfg = {
+- 'pyqt_version': PyQt5.QtCore.PYQT_VERSION,
+- 'pyqt_version_str': PyQt5.QtCore.PYQT_VERSION_STR,
+- 'pyqt_sip_flags': PyQt5.QtCore.PYQT_CONFIGURATION['sip_flags'],
+ 'pyqt_mod_dir': os.path.join(cfg.default_mod_dir, "PyQt5"),
+ 'pyqt_sip_dir': sip_dir,
+ 'pyqt_bin_dir': cfg.default_bin_dir,
+ }
+- pyqtcfg = sipconfig.Configuration([cfg])
++else: # Code for SIP v5
++ from distutils.sysconfig import get_python_lib
++ import shutil
++ cfg = {
++ 'pyqt_mod_dir': os.path.dirname(PyQt5.__file__),
++ 'pyqt_sip_dir': "%%PYQT_SIPDIR%%",
++ 'pyqt_bin_dir': os.path.dirname(shutil.which("pyuic5")),
++ }
+
+-print("pyqt_version:%06.0x" % pyqtcfg.pyqt_version)
+-print("pyqt_version_num:%d" % pyqtcfg.pyqt_version)
+-print("pyqt_version_str:%s" % pyqtcfg.pyqt_version_str)
++print("pyqt_version:%06.0x" % PyQt5.QtCore.PYQT_VERSION)
++print("pyqt_version_num:%d" % PyQt5.QtCore.PYQT_VERSION)
++print("pyqt_version_str:%s" % PyQt5.QtCore.PYQT_VERSION_STR)
+
+ pyqt_version_tag = ""
+ in_t = False
+-for item in pyqtcfg.pyqt_sip_flags.split(' '):
++pyqt_config_list = PyQt5.QtCore.PYQT_CONFIGURATION["sip_flags"].split(' ')
++for item in pyqt_config_list:
+ if item == "-t":
+ in_t = True
+ elif in_t:
+- if item.startswith("Qt_4"):
++ if item.startswith("Qt_5"):
+ pyqt_version_tag = item
+ else:
+ in_t = False
+ print("pyqt_version_tag:%s" % pyqt_version_tag)
+
+-print("pyqt_mod_dir:%s" % pyqtcfg.pyqt_mod_dir)
+-print("pyqt_sip_dir:%s" % pyqtcfg.pyqt_sip_dir)
+-print("pyqt_sip_flags:%s" % pyqtcfg.pyqt_sip_flags)
+-print("pyqt_bin_dir:%s" % pyqtcfg.pyqt_bin_dir)
++print("pyqt_mod_dir:%s" % cfg['pyqt_mod_dir'])
++print("pyqt_sip_dir:%s" % cfg['pyqt_sip_dir'])
++print("pyqt_sip_flags:%s" % PyQt5.QtCore.PYQT_CONFIGURATION['sip_flags'])
++print("pyqt_bin_dir:%s" % cfg['pyqt_bin_dir'])
+
+ try:
+ import PyQt5.sip
++
+ print("pyqt_sip_module:PyQt5.sip")
+ except:
+ print("pyqt_sip_module:sip")
diff --git a/graphics/qgis-ltr/files/patch-cmake_FindQGIS.cmake b/graphics/qgis-ltr/files/patch-cmake_FindQGIS.cmake
new file mode 100644
index 000000000000..5a90daef2255
--- /dev/null
+++ b/graphics/qgis-ltr/files/patch-cmake_FindQGIS.cmake
@@ -0,0 +1,20 @@
+--- cmake/FindQGIS.cmake.orig 2020-08-28 05:25:49 UTC
++++ cmake/FindQGIS.cmake
+@@ -122,7 +122,7 @@ ELSE(WIN32)
+ PATHS
+ ${QGIS_BUILD_PATH}/output/lib/qgis_core.framework/Headers
+ ${QGIS_MAC_PATH}/Frameworks/qgis_core.framework/Headers
+- {QGIS_PREFIX_PATH}/include/qgis
++ ${QGIS_PREFIX_PATH}/include/qgis
+ /usr/include/qgis
+ /usr/local/include/qgis
+ /Library/Frameworks/qgis_core.framework/Headers
+@@ -133,7 +133,7 @@ ELSE(WIN32)
+ PATHS
+ ${QGIS_BUILD_PATH}/src/ui
+ ${QGIS_MAC_PATH}/Frameworks/qgis_gui.framework/Headers
+- {QGIS_PREFIX_PATH}/include/qgis
++ ${QGIS_PREFIX_PATH}/include/qgis
+ /usr/include/qgis
+ /usr/local/include/qgis
+ /Library/Frameworks/qgis_gui.framework/Headers
diff --git a/graphics/qgis-ltr/files/patch-cmake_FindQtQmlTools.cmake b/graphics/qgis-ltr/files/patch-cmake_FindQtQmlTools.cmake
new file mode 100644
index 000000000000..009e2cc63e8d
--- /dev/null
+++ b/graphics/qgis-ltr/files/patch-cmake_FindQtQmlTools.cmake
@@ -0,0 +1,16 @@
+--- cmake/FindQtQmlTools.cmake.orig 2020-08-28 05:25:49 UTC
++++ cmake/FindQtQmlTools.cmake
+@@ -22,12 +22,11 @@
+
+ MACRO(FIND_QMLPLUGINDUMP)
+ get_filename_component(QT_BIN_DIR "${QT_QMAKE_EXECUTABLE}" DIRECTORY)
+-
+ IF(NOT QMLPLUGINDUMP_EXECUTABLE)
+ IF (MSVC)
+ FIND_PROGRAM(QMLPLUGINDUMP_EXECUTABLE qmlplugindump.exe PATHS ${QT_BIN_DIR} NO_DEFAULT_PATH)
+ ELSE (MSVC)
+- FIND_PROGRAM(QMLPLUGINDUMP_EXECUTABLE qmlplugindump PATHS ${QT_BIN_DIR} NO_DEFAULT_PATH)
++ FIND_PROGRAM(QMLPLUGINDUMP_EXECUTABLE qmlplugindump PATHS ${QT_BIN_DIR})
+ ENDIF (MSVC)
+ ENDIF(NOT QMLPLUGINDUMP_EXECUTABLE)
+
diff --git a/graphics/qgis-ltr/files/patch-cmake_FindQwt.cmake b/graphics/qgis-ltr/files/patch-cmake_FindQwt.cmake
new file mode 100644
index 000000000000..908f76ac23e1
--- /dev/null
+++ b/graphics/qgis-ltr/files/patch-cmake_FindQwt.cmake
@@ -0,0 +1,10 @@
+--- cmake/FindQwt.cmake.orig 2020-08-28 05:25:49 UTC
++++ cmake/FindQwt.cmake
+@@ -32,6 +32,7 @@ endif()
+ FIND_PATH(QWT_INCLUDE_DIR NAMES qwt.h PATHS
+ "${_qwt_fw}/Headers"
+ /usr/include
++ /usr/include/qt5
+ /usr/local/include
+ /usr/local/include/qt5
+ "$ENV{LIB_DIR}/include"
diff --git a/graphics/qgis-ltr/files/patch-cmake_FindSIP.cmake b/graphics/qgis-ltr/files/patch-cmake_FindSIP.cmake
new file mode 100644
index 000000000000..a3d12d1928c9
--- /dev/null
+++ b/graphics/qgis-ltr/files/patch-cmake_FindSIP.cmake
@@ -0,0 +1,17 @@
+--- cmake/FindSIP.cmake.orig 2020-08-28 05:25:49 UTC
++++ cmake/FindSIP.cmake
+@@ -40,8 +40,12 @@ ELSE(SIP_VERSION)
+ STRING(REGEX REPLACE ".*\nsip_version_str:([^\n]+).*$" "\\1" SIP_VERSION_STR ${sip_config})
+ STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_BINARY_PATH ${sip_config})
+ STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config})
+- STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config})
+- STRING(REGEX REPLACE ".*\nsip_module_dir:([^\n]+).*$" "\\1" SIP_MODULE_DIR ${sip_config})
++ IF(${SIP_VERSION_STR} VERSION_LESS 5)
++ STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config})
++ STRING(REGEX REPLACE ".*\nsip_module_dir:([^\n]+).*$" "\\1" SIP_MODULE_DIR ${sip_config})
++ ELSE(${SIP_VERSION_STR} VERSION_LESS 5)
++ FIND_PROGRAM(SIP_MODULE_EXECUTABLE sip-module)
++ ENDIF(${SIP_VERSION_STR} VERSION_LESS 5)
+ SET(SIP_FOUND TRUE)
+ ENDIF(sip_config)
+
diff --git a/graphics/qgis-ltr/files/patch-cmake_FindSIP.py b/graphics/qgis-ltr/files/patch-cmake_FindSIP.py
new file mode 100644
index 000000000000..cb9b2f5e5ee5
--- /dev/null
+++ b/graphics/qgis-ltr/files/patch-cmake_FindSIP.py
@@ -0,0 +1,47 @@
+--- cmake/FindSIP.py.orig 2020-08-28 05:25:49 UTC
++++ cmake/FindSIP.py
+@@ -30,17 +30,31 @@
+ # Redistribution and use is allowed according to the terms of the BSD license.
+ # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+-import sipconfig
++try:
++ import sipbuild
++except ImportError: # Code for SIP v4
++ import sipconfig
+
+-sipcfg = sipconfig.Configuration()
+-print("sip_version:%06.0x" % sipcfg.sip_version)
+-print("sip_version_num:%d" % sipcfg.sip_version)
+-print("sip_version_str:%s" % sipcfg.sip_version_str)
+-print("sip_bin:%s" % sipcfg.sip_bin)
+-print("default_sip_dir:%s" % sipcfg.default_sip_dir)
+-print("sip_inc_dir:%s" % sipcfg.sip_inc_dir)
+-# SIP 4.19.10+ has new sipcfg.sip_module_dir
+-if hasattr(sipcfg, "sip_module_dir"):
+- print("sip_module_dir:%s" % sipcfg.sip_module_dir)
+-else:
+- print("sip_module_dir:%s" % sipcfg.sip_mod_dir)
++ sipcfg = sipconfig.Configuration()
++ print("sip_version:%06.0x" % sipcfg.sip_version)
++ print("sip_version_num:%d" % sipcfg.sip_version)
++ print("sip_version_str:%s" % sipcfg.sip_version_str)
++ print("sip_bin:%s" % sipcfg.sip_bin)
++ print("default_sip_dir:%s" % sipcfg.default_sip_dir)
++ print("sip_inc_dir:%s" % sipcfg.sip_inc_dir)
++ # SIP 4.19.10+ has new sipcfg.sip_module_dir
++ if hasattr(sipcfg, "sip_module_dir"):
++ print("sip_module_dir:%s" % sipcfg.sip_module_dir)
++ else:
++ print("sip_module_dir:%s" % sipcfg.sip_mod_dir)
++else: # Code for SIP v5
++ print("sip_version:%06.0x" % sipbuild.version.SIP_VERSION)
++ print("sip_version_num:%d" % sipbuild.version.SIP_VERSION)
++ print("sip_version_str:%s" % sipbuild.version.SIP_VERSION_STR)
++
++ import shutil
++ print("sip_bin:%s" % shutil.which("sip5"))
++
++ from distutils.sysconfig import get_python_lib
++ python_modules_dir = "%%PYQT_SIPDIR%%"
++ print("default_sip_dir:%s" % python_modules_dir)
diff --git a/graphics/qgis-ltr/files/patch-cmake_SIPMacros.cmake b/graphics/qgis-ltr/files/patch-cmake_SIPMacros.cmake
new file mode 100644
index 000000000000..f0e4bbdad9e6
--- /dev/null
+++ b/graphics/qgis-ltr/files/patch-cmake_SIPMacros.cmake
@@ -0,0 +1,15 @@
+--- cmake/SIPMacros.cmake.orig 2020-08-28 05:25:49 UTC
++++ cmake/SIPMacros.cmake
+@@ -121,6 +121,12 @@ MACRO(GENERATE_SIP_PYTHON_MODULE_CODE MODULE_NAME MODU
+ DEPENDS ${SIP_EXTRA_FILES_DEPEND}
+ VERBATIM
+ )
++ IF (SIP_MODULE_EXECUTABLE)
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${_sip_output_files} APPEND
++ COMMAND ${SIP_MODULE_EXECUTABLE} --target-dir ${CMAKE_CURRENT_BINARY_DIR}/${_module_path} --sip-h ${PYQT5_SIP_IMPORT}
++ )
++ ENDIF (SIP_MODULE_EXECUTABLE)
+
+ ADD_CUSTOM_TARGET(generate_sip_${MODULE_NAME}_cpp_files DEPENDS ${_sip_output_files})
+
diff --git a/graphics/qgis-ltr/files/patch-src_analysis_interpolation_qgsinterpolator.h b/graphics/qgis-ltr/files/patch-src_analysis_interpolation_qgsinterpolator.h
deleted file mode 100644
index 17ece2c26df9..000000000000
--- a/graphics/qgis-ltr/files/patch-src_analysis_interpolation_qgsinterpolator.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/analysis/interpolation/qgsinterpolator.h.orig 2019-07-10 19:11:16 UTC
-+++ src/analysis/interpolation/qgsinterpolator.h
-@@ -18,6 +18,7 @@
- #ifndef QGSINTERPOLATOR_H
- #define QGSINTERPOLATOR_H
-
-+#include <QList>
- #include <QVector>
- #include "qgis_sip.h"
- #include "qgis_analysis.h"
diff --git a/graphics/qgis-ltr/files/patch-src_core_CMakeLists.txt b/graphics/qgis-ltr/files/patch-src_core_CMakeLists.txt
index 5b46a0bcd9f9..749088613a4b 100644
--- a/graphics/qgis-ltr/files/patch-src_core_CMakeLists.txt
+++ b/graphics/qgis-ltr/files/patch-src_core_CMakeLists.txt
@@ -1,19 +1,6 @@
---- src/core/CMakeLists.txt.orig 2019-10-28 04:34:30 UTC
---- src/core/CMakeLists.txt.orig 2020-06-19 12:15:52 UTC
+--- src/core/CMakeLists.txt.orig 2020-08-14 12:07:53 UTC
+++ src/core/CMakeLists.txt
-@@ -693,9 +693,9 @@ SET(QGIS_CORE_SRCS
- )
-
- FILE(GLOB JSON_HELP_FILES "${CMAKE_SOURCE_DIR}/resources/function_help/json/*")
--IF(NOT USING_NINJA)
-+IF(CMAKE_VERSION VERSION_LESS "3.18" AND NOT USING_NINJA)
- STRING(REPLACE "$" "$$" JSON_HELP_FILES "${JSON_HELP_FILES}")
--ENDIF(NOT USING_NINJA)
-+ENDIF(CMAKE_VERSION VERSION_LESS "3.18" AND NOT USING_NINJA)
- STRING(REPLACE "\(" "\\(" JSON_HELP_FILES "${JSON_HELP_FILES}")
- STRING(REPLACE "\)" "\\)" JSON_HELP_FILES "${JSON_HELP_FILES}")
- ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgsexpression_texts.cpp
-@@ -889,6 +889,7 @@ ELSE(MSVC)
+@@ -894,6 +894,7 @@ ELSE(MSVC)
SET_SOURCE_FILES_PROPERTIES(${QGIS_CORE_MOC_SRCS} PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations" )
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND (CMAKE_BUILD_TYPE MATCHES Release OR CMAKE_BUILD_TYPE MATCHES RelWithDebInfo))
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/qgsexpression_texts.cpp PROPERTIES COMPILE_FLAGS "-O1")
diff --git a/graphics/qgis-ltr/pkg-plist b/graphics/qgis-ltr/pkg-plist
index e04fc7593811..16ce41d90777 100644
--- a/graphics/qgis-ltr/pkg-plist
+++ b/graphics/qgis-ltr/pkg-plist
@@ -362,6 +362,7 @@ include/qgis/qgsfilterlineedit.h
include/qgis/qgsfilterlineeditplugin.h
include/qgis/qgsfindfilesbypatternwidget.h
include/qgis/qgsfloatingwidget.h
+include/qgis/qgsfocuskeeper.h
include/qgis/qgsfocuswatcher.h
include/qgis/qgsfontbutton.h
include/qgis/qgsfontbuttonplugin.h
@@ -1352,7 +1353,6 @@ share/metainfo/org.qgis.qgis.appdata.xml
%%DATADIR%%/doc/CONTRIBUTORS
%%DATADIR%%/doc/DONORS
%%DATADIR%%/doc/INSTALL
-%%DATADIR%%/doc/INSTALL.html
%%DATADIR%%/doc/LICENSE
%%DATADIR%%/doc/SPONSORS
%%DATADIR%%/doc/TRANSLATORS
@@ -1395,7 +1395,6 @@ share/metainfo/org.qgis.qgis.appdata.xml
%%DATADIR%%/doc/images/projects/thumbnails/f6379f3083e612fd47917e1f948d795b6951dde9.png.200x100_q85.png
%%DATADIR%%/doc/images/qgis-icon-60x60.png
%%DATADIR%%/doc/index.html
-%%DATADIR%%/doc/news
%%DATADIR%%/doc/news.html
%%DATADIR%%/doc/nohelp.html
%%DATADIR%%/doc/style.css
@@ -5134,6 +5133,7 @@ share/metainfo/org.qgis.qgis.appdata.xml
%%DATADIR%%/resources/themes/Blend of Gray/icons/handle-vertical.svg
%%DATADIR%%/resources/themes/Blend of Gray/icons/qcheckbox-checked-disabled.svg
%%DATADIR%%/resources/themes/Blend of Gray/icons/qcheckbox-checked.svg
+%%DATADIR%%/resources/themes/Blend of Gray/icons/qcheckbox-intermediary.svg
%%DATADIR%%/resources/themes/Blend of Gray/icons/qcheckbox-unchecked-disabled.svg
%%DATADIR%%/resources/themes/Blend of Gray/icons/qcheckbox-unchecked.svg
%%DATADIR%%/resources/themes/Blend of Gray/icons/qradiobox-checked-disabled.svg
@@ -5157,6 +5157,7 @@ share/metainfo/org.qgis.qgis.appdata.xml
%%DATADIR%%/resources/themes/Night Mapping/icons/handle-vertical.svg
%%DATADIR%%/resources/themes/Night Mapping/icons/qcheckbox-checked-disabled.svg
%%DATADIR%%/resources/themes/Night Mapping/icons/qcheckbox-checked.svg
+%%DATADIR%%/resources/themes/Night Mapping/icons/qcheckbox-intermediary.svg
%%DATADIR%%/resources/themes/Night Mapping/icons/qcheckbox-unchecked-disabled.svg
%%DATADIR%%/resources/themes/Night Mapping/icons/qcheckbox-unchecked.svg
%%DATADIR%%/resources/themes/Night Mapping/icons/qradiobox-checked-disabled.svg