summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/gdal/package.py43
1 files changed, 37 insertions, 6 deletions
diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py
index cbc00ff153..d176eb87f0 100644
--- a/var/spack/repos/builtin/packages/gdal/package.py
+++ b/var/spack/repos/builtin/packages/gdal/package.py
@@ -4,6 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
+import sys
class Gdal(AutotoolsPackage):
@@ -22,8 +23,9 @@ class Gdal(AutotoolsPackage):
list_depth = 1
maintainers = ['adamjstewart']
- import_modules = ['osgeo', 'osgeo.utils']
+ version('3.3.0', sha256='190c8f4b56afc767f43836b2a5cd53cc52ee7fdc25eb78c6079c5a244e28efa7')
+ version('3.2.3', sha256='d9ec8458fe97fd02bf36379e7f63eaafce1005eeb60e329ed25bb2d2a17a796f')
version('3.2.2', sha256='a7e1e414e5c405af48982bf4724a3da64a05770254f2ce8affb5f58a7604ca57')
version('3.2.1', sha256='6c588b58fcb63ff3f288eb9f02d76791c0955ba9210d98c3abd879c770ae28ea')
version('3.2.0', sha256='b051f852600ffdf07e337a7f15673da23f9201a9dbb482bd513756a3e5a196a6')
@@ -172,14 +174,29 @@ class Gdal(AutotoolsPackage):
conflicts('+mdb', when='~java', msg='MDB driver requires Java')
- executables = ['^gdal-config$']
+ conflicts('+jasper', when='@3.5:', msg='JPEG2000 driver removed in GDAL 3.5')
+ conflicts('+openjpeg', when='@3.5:', msg='JPEG2000 driver removed in GDAL 3.5')
+ conflicts('+perl', when='@3.5:', msg='Perl bindings removed in GDAL 3.5')
+
+ # https://github.com/OSGeo/gdal/issues/3782
+ patch('https://github.com/OSGeo/gdal/pull/3786.patch', when='@3.3.0', level=2,
+ sha256='5e14c530289bfa1257277357baa8d485f852ea480152fb150d152c85af8d01f8')
- import_modules = PythonPackage.import_modules
+ executables = ['^gdal-config$']
@classmethod
def determine_version(cls, exe):
return Executable(exe)('--version', output=str, error=str).rstrip()
+ @property
+ def import_modules(self):
+ modules = ['osgeo']
+ if self.spec.satisfies('@3.3:'):
+ modules.append('osgeo_utils')
+ else:
+ modules.append('osgeo.utils')
+ return modules
+
def setup_build_environment(self, env):
# Needed to install Python bindings to GDAL installation
# prefix instead of Python installation prefix.
@@ -193,6 +210,17 @@ class Gdal(AutotoolsPackage):
classpath = os.pathsep.join(class_paths)
env.prepend_path('CLASSPATH', classpath)
+ # `spack test run gdal+python` requires these for the Python bindings
+ # to find the correct libraries
+ libs = []
+ for dep in self.spec.dependencies(deptype='link'):
+ query = self.spec[dep.name]
+ libs.extend(query.libs.directories)
+ if sys.platform == 'darwin':
+ env.prepend_path('DYLD_FALLBACK_LIBRARY_PATH', ':'.join(libs))
+ else:
+ env.prepend_path('LD_LIBRARY_PATH', ':'.join(libs))
+
def patch(self):
if '+java platform=darwin' in self.spec:
filter_file('linux', 'darwin', 'swig/java/java.opt', string=True)
@@ -222,7 +250,7 @@ class Gdal(AutotoolsPackage):
else:
args.append('--disable-driver-grib')
else:
- args.append('--without-bsb')
+ args.append('--with-bsb=no')
if '+grib' in spec:
args.append('--with-grib=yes')
@@ -480,8 +508,6 @@ class Gdal(AutotoolsPackage):
'--with-dods-root=no',
'--with-spatialite=no',
'--with-idb=no',
- # https://trac.osgeo.org/gdal/wiki/Epsilon
- '--with-epsilon=no',
'--with-webp=no',
'--with-freexl=no',
'--with-pam=no',
@@ -489,6 +515,11 @@ class Gdal(AutotoolsPackage):
'--with-rasdaman=no',
])
+ # TODO: add packages for these dependencies (only for 3.2 and older)
+ if spec.satisfies('@:3.2'):
+ # https://trac.osgeo.org/gdal/wiki/Epsilon
+ args.append('--with-epsilon=no')
+
# TODO: add packages for these dependencies (only for 3.1 and older)
if spec.satisfies('@:3.1'):
# https://trac.osgeo.org/gdal/wiki/ArcSDE