diff --git a/var/spack/repos/builtin/packages/qgis/package.py b/var/spack/repos/builtin/packages/qgis/package.py index 3ba24b3b3d..1b111370ff 100644 --- a/var/spack/repos/builtin/packages/qgis/package.py +++ b/var/spack/repos/builtin/packages/qgis/package.py @@ -17,14 +17,16 @@ class Qgis(CMakePackage): maintainers = ['adamjstewart', 'Sinan81'] + version('3.18.2', sha256='1913e4d5596bbc8b7d143f3defb18bf376f750a71f334f69d76af5deca7ecc5d') + # Prefer latest long term release + version('3.16.5', sha256='525f469ad6e40dd7a8f09ebab5eb6a2dffc45939b99b7d937750cc04ed78d61c', preferred=True) version('3.14.16', sha256='c9915c2e577f1812a2b35b678b123c58407e07824d73e5ec0dda13db7ca75c04') version('3.14.0', sha256='1b76c5278def0c447c3d354149a2afe2562ac26cf0bcbe69b9e0528356d407b8') version('3.12.3', sha256='c2b53815f9b994e1662995d1f25f90628156b996758f5471bffb74ab29a95220') version('3.12.2', sha256='501f81715672205afd2c1a289ffc765aff96eaa8ecb49d079a58ef4d907467b8') version('3.12.1', sha256='a7dc7af768b8960c08ce72a06c1f4ca4664f4197ce29c7fe238429e48b2881a8') version('3.12.0', sha256='19e9c185dfe88cad7ee6e0dcf5ab7b0bbfe1672307868a53bf771e0c8f9d5e9c') - # Prefer latest long term release - version('3.10.10', sha256='e21a778139823fb6cf12e4a38f00984fcc060f41abcd4f0af83642d566883839', preferred=True) + version('3.10.10', sha256='e21a778139823fb6cf12e4a38f00984fcc060f41abcd4f0af83642d566883839') version('3.10.7', sha256='f6c02489e065bae355d2f4374b84a1624379634c34a770b6d65bf38eb7e71564') version('3.10.6', sha256='a96791bf6615e4f8ecdbbb9a90a8ef14a12459d8c5c374ab22eb5f776f864bb5') version('3.10.5', sha256='f3e1cc362941ec69cc21062eeaea160354ef71382b21dc4b3191c315447b4ce1') @@ -71,8 +73,7 @@ class Qgis(CMakePackage): variant('txt2tags', default=False, description='Generate PDF for txt2tags documentation') # Ref. for dependencies: - # http://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/INSTALL.html - # https://github.com/qgis/QGIS/blob/master/INSTALL + # https://github.com/qgis/QGIS/blob/master/INSTALL.md depends_on('exiv2') depends_on('expat@1.95:') depends_on('gdal@2.1.0: +python', type=('build', 'link', 'run')) @@ -96,6 +97,7 @@ class Qgis(CMakePackage): depends_on('qwt@5:') depends_on('qwtpolar') depends_on('sqlite@3.0.0: +column_metadata') + depends_on('protobuf', when='@3.16.4:') # Runtime python dependencies, not mentioned in install instructions depends_on('py-pyyaml', type='run') @@ -126,8 +128,13 @@ class Qgis(CMakePackage): depends_on('qt@5.9.0:', when='@3.10.0:') depends_on('qtkeychain@:1.5.99', when='^qt@4') depends_on('qt@:4', when='@2') + # Help concretizer + # +qsci_api is implied by qscintilla+python dependency + depends_on('py-pyqt4 +qsci_api', when='@2') + depends_on('py-pyqt5@5.3: +qsci_api', when='@3') - patch('pyqt5.patch', when='^qt@5') + patch('pyqt5.patch', when='@:3.14 ^qt@5') + patch('pyqt5_3165x.patch', when='@3.16.5: ^qt@5') def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/qgis/pyqt5_3165x.patch b/var/spack/repos/builtin/packages/qgis/pyqt5_3165x.patch new file mode 100644 index 0000000000..931dcaee01 --- /dev/null +++ b/var/spack/repos/builtin/packages/qgis/pyqt5_3165x.patch @@ -0,0 +1,29 @@ +diff -ru a/cmake/FindPyQt5.py b/cmake/FindPyQt5.py +--- a/cmake/FindPyQt5.py 2021-04-18 11:12:34.520409268 -0700 ++++ b/cmake/FindPyQt5.py 2021-04-18 11:17:56.574204157 -0700 +@@ -41,6 +41,7 @@ + + cfg = sipconfig.Configuration() + sip_dir = cfg.default_sip_dir ++ pyqt_prefix = os.sep.join(PyQt5.QtCore.__file__.split(os.sep)[0:-5]) + if sys.platform.startswith('freebsd'): + py_version = str(sys.version_info.major) + str(sys.version_info.minor) + sip_dir = sip_dir.replace(py_version, '') +@@ -51,12 +52,12 @@ + if os.path.exists(os.path.join(p, "QtCore", "QtCoremod.sip")): + sip_dir = p + break +- else: +- sys.exit(1) ++# else: ++# sys.exit(1) + cfg = { +- 'pyqt_mod_dir': os.path.join(cfg.default_mod_dir, "PyQt5"), +- 'pyqt_sip_dir': sip_dir, +- 'pyqt_bin_dir': cfg.default_bin_dir, ++ 'pyqt_mod_dir': os.path.dirname(PyQt5.QtCore.__file__), ++ 'pyqt_sip_dir': os.path.join(pyqt_prefix,'share','sip','PyQt5'), ++ 'pyqt_bin_dir': os.path.join(pyqt_prefix,'bin'), + } + else: # Code for SIP v5 + from distutils.sysconfig import get_python_lib