summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSinan <sbulutw@gmail.com>2023-10-03 12:21:51 -0700
committerGitHub <noreply@github.com>2023-10-03 14:21:51 -0500
commit58017f484c6a5524a2c363bfde169d5955e3984a (patch)
tree52d7b4babbc57681117635bba666b450a384ea2c
parent86d2e1af973f0dd330cc65d401bfc3342ab1d391 (diff)
downloadspack-58017f484c6a5524a2c363bfde169d5955e3984a.tar.gz
spack-58017f484c6a5524a2c363bfde169d5955e3984a.tar.bz2
spack-58017f484c6a5524a2c363bfde169d5955e3984a.tar.xz
spack-58017f484c6a5524a2c363bfde169d5955e3984a.zip
fix_qgis_build_with_pysip5 (#39941)
* fix_qgis_build_with_pysip5 * build fails with newer protobuf * somehow findgdal can figure this out. * Update var/spack/repos/builtin/packages/qgis/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> * fix gdal lib again * qgis needs QtPositioning provided by qt+location option * fix FindPyQt5 cmake file * fix bug * fix qsci sip issue * fix bug * blackify * improve * add latest LTR * add build dep * revert until bug is fixed * specify proj version for qgis 3.28 * improve gdal libs search via indicating gdal-config * make flake happy * improve deps * add 3.28.11, improve style * fix style * [@spackbot] updating style on behalf of Sinan81 --------- Co-authored-by: Sinan81 <Sinan@world> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Sinan81 <Sinan81@users.noreply.github.com>
-rw-r--r--var/spack/repos/builtin/packages/qgis/package.py54
1 files changed, 46 insertions, 8 deletions
diff --git a/var/spack/repos/builtin/packages/qgis/package.py b/var/spack/repos/builtin/packages/qgis/package.py
index a269ba95a1..45bb056399 100644
--- a/var/spack/repos/builtin/packages/qgis/package.py
+++ b/var/spack/repos/builtin/packages/qgis/package.py
@@ -17,15 +17,18 @@ class Qgis(CMakePackage):
maintainers("adamjstewart", "Sinan81")
- version("3.28.3", sha256="a09124f46465a520f6d735306ba3954c339b84aa396d6f52b476b82edcc4fe0e")
# Prefer latest long term release
version(
- "3.22.16",
- sha256="dbd1f8a639291bb2492eea61e4ef96079d7b27d3dfa538dab8cd98f31429254a",
+ "3.28.11",
+ sha256="c5eb703893c7f98de051c45d677c4a34b40f986db51782a4930ddefad4e193b4",
preferred=True,
)
+ version("3.28.10", sha256="cff867e97909bbc2facce6343770dcb1b61fc6e4855f57783e30bf63d51c5218")
+ version("3.28.3", sha256="a09124f46465a520f6d735306ba3954c339b84aa396d6f52b476b82edcc4fe0e")
+ version("3.22.16", sha256="dbd1f8a639291bb2492eea61e4ef96079d7b27d3dfa538dab8cd98f31429254a")
version("3.22.0", sha256="cf0c169863f332aab67d8c4943e14b73a564f0254bf54015f5826c6427e6785b")
version("3.18.2", sha256="1913e4d5596bbc8b7d143f3defb18bf376f750a71f334f69d76af5deca7ecc5d")
+ version("3.16.16", sha256="ccd2f404534fcb00b5e17863375462090c9575e68b32ce50b2e7e925d1e01a49")
version("3.16.12", sha256="65e9634b5c885c98f3555cf77bc2e3fae5e19279aa17e3f6626ff5d7455fd2b9")
version("3.16.5", sha256="525f469ad6e40dd7a8f09ebab5eb6a2dffc45939b99b7d937750cc04ed78d61c")
version("3.14.16", sha256="c9915c2e577f1812a2b35b678b123c58407e07824d73e5ec0dda13db7ca75c04")
@@ -110,9 +113,12 @@ class Qgis(CMakePackage):
depends_on("proj@4.4.0:")
depends_on("proj@4.9.3:", when="@3.8.2:")
depends_on("proj@7.2:", when="@3.28:")
+ depends_on("proj@:8", when="@3.28") # build fails with proj@9
depends_on("py-psycopg2", type=("build", "run")) # TODO: is build dependency necessary?
depends_on("py-pyqt4", when="@2")
depends_on("py-pyqt5@5.3:", when="@3")
+ depends_on("py-sip", type="build")
+ depends_on("py-pyqt-builder", type="build", when="^py-sip@5:")
depends_on("py-requests", type=("build", "run")) # TODO: is build dependency necessary?
depends_on("python@3.0.0:", type=("build", "run"), when="@3")
depends_on("python@3.6:", type=("build", "run"), when="@3.18:")
@@ -120,14 +126,15 @@ class Qgis(CMakePackage):
depends_on("qca@2.2.1:")
depends_on("qjson")
depends_on("qscintilla +python")
- depends_on("qt+dbus")
- depends_on("qt+dbus@5.12.0:", when="@3.20:")
- depends_on("qt+dbus@5.14.0:", when="@3.28:")
+ depends_on("qt+dbus+location")
+ depends_on("qt+dbus+location@5.12.0:", when="@3.20:")
+ depends_on("qt+dbus+location@5.14.0:", when="@3.28:")
depends_on("qtkeychain@0.5:", when="@3:")
depends_on("qwt@5:")
depends_on("qwtpolar")
depends_on("sqlite@3.0.0: +column_metadata")
depends_on("protobuf", when="@3.16.4:")
+ depends_on("protobuf@:3.21", when="@:3.28")
depends_on("zstd", when="@3.22:")
# Runtime python dependencies, not mentioned in install instructions
@@ -163,8 +170,38 @@ class Qgis(CMakePackage):
depends_on("qt@:4", when="@2")
patch("pyqt5.patch", when="@:3.14 ^qt@5")
- patch("pyqt5_3165x.patch", when="@3.16.5:3.21 ^qt@5")
- patch("pyqt5_322x.patch", when="@3.22: ^qt@5")
+ patch("pyqt5_3165x.patch", when="@3.16.5:3.21 ^qt@5 ^py-sip@4")
+ patch("pyqt5_322x.patch", when="@3.22: ^qt@5 ^py-sip@4")
+
+ @run_before("cmake", when="^py-pyqt5")
+ def fix_pyqt5_cmake(self):
+ cmfile = FileFilter(join_path("cmake", "FindPyQt5.cmake"))
+ pyqtpath = join_path(
+ self.spec["py-pyqt5"].prefix, self.spec["python"].package.platlib, "PyQt5"
+ )
+ cmfile.filter(
+ 'SET(PYQT5_MOD_DIR "${Python_SITEARCH}/PyQt5")',
+ 'SET(PYQT5_MOD_DIR "' + pyqtpath + '")',
+ string=True,
+ )
+ cmfile.filter(
+ 'SET(PYQT5_SIP_DIR "${Python_SITEARCH}/PyQt5/bindings")',
+ 'SET(PYQT5_SIP_DIR "' + pyqtpath + '/bindings")',
+ string=True,
+ )
+
+ @run_before("build")
+ def fix_qsci_sip(self):
+ if "^py-pyqt5" in self.spec:
+ pyqtx = "PyQt5"
+ elif "^py-pyqt6" in self.spec:
+ pyqtx = "PyQt6"
+
+ sip_inc_dir = join_path(
+ self.spec["qscintilla"].prefix, self.spec["python"].package.platlib, pyqtx, "bindings"
+ )
+ with open(join_path("python", "gui", "pyproject.toml.in"), "a") as tomlfile:
+ tomlfile.write(f'\n[tool.sip.project]\nsip-include-dirs = ["{sip_inc_dir}"]\n')
def cmake_args(self):
spec = self.spec
@@ -185,6 +222,7 @@ class Qgis(CMakePackage):
"-DLIBZIP_INCLUDE_DIR=" + self.spec["libzip"].prefix.include,
"-DLIBZIP_CONF_INCLUDE_DIR=" + self.spec["libzip"].prefix.lib.libzip.include,
"-DGDAL_CONFIG_PREFER_PATH=" + self.spec["gdal"].prefix.bin,
+ "-DGDAL_CONFIG=" + join_path(self.spec["gdal"].prefix.bin, "gdal-config"),
"-DGEOS_CONFIG_PREFER_PATH=" + self.spec["geos"].prefix.bin,
"-DGSL_CONFIG_PREFER_PATH=" + self.spec["gsl"].prefix.bin,
"-DPOSTGRES_CONFIG_PREFER_PATH=" + self.spec["postgresql"].prefix.bin,