diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py
index 0f8427ec7c820ca9ba870fc8fb677aaf4a552420..3332b176eaac060f0979a8914640f336a050ce95 100644
--- a/var/spack/repos/builtin/packages/gdal/package.py
+++ b/var/spack/repos/builtin/packages/gdal/package.py
@@ -91,6 +91,7 @@ class Gdal(AutotoolsPackage):
     # Required dependencies
     depends_on('libtiff@3.6.0:')  # 3.9.0+ needed to pass testsuite
     depends_on('libgeotiff@1.2.1:')
+    depends_on('libgeotiff@:1.4', when='@:2.4')
     depends_on('libgeotiff@1.5:', when='@3:')
     depends_on('json-c', when='@2.3:')
     depends_on('json-c@0.12.1', when='@:2.2')
diff --git a/var/spack/repos/builtin/packages/ncl/package.py b/var/spack/repos/builtin/packages/ncl/package.py
index 4614c65d1010b0735902c96fa997828325fb1c16..aa4499c1c6e051142063d672f17247fcb58bff79 100644
--- a/var/spack/repos/builtin/packages/ncl/package.py
+++ b/var/spack/repos/builtin/packages/ncl/package.py
@@ -76,7 +76,7 @@ class Ncl(Package):
 
     # Some of the optional dependencies according to the manual:
     depends_on('hdf', when='+hdf4')
-    depends_on('gdal', when='+gdal')
+    depends_on('gdal+proj@:2.4', when='+gdal')
     depends_on('udunits2', when='+udunits2')
 
     # We need src files of triangle to appear in ncl's src tree if we want