about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederik Rietdijk <freddyrietdijk@fridh.nl>2019-07-15 21:14:04 +0200
committerGitHub <noreply@github.com>2019-07-15 21:14:04 +0200
commit800da69c8a5eae83bceee98af0c09e1b3440b3bf (patch)
treeca631e2a86d5e6bb40e95d6fa13c79b0d4d8940b
parent2e1a90e5d018a5e6b1dc1b5b3c726d6be26b22f8 (diff)
parente6223c022b94fad4b85e88319515d6f58910b5d7 (diff)
downloadnixlib-800da69c8a5eae83bceee98af0c09e1b3440b3bf.tar
nixlib-800da69c8a5eae83bceee98af0c09e1b3440b3bf.tar.gz
nixlib-800da69c8a5eae83bceee98af0c09e1b3440b3bf.tar.bz2
nixlib-800da69c8a5eae83bceee98af0c09e1b3440b3bf.tar.lz
nixlib-800da69c8a5eae83bceee98af0c09e1b3440b3bf.tar.xz
nixlib-800da69c8a5eae83bceee98af0c09e1b3440b3bf.tar.zst
nixlib-800da69c8a5eae83bceee98af0c09e1b3440b3bf.zip
Merge pull request #64551 from jonringer/update-pyproj
proj: 5.2.0 -> 6.1.1
-rw-r--r--pkgs/applications/gis/grass/default.nix34
-rw-r--r--pkgs/applications/gis/openorienteering-mapper/default.nix5
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix21
-rw-r--r--pkgs/applications/gis/saga/default.nix8
-rw-r--r--pkgs/applications/gis/saga/lts.nix36
-rw-r--r--pkgs/applications/misc/merkaartor/default.nix2
-rw-r--r--pkgs/applications/misc/osm2xmap/default.nix2
-rw-r--r--pkgs/applications/science/astronomy/openspace/default.nix29
-rw-r--r--pkgs/development/libraries/gdal/001.3_0_1.darwin.patch29
-rw-r--r--pkgs/development/libraries/gdal/2.4.0.nix95
-rw-r--r--pkgs/development/libraries/gdal/default.nix46
-rw-r--r--pkgs/development/libraries/gdal/gdal-1_11.nix9
-rw-r--r--pkgs/development/libraries/libgeotiff/default.nix19
-rw-r--r--pkgs/development/libraries/libspatialite/default.nix3
-rw-r--r--pkgs/development/libraries/proj-datumgrid/default.nix32
-rw-r--r--pkgs/development/libraries/proj/5.2.nix20
-rw-r--r--pkgs/development/libraries/proj/default.nix21
-rw-r--r--pkgs/development/python-modules/cartopy/default.nix9
-rw-r--r--pkgs/development/python-modules/fiona/default.nix6
-rw-r--r--pkgs/development/python-modules/pyproj/001.proj.patch47
-rw-r--r--pkgs/development/python-modules/pyproj/default.nix55
-rw-r--r--pkgs/tools/misc/osm2pgsql/default.nix34
-rw-r--r--pkgs/top-level/all-packages.nix14
-rw-r--r--pkgs/top-level/python-packages.nix12
24 files changed, 409 insertions, 179 deletions
diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix
index b7cf84ff9591..360d94d1b825 100644
--- a/pkgs/applications/gis/grass/default.nix
+++ b/pkgs/applications/gis/grass/default.nix
@@ -1,19 +1,23 @@
-{ stdenv, fetchurl, flex, bison, pkgconfig, zlib, libtiff, libpng, fftw
+{ stdenv, fetchFromGitHub, flex, bison, pkgconfig, zlib, libtiff, libpng, fftw
 , cairo, readline, ffmpeg, makeWrapper, wxGTK30, netcdf, blas
-, proj, gdal, geos, sqlite, postgresql, mysql, python2Packages, libLAS
+, proj, gdal, geos, sqlite, postgresql, mysql, python2Packages, libLAS, proj-datumgrid
 }:
 
-stdenv.mkDerivation {
-  name = "grass-7.2.2";
-  src = fetchurl {
-    url = https://grass.osgeo.org/grass72/source/grass-7.2.2.tar.gz;
-    sha256 = "0yzljbrxlqp4wbw08n1dvmm4vmwkg8glf1ff4xyh589r5ryb7gxv";
+stdenv.mkDerivation rec {
+  name = "grass";
+  version = "7.6.1";
+
+  src = with stdenv.lib; fetchFromGitHub {
+    owner = "OSGeo";
+    repo = "grass";
+    rev = "${name}_${replaceStrings ["."] ["_"] version}";
+    sha256 = "1amjk9rz7vw5ha7nyl5j2bfwj5if9w62nlwx5qbp1x7spldimlll";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo
+  buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo proj
   readline ffmpeg makeWrapper wxGTK30 netcdf geos postgresql mysql.connector-c blas
-  libLAS ]
+  libLAS proj-datumgrid ]
     ++ (with python2Packages; [ python dateutil wxPython30 numpy ]);
 
   # On Darwin the installer tries to symlink the help files into a system
@@ -22,6 +26,8 @@ stdenv.mkDerivation {
 
   configureFlags = [
     "--with-proj-share=${proj}/share/proj"
+    "--with-proj-includes=${proj.dev}/include"
+    "--with-proj-lib=${proj}/lib"
     "--without-opengl"
     "--with-readline"
     "--with-wxwidgets"
@@ -49,9 +55,11 @@ stdenv.mkDerivation {
       scripts/d.what.vect/d.what.vect.py \
       scripts/g.extension/g.extension.py \
       scripts/g.extension.all/g.extension.all.py \
+      scripts/r.drain/r.drain.py \
       scripts/r.pack/r.pack.py \
       scripts/r.tileset/r.tileset.py \
       scripts/r.unpack/r.unpack.py \
+      scripts/v.clip/v.clip.py \
       scripts/v.rast.stats/v.rast.stats.py \
       scripts/v.to.lines/v.to.lines.py \
       scripts/v.what.strds/v.what.strds.py \
@@ -72,13 +80,15 @@ stdenv.mkDerivation {
     done
   '';
 
+  NIX_CFLAGS_COMPILE = [ "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1" ];
+
   postInstall = ''
-    wrapProgram $out/bin/grass72 \
+    wrapProgram $out/bin/grass76 \
     --set PYTHONPATH $PYTHONPATH \
     --set GRASS_PYTHON ${python2Packages.python}/bin/${python2Packages.python.executable} \
     --suffix LD_LIBRARY_PATH ':' '${gdal}/lib'
-    ln -s $out/grass-*/lib $out/lib
-    ln -s $out/grass-*/include $out/include
+    ln -s $out/grass*/lib $out/lib
+    ln -s $out/grass*/include $out/include
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/gis/openorienteering-mapper/default.nix b/pkgs/applications/gis/openorienteering-mapper/default.nix
index a5a0492ab876..b4d3e9f93a47 100644
--- a/pkgs/applications/gis/openorienteering-mapper/default.nix
+++ b/pkgs/applications/gis/openorienteering-mapper/default.nix
@@ -20,9 +20,6 @@ stdenv.mkDerivation rec {
 
   cmakeFlags =
     [
-    # Required by the build to be specified
-    "-DPROJ4_ROOT=${proj}"
-
     # Building the manual and bundling licenses fails
     "-DLICENSING_PROVIDER:BOOL=OFF"
     "-DMapper_MANUAL_QTHELP:BOOL=OFF"
@@ -43,6 +40,8 @@ stdenv.mkDerivation rec {
     "-DMapper_PACKAGE_GDAL=0"
     ]);
 
+  # Needs to be available when proj_api.h gets evaluted by CPP
+  NIX_CFLAGS_COMPILE = [ "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" ];
 
   postInstall =
     stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 6e7fb375eab9..a57b180d5b23 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -1,6 +1,6 @@
-{ stdenv, lib, fetchurl, cmake, ninja, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
+{ stdenv, lib, fetchFromGitHub, cmake, ninja, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
 , qwt, fcgi, python3Packages, libspatialindex, libspatialite, postgresql
-, txt2tags, openssl, libzip, hdf5, netcdf
+, txt2tags, openssl, libzip, hdf5, netcdf, exiv2
 , qtbase, qtwebkit, qtsensors, qca-qt5, qtkeychain, qscintilla, qtserialport, qtxmlpatterns
 , withGrass ? true, grass
 }:
@@ -10,12 +10,15 @@ let
     [ qscintilla-qt5 gdal jinja2 numpy psycopg2
       chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ];
 in stdenv.mkDerivation rec {
-  version = "3.4.8";
-  name = "qgis-unwrapped-${version}";
+  version = "3.8.0";
+  pname = "qgis";
+  name = "${pname}-unwrapped-${version}";
 
-  src = fetchurl {
-    url = "http://qgis.org/downloads/qgis-${version}.tar.bz2";
-    sha256 = "13dy9y7ipv25x3k31njhjljdav36xay6s82g6ywaqf1xxh3s567w";
+  src = fetchFromGitHub {
+    owner = "qgis";
+    repo = "QGIS";
+    rev = "final-${lib.replaceStrings ["."] ["_"] version}";
+    sha256 = "11jqj6lavpw9piv0rm8vvbgd99zhcxl6yfjg699wlrjlyf71xac5";
   };
 
   passthru = {
@@ -23,7 +26,7 @@ in stdenv.mkDerivation rec {
     inherit python3Packages;
   };
 
-  buildInputs = [ openssl proj geos xlibsWrapper sqlite gsl qwt
+  buildInputs = [ openssl proj geos xlibsWrapper sqlite gsl qwt exiv2
     fcgi libspatialindex libspatialite postgresql txt2tags libzip hdf5 netcdf
     qtbase qtwebkit qtsensors qca-qt5 qtkeychain qscintilla qtserialport qtxmlpatterns] ++
     (stdenv.lib.optional withGrass grass) ++ pythonBuildInputs;
@@ -36,7 +39,7 @@ in stdenv.mkDerivation rec {
   # build to use PYQT5_SIP_DIR consistently.
   postPatch = ''
      substituteInPlace cmake/FindPyQt5.py \
-       --replace 'pyqtcfg.pyqt_sip_dir' '"${python3Packages.pyqt5}/share/sip/PyQt5"'
+       --replace 'sip_dir = cfg.default_sip_dir' 'sip_dir = "${python3Packages.pyqt5}/share/sip/PyQt5"'
    '';
 
   cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF"
diff --git a/pkgs/applications/gis/saga/default.nix b/pkgs/applications/gis/saga/default.nix
index 34bb8c9f55ad..7440e2633a33 100644
--- a/pkgs/applications/gis/saga/default.nix
+++ b/pkgs/applications/gis/saga/default.nix
@@ -3,7 +3,9 @@
   unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull, giflib }:
 
 stdenv.mkDerivation rec {
-  name = "saga-7.2.0";
+  pname = "saga";
+  version = "7.3.0";
+  name = "${pname}-${version}";
 
   # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs
   # for why the have additional buildInputs on darwin
@@ -17,8 +19,8 @@ stdenv.mkDerivation rec {
   CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/saga-gis/SAGA%20-%207/SAGA%20-%207.2.0/saga-7.2.0.tar.gz";
-    sha256 = "10gjc5mc5kwg2c2la22hgwx6s5q60z9xxffjpjw0zrlhksijl5an";
+    url = "https://sourceforge.net/projects/saga-gis/files/SAGA%20-%207/SAGA%20-%207.3.0/saga-7.3.0.tar.gz";
+    sha256 = "1g7v6vx7b8mfhbbg03pdk4kyks20maqbcdbasnxazhs8pl2zih7k";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/gis/saga/lts.nix b/pkgs/applications/gis/saga/lts.nix
deleted file mode 100644
index ca0034aa9708..000000000000
--- a/pkgs/applications/gis/saga/lts.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ stdenv, fetchgit, gdal, wxGTK30, proj, libiodbc, lzma, jasper,
-  libharu, opencv, vigra, postgresql, autoreconfHook, Cocoa
-  , unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull, giflib }:
-
-stdenv.mkDerivation rec {
-  name = "saga-2.3.2";
-
-  # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs
-  # for why the have additional buildInputs on darwin
-  buildInputs = [ autoreconfHook gdal wxGTK30 proj libharu opencv vigra
-                  postgresql libiodbc lzma jasper
-                  unixODBC poppler hdf4.out hdf5 netcdf sqlite qhull giflib ]
-                ++ stdenv.lib.optional stdenv.isDarwin Cocoa ;
-
-  enableParallelBuilding = true;
-
-  CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing";
-
-  sourceRoot = "code-b6f474f/saga-gis";
-
-  patches = [ ./clang_patch.patch ./finite.patch];
-
-  src = fetchgit {
-    url = "https://git.code.sf.net/p/saga-gis/code.git";
-    rev = "b6f474f8af4af7f0ff82548cc6f88c53547d91f5";
-    sha256 = "0iakynai8mhcwj6wxvafkqhd7b417ss7hyhbcp9wf6092l6vc2zd";
-  };
-
-  meta = with stdenv.lib; {
-    description = "System for Automated Geoscientific Analyses";
-    homepage = http://www.saga-gis.org;
-    license = licenses.gpl2Plus;
-    maintainers = [ maintainers.mpickering ];
-    platforms = with platforms; unix;
-  };
-}
diff --git a/pkgs/applications/misc/merkaartor/default.nix b/pkgs/applications/misc/merkaartor/default.nix
index 0833464f2c25..dec55e9c1e5c 100644
--- a/pkgs/applications/misc/merkaartor/default.nix
+++ b/pkgs/applications/misc/merkaartor/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  NIX_CFLAGS_COMPILE = [ "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" ];
+
   postInstall = ''
     wrapProgram $out/bin/merkaartor \
       --set QT_QPA_PLATFORM_PLUGIN_PATH ${qtbase.bin}/lib/qt-*/plugins/platforms
diff --git a/pkgs/applications/misc/osm2xmap/default.nix b/pkgs/applications/misc/osm2xmap/default.nix
index 5787adef2a3e..9d0fb3fdeb7c 100644
--- a/pkgs/applications/misc/osm2xmap/default.nix
+++ b/pkgs/applications/misc/osm2xmap/default.nix
@@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
     "INSTALL_SHAREDIR=$(out)/share/"
   ];
 
+  NIX_CFLAGS_COMPILE = [ "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" ];
+
   installFlags = [ "DESTDIR=$(out)" ];
 
   buildInputs = [ libroxml proj libyamlcpp boost ];
diff --git a/pkgs/applications/science/astronomy/openspace/default.nix b/pkgs/applications/science/astronomy/openspace/default.nix
index ee3a71cf1813..dc7c7c920a17 100644
--- a/pkgs/applications/science/astronomy/openspace/default.nix
+++ b/pkgs/applications/science/astronomy/openspace/default.nix
@@ -5,7 +5,7 @@
 stdenv.mkDerivation rec {
   version = "0.11.1";
   name    = "openspace-${version}";
-  
+
   src = fetchFromGitHub {
     owner  = "OpenSpace";
     repo   = "OpenSpace";
@@ -13,37 +13,37 @@ stdenv.mkDerivation rec {
     sha256 = "0msqixf30r0d41xmfmzkdfw6w9jkx2ph5clq8xiwrg1jc3z9q7nv";
     fetchSubmodules = true;
   };
-  
+
   buildInputs = [
     makeWrapper cmake
     curl boost gdal glew soil
     libX11 libXi libXxf86vm libXcursor libXrandr libXinerama
   ];
-      
+
   glmPlatformH = fetchurl {
     url    = "https://raw.githubusercontent.com/g-truc/glm/dd48b56e44d699a022c69155c8672caacafd9e8a/glm/simd/platform.h";
     sha256 = "0y91hlbgn5va7ijg5mz823gqkq9hqxl00lwmdwnf8q2g086rplzw";
   };
-  
+
   # See <https://github.com/g-truc/glm/issues/726>
   prePatch = ''
     cp ${glmPlatformH} ext/sgct/include/glm/simd/platform.h
     cp ${glmPlatformH} ext/ghoul/ext/glm/glm/simd/platform.h
   '';
-  
+
   patches = [
     # See <https://github.com/opensgct/sgct/issues/13>
     ./vrpn.patch
-    
+
     ./constexpr.patch
     ./config.patch
 
     # WARNING: This patch disables some slow torrents in a very dirty way.
-    ./assets.patch 
+    ./assets.patch
   ];
-  
+
   bundle = "$out/usr/share/openspace";
-  
+
   preConfigure = ''
     cmakeFlagsArray=(
       $cmakeFlagsArray
@@ -51,28 +51,28 @@ stdenv.mkDerivation rec {
       "-DCMAKE_INSTALL_PREFIX=${bundle}"
     )
   '';
-  
+
   preInstall = ''
     mkdir -p $out/bin
     mkdir -p ${bundle}
   '';
-  
+
   postInstall = ''
     cp ext/spice/libSpice.so       ${bundle}/lib
     cp ext/ghoul/ext/lua/libLua.so ${bundle}/lib
   '';
-  
+
   postFixup = ''
     for bin in ${bundle}/bin/*
     do
       rpath=$(patchelf --print-rpath $bin)
       patchelf --set-rpath $rpath:${bundle}/lib $bin
-      
+
       name=$(basename $bin)
       makeWrapper $bin $out/bin/$name --run "cd ${bundle}"
     done
   '';
-  
+
   meta = {
     description     = "Open-source astrovisualization project";
     longDescription = ''
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     homepage  = https://www.openspaceproject.com/;
     license   = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.linux;
+    broken = true; # fails to build
   };
 }
diff --git a/pkgs/development/libraries/gdal/001.3_0_1.darwin.patch b/pkgs/development/libraries/gdal/001.3_0_1.darwin.patch
new file mode 100644
index 000000000000..3d34f689120f
--- /dev/null
+++ b/pkgs/development/libraries/gdal/001.3_0_1.darwin.patch
@@ -0,0 +1,29 @@
+diff a/swig/python/setup.py b/swig/python/setup.py
+--- a/swig/python/setup.py
++++ b/swig/python/setup.py
+@@ -268,17 +268,17 @@ class gdal_ext(build_ext):
+                     if ext.name != 'osgeo._gdalconst':
+                         ext.extra_compile_args += [cxx11_flag]
+ 
+-        # Adding arch flags here if OS X and compiler is clang
+-        if sys.platform == 'darwin' and [int(x) for x in os.uname()[2].split('.')] >= [11, 0, 0]:
+-            # since MacOS X 10.9, clang no longer accepts -mno-fused-madd
+-            # extra_compile_args.append('-Qunused-arguments')
+-            clang_flag = '-Wno-error=unused-command-line-argument-hard-error-in-future'
+-            if has_flag(self.compiler, clang_flag): 
+-                ext.extra_compile_args += [clang_flag]
+-            else:
+-                clang_flag = '-Wno-error=unused-command-line-argument'
+-                if has_flag(self.compiler, clang_flag):
+-                    ext.extra_compile_args += [clang_flag]
++                    # Adding arch flags here if OS X and compiler is clang
++                    if sys.platform == 'darwin' and [int(x) for x in os.uname()[2].split('.')] >= [11, 0, 0]:
++                        # since MacOS X 10.9, clang no longer accepts -mno-fused-madd
++                        # extra_compile_args.append('-Qunused-arguments')
++                        clang_flag = '-Wno-error=unused-command-line-argument-hard-error-in-future'
++                        if has_flag(self.compiler, clang_flag): 
++                            ext.extra_compile_args += [clang_flag]
++                        else:
++                            clang_flag = '-Wno-error=unused-command-line-argument'
++                            if has_flag(self.compiler, clang_flag):
++                                ext.extra_compile_args += [clang_flag]
diff --git a/pkgs/development/libraries/gdal/2.4.0.nix b/pkgs/development/libraries/gdal/2.4.0.nix
new file mode 100644
index 000000000000..14113d8b87eb
--- /dev/null
+++ b/pkgs/development/libraries/gdal/2.4.0.nix
@@ -0,0 +1,95 @@
+{ stdenv, fetchurl, fetchpatch, unzip, libjpeg, libtiff, zlib
+, postgresql, mysql, libgeotiff, pythonPackages, proj, geos, openssl
+, libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat
+, libiconv, libxml2
+, netcdfSupport ? true, netcdf, hdf5, curl
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "gdal-${version}";
+  version = "2.4.0";
+
+  src = fetchurl {
+    url = "https://download.osgeo.org/gdal/${version}/${name}.tar.xz";
+    sha256 = "09qgy36z0jc9w05373m4n0vm4j54almdzql6z9p9zr9pdp61syf3";
+  };
+
+  buildInputs = [ unzip libjpeg libtiff libgeotiff libpng proj openssl sqlite
+    libspatialite poppler hdf4 qhull giflib expat libxml2 proj ]
+  ++ (with pythonPackages; [ python numpy wrapPython ])
+  ++ stdenv.lib.optional stdenv.isDarwin libiconv
+  ++ stdenv.lib.optionals netcdfSupport [ netcdf hdf5 curl ];
+
+  configureFlags = [
+    "--with-expat=${expat.dev}"
+    "--with-jpeg=${libjpeg.dev}"
+    "--with-libtiff=${libtiff.dev}" # optional (without largetiff support)
+    "--with-png=${libpng.dev}"      # optional
+    "--with-poppler=${poppler.dev}" # optional
+    "--with-libz=${zlib.dev}"       # optional
+    "--with-pg=${postgresql}/bin/pg_config"
+    "--with-mysql=${mysql.connector-c or mysql}/bin/mysql_config"
+    "--with-geotiff=${libgeotiff.dev}"
+    "--with-sqlite3=${sqlite.dev}"
+    "--with-spatialite=${libspatialite}"
+    "--with-python"               # optional
+    "--with-proj=${proj.dev}" # optional
+    "--with-geos=${geos}/bin/geos-config"# optional
+    "--with-hdf4=${hdf4.dev}" # optional
+    "--with-xml2=${libxml2.dev}/bin/xml2-config" # optional
+    (if netcdfSupport then "--with-netcdf=${netcdf}" else "")
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  CXXFLAGS = "-fpermissive";
+
+  postPatch = ''
+    sed -i '/ifdef bool/i\
+      #ifdef swap\
+      #undef swap\
+      #endif' ogr/ogrsf_frmts/mysql/ogr_mysql.h
+    # poppler 0.73.0 support
+    patch -lp2 <${
+      fetchpatch {
+        url = "https://github.com/OSGeo/gdal/commit/29f4dfbcac2de718043f862166cd639ab578b552.diff";
+        sha256 = "1h2rsjjrgwqfgqzppmzv5jgjs1dbbg8pvfmay0j9y0618qp3r734";
+      }
+    } || true
+    patch -p2 <${
+      fetchpatch {
+        url = "https://github.com/OSGeo/gdal/commit/19967e682738977e11e1d0336e0178882c39cad2.diff";
+        sha256 = "12yqd77226i6xvzgqmxiac5ghdinixh8k2crg1r2gnhc0xlc3arj";
+      }
+    }
+  '';
+
+  # - Unset CC and CXX as they confuse libtool.
+  # - teach gdal that libdf is the legacy name for libhdf
+  preConfigure = ''
+      unset CC CXX
+      substituteInPlace configure \
+      --replace "-lmfhdf -ldf" "-lmfhdf -lhdf"
+    '';
+
+  preBuild = ''
+    substituteInPlace swig/python/GNUmakefile \
+      --replace "ifeq (\$(STD_UNIX_LAYOUT),\"TRUE\")" "ifeq (1,1)"
+  '';
+
+  postInstall = ''
+    wrapPythonPrograms
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Translator library for raster geospatial data formats";
+    homepage = https://www.gdal.org/;
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.marcweber ];
+    platforms = with stdenv.lib.platforms; linux ++ darwin;
+  };
+}
diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix
index e7ffdde6cb1c..0db16e2efe3a 100644
--- a/pkgs/development/libraries/gdal/default.nix
+++ b/pkgs/development/libraries/gdal/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, fetchpatch, unzip, libjpeg, libtiff, zlib
+{ stdenv, fetchFromGitHub, fetchpatch, unzip, libjpeg, libtiff, zlib
 , postgresql, mysql, libgeotiff, pythonPackages, proj, geos, openssl
 , libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat
-, libiconv, libxml2
+, libiconv, libxml2, autoreconfHook
 , netcdfSupport ? true, netcdf, hdf5, curl
 }:
 
@@ -9,15 +9,23 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "gdal-${version}";
-  version = "2.4.0";
+  version = "3.0.1";
 
-  src = fetchurl {
-    url = "https://download.osgeo.org/gdal/${version}/${name}.tar.xz";
-    sha256 = "09qgy36z0jc9w05373m4n0vm4j54almdzql6z9p9zr9pdp61syf3";
+  src = fetchFromGitHub {
+    owner = "OSGeo";
+    repo = "gdal";
+    rev = "v${version}";
+    sha256 = "04rraqhygv8b8fy87qvdhkgx87whby9n98p3gxqr7kdrfymwnh8l";
   };
 
+  sourceRoot = "source/gdal";
+
+  patches = [ ./001.3_0_1.darwin.patch ];
+
+  nativeBuildInputs = [ autoreconfHook ];
+
   buildInputs = [ unzip libjpeg libtiff libpng proj openssl sqlite
-    libspatialite poppler hdf4 qhull giflib expat libxml2 ]
+    libspatialite libgeotiff poppler hdf4 qhull giflib expat libxml2 ]
   ++ (with pythonPackages; [ python numpy wrapPython ])
   ++ stdenv.lib.optional stdenv.isDarwin libiconv
   ++ stdenv.lib.optionals netcdfSupport [ netcdf hdf5 curl ];
@@ -35,7 +43,7 @@ stdenv.mkDerivation rec {
     "--with-sqlite3=${sqlite.dev}"
     "--with-spatialite=${libspatialite}"
     "--with-python"               # optional
-    "--with-proj=${proj}" # optional
+    "--with-proj=${proj.dev}" # optional
     "--with-geos=${geos}/bin/geos-config"# optional
     "--with-hdf4=${hdf4.dev}" # optional
     "--with-xml2=${libxml2.dev}/bin/xml2-config" # optional
@@ -46,31 +54,9 @@ stdenv.mkDerivation rec {
 
   CXXFLAGS = "-fpermissive";
 
-  postPatch = ''
-    sed -i '/ifdef bool/i\
-      #ifdef swap\
-      #undef swap\
-      #endif' ogr/ogrsf_frmts/mysql/ogr_mysql.h
-
-    # poppler 0.73.0 support
-    patch -lp2 <${
-      fetchpatch {
-        url = "https://github.com/OSGeo/gdal/commit/29f4dfbcac2de718043f862166cd639ab578b552.diff";
-        sha256 = "1h2rsjjrgwqfgqzppmzv5jgjs1dbbg8pvfmay0j9y0618qp3r734";
-      }
-    } || true
-    patch -p2 <${
-      fetchpatch {
-        url = "https://github.com/OSGeo/gdal/commit/19967e682738977e11e1d0336e0178882c39cad2.diff";
-        sha256 = "12yqd77226i6xvzgqmxiac5ghdinixh8k2crg1r2gnhc0xlc3arj";
-      }
-    }
-  '';
-
   # - Unset CC and CXX as they confuse libtool.
   # - teach gdal that libdf is the legacy name for libhdf
   preConfigure = ''
-      unset CC CXX
       substituteInPlace configure \
       --replace "-lmfhdf -ldf" "-lmfhdf -lhdf"
     '';
diff --git a/pkgs/development/libraries/gdal/gdal-1_11.nix b/pkgs/development/libraries/gdal/gdal-1_11.nix
index 32101221e64c..40308a957915 100644
--- a/pkgs/development/libraries/gdal/gdal-1_11.nix
+++ b/pkgs/development/libraries/gdal/gdal-1_11.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0hphxzvy23v3vqxx1y22hhhg4cypihrb8555y12nb4mrhzlw7zfl";
   };
 
-  buildInputs = [ unzip libjpeg libtiff libpng python pythonPackages.numpy proj openssl ];
+  buildInputs = [ unzip libjpeg libtiff libgeotiff libpng python pythonPackages.numpy proj openssl ];
 
   patches = [
     # This ensures that the python package is installed into gdal's prefix,
@@ -33,12 +33,17 @@ stdenv.mkDerivation rec {
 
     "--with-pg=${postgresql}/bin/pg_config"
     "--with-mysql=${mysql57.connector-c}/bin/mysql_config"
-    "--with-geotiff=${libgeotiff}"
+    "--with-geotiff=${libgeotiff.dev}"
     "--with-python"               # optional
     "--with-static-proj4=${proj}" # optional
     "--with-geos=${geos}/bin/geos-config"# optional
   ];
 
+  # Allow use of old proj_api.h
+  NIX_CFLAGS_COMPILE = [
+    "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1"
+  ];
+
   # Prevent this:
   #
   #   Checking .pth file support in /nix/store/xkrmb8xnvqxzjwsdmasqmsdh1a5y2y99-gdal-1.11.2/lib/python2.7/site-packages/
diff --git a/pkgs/development/libraries/libgeotiff/default.nix b/pkgs/development/libraries/libgeotiff/default.nix
index 33b9e7830e71..51520eb0fe38 100644
--- a/pkgs/development/libraries/libgeotiff/default.nix
+++ b/pkgs/development/libraries/libgeotiff/default.nix
@@ -1,18 +1,27 @@
-{ stdenv, fetchurl, libtiff, libjpeg, proj, zlib}:
+{ stdenv, fetchFromGitHub, libtiff, libjpeg, proj, zlib, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "1.4.3";
+  version = "1.5.1";
   name = "libgeotiff-${version}";
 
-  src = fetchurl {
-    url = "https://download.osgeo.org/geotiff/libgeotiff/${name}.tar.gz";
-    sha256 = "0rbjqixi4c8yz19larlzq6jda0px2gpmpp9c52cyhplbjsdhsldq";
+  src = fetchFromGitHub {
+    owner = "OSGeo";
+    repo = "libgeotiff";
+    rev = version;
+    sha256 = "081ag23pn2n5y4fkb2rnh4hmcnq92siqiqv0s20jmx0j3s2nvfxy";
   };
 
+  outputs = [ "out" "dev" ];
+
+  sourceRoot = "source/libgeotiff";
+
   configureFlags = [
     "--with-jpeg=${libjpeg.dev}"
     "--with-zlib=${zlib.dev}"
   ];
+
+  nativeBuildInputs = [ autoreconfHook ];
+
   buildInputs = [ libtiff proj ];
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/development/libraries/libspatialite/default.nix b/pkgs/development/libraries/libspatialite/default.nix
index 8e7b539527e1..7bd22248d876 100644
--- a/pkgs/development/libraries/libspatialite/default.nix
+++ b/pkgs/development/libraries/libspatialite/default.nix
@@ -11,12 +11,15 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
+
   buildInputs = [ libxml2 sqlite zlib proj geos libiconv ];
 
   configureFlags = [ "--disable-freexl" ];
 
   enableParallelBuilding = true;
 
+  CFLAGS = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1";
+
   postInstall = "" + optionalString stdenv.isDarwin ''
     ln -s $out/lib/mod_spatialite.{so,dylib}
   '';
diff --git a/pkgs/development/libraries/proj-datumgrid/default.nix b/pkgs/development/libraries/proj-datumgrid/default.nix
new file mode 100644
index 000000000000..f1c13e93aecd
--- /dev/null
+++ b/pkgs/development/libraries/proj-datumgrid/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "proj-datumgrid";
+  version = "world-1.0";
+
+  src = fetchFromGitHub {
+    owner = "OSGeo";
+    repo = "proj-datumgrid";
+    rev = version;
+    sha256 = "132wp77fszx33wann0fjkmi1isxvsb0v9iw0gd9sxapa9h6hf3am";
+  };
+
+  sourceRoot = "source/scripts";
+
+  buildPhase = ''
+    $CC nad2bin.c -o nad2bin
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp nad2bin $out/bin/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Repository for proj datum grids";
+    homepage = https://proj4.org;
+    license = licenses.mit;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/libraries/proj/5.2.nix b/pkgs/development/libraries/proj/5.2.nix
new file mode 100644
index 000000000000..8fb4515e70da
--- /dev/null
+++ b/pkgs/development/libraries/proj/5.2.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "proj-5.2.0";
+
+  src = fetchurl {
+    url = https://download.osgeo.org/proj/proj-5.2.0.tar.gz;
+    sha256 = "0q3ydh2j8qhwlxmnac72pg69rw2znbi5b6k5wama8qmwzycr94gg";
+  };
+
+  doCheck = stdenv.is64bit;
+
+  meta = with stdenv.lib; {
+    description = "Cartographic Projections Library";
+    homepage = https://proj4.org;
+    license = licenses.mit;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ vbgl ];
+  };
+}
diff --git a/pkgs/development/libraries/proj/default.nix b/pkgs/development/libraries/proj/default.nix
index 8fb4515e70da..ea89dbee0f61 100644
--- a/pkgs/development/libraries/proj/default.nix
+++ b/pkgs/development/libraries/proj/default.nix
@@ -1,13 +1,22 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchFromGitHub, pkg-config, sqlite, autoreconfHook }:
 
-stdenv.mkDerivation {
-  name = "proj-5.2.0";
+stdenv.mkDerivation rec {
+  name = "proj";
+  version = "6.1.1";
 
-  src = fetchurl {
-    url = https://download.osgeo.org/proj/proj-5.2.0.tar.gz;
-    sha256 = "0q3ydh2j8qhwlxmnac72pg69rw2znbi5b6k5wama8qmwzycr94gg";
+  src = fetchFromGitHub {
+    owner = "OSGeo";
+    repo = "PROJ";
+    rev = version;
+    sha256 = "0w2v2l22kv0xzq5hwl7n8ki6an8vfsr0lg0cdbkwcl4xv889ysma";
   };
 
+  outputs = [ "out" "dev"];
+
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
+
+  buildInputs = [ sqlite ];
+
   doCheck = stdenv.is64bit;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/cartopy/default.nix b/pkgs/development/python-modules/cartopy/default.nix
index e54136a50276..117b6fed5971 100644
--- a/pkgs/development/python-modules/cartopy/default.nix
+++ b/pkgs/development/python-modules/cartopy/default.nix
@@ -1,9 +1,10 @@
 { buildPythonPackage, lib, fetchPypi
 , pytest, filelock, mock, pep8
 , cython, isPy27
-, six, pyshp, shapely, geos, proj, numpy
+, six, pyshp, shapely, geos, numpy
 , gdal, pillow, matplotlib, pyepsg, pykdtree, scipy, owslib, fiona
 , xvfb_run
+, proj_5 # see https://github.com/SciTools/cartopy/pull/1252 for status on proj 6 support
 }:
 
 buildPythonPackage rec {
@@ -27,17 +28,17 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
     ${maybeXvfbRun} pytest --pyargs cartopy \
       -m "not network and not natural_earth" \
-      -k "not test_nightshade_image"
+      -k "not test_nightshade_image and not background_img"
   '';
 
   nativeBuildInputs = [
     cython
     geos # for geos-config
-    proj
+    proj_5
   ];
 
   buildInputs = [
-    geos proj
+    geos proj_5
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/fiona/default.nix b/pkgs/development/python-modules/fiona/default.nix
index ebd100037b25..6dd74742741e 100644
--- a/pkgs/development/python-modules/fiona/default.nix
+++ b/pkgs/development/python-modules/fiona/default.nix
@@ -1,7 +1,7 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy3k, pythonOlder
 , attrs, click, cligj, click-plugins, six, munch, enum34
 , pytest, boto3, mock
-, gdal
+, gdal_2 # can't bump to 3 yet, https://github.com/Toblerity/Fiona/issues/745
 }:
 
 buildPythonPackage rec {
@@ -16,11 +16,11 @@ buildPythonPackage rec {
   CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11";
 
   nativeBuildInputs = [
-    gdal # for gdal-config
+    gdal_2 # for gdal-config
   ];
 
   buildInputs = [
-    gdal
+    gdal_2
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyproj/001.proj.patch b/pkgs/development/python-modules/pyproj/001.proj.patch
new file mode 100644
index 000000000000..b024c28156c1
--- /dev/null
+++ b/pkgs/development/python-modules/pyproj/001.proj.patch
@@ -0,0 +1,47 @@
+diff a/pyproj/datadir.py b/pyproj/datadir.py
+--- a/pyproj/datadir.py
++++ b/pyproj/datadir.py
+@@ -52,6 +52,7 @@ def get_data_dir():
+     str: The valid data directory.
+
+     """
++    return "@proj@/share/proj"
+     # to avoid re-validating
+     global _VALIDATED_PROJ_DATA
+     if _VALIDATED_PROJ_DATA is not None:
+diff a/setup.py b/setup.py
+--- a/setup.py
++++ b/setup.py
+@@ -16,7 +16,7 @@ INTERNAL_PROJ_DIR = os.path.join(CURRENT_FILE_PATH, "pyproj", BASE_INTERNAL_PROJ
+
+ def check_proj_version(proj_dir):
+     """checks that the PROJ library meets the minimum version"""
+-    proj = os.path.join(proj_dir, "bin", "proj")
++    proj = "@proj@/bin/proj"
+     proj_ver_bytes = subprocess.check_output(proj, stderr=subprocess.STDOUT)
+     proj_ver_bytes = (proj_ver_bytes.decode("ascii").split()[1]).strip(",")
+     proj_version = parse_version(proj_ver_bytes)
+@@ -33,6 +33,7 @@ def get_proj_dir():
+     """
+     This function finds the base PROJ directory.
+     """
++    return "@proj@"
+     proj_dir = os.environ.get("PROJ_DIR")
+     if proj_dir is None and os.path.exists(INTERNAL_PROJ_DIR):
+         proj_dir = INTERNAL_PROJ_DIR
+@@ -56,6 +57,7 @@ def get_proj_libdirs(proj_dir):
+     """
+     This function finds the library directories
+     """
++    return ["@proj@/lib"]
+     proj_libdir = os.environ.get("PROJ_LIBDIR")
+     libdirs = []
+     if proj_libdir is None:
+@@ -77,6 +79,7 @@ def get_proj_incdirs(proj_dir):
+     """
+     This function finds the include directories
+     """
++    return ["@proj@/include"]
+     proj_incdir = os.environ.get("PROJ_INCDIR")
+     incdirs = []
+     if proj_incdir is None:
diff --git a/pkgs/development/python-modules/pyproj/default.nix b/pkgs/development/python-modules/pyproj/default.nix
index f08625f62b6d..ddfecbe8ec51 100644
--- a/pkgs/development/python-modules/pyproj/default.nix
+++ b/pkgs/development/python-modules/pyproj/default.nix
@@ -1,38 +1,49 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, nose2
+{ lib, buildPythonPackage, fetchPypi, python, pkgs, pythonOlder, substituteAll
+, aenum
 , cython
-, proj ? null
+, pytest
+, mock
+, numpy
 }:
 
-buildPythonPackage (rec {
+buildPythonPackage rec {
   pname = "pyproj";
-  version = "unstable-2018-11-13";
+  version = "2.2.1";
 
-  src = fetchFromGitHub {
-    owner = "jswhit";
-    repo = pname;
-    rev = "78540f5ff40da92160f80860416c91ee74b7643c";
-    sha256 = "1vq5smxmpdjxialxxglsfh48wx8kaq9sc5mqqxn4fgv1r5n1m3n9";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0yigcxwmx5cczipf2mpmy2gq1dnl0635yjvjq86ay47j1j5fd2gc";
   };
 
-  buildInputs = [ cython ];
+  # force pyproj to use ${pkgs.proj}
+  patches = [
+    (substituteAll {
+      src = ./001.proj.patch;
+      proj = pkgs.proj;
+    })
+  ];
 
-  checkInputs = [ nose2 ];
+  buildInputs = [ cython pkgs.proj ];
 
+  propagatedBuildInputs = [
+    numpy
+  ] ++ lib.optional (pythonOlder "3.6") aenum;
+
+  checkInputs = [ pytest mock ];
+
+  # ignore rounding errors, and impure docgen
+  # datadir is ignored because it does the proj look up logic, which isn't relevant
   checkPhase = ''
-    runHook preCheck
-    pushd unittest  # changing directory should ensure we're importing the global pyproj
-    ${python.interpreter} test.py && ${python.interpreter} -c "import doctest, pyproj, sys; sys.exit(doctest.testmod(pyproj)[0])"
-    popd
-    runHook postCheck
+    pytest . -k 'not alternative_grid_name \
+                 and not transform_wgs84_to_alaska \
+                 and not repr' \
+            --ignore=test/test_doctest_wrapper.py \
+            --ignore=test/test_datadir.py
   '';
 
   meta = {
     description = "Python interface to PROJ.4 library";
-    homepage = https://github.com/jswhit/pyproj;
+    homepage = "https://github.com/jswhit/pyproj";
     license = with lib.licenses; [ isc ];
   };
-} // (if proj == null then {} else { PROJ_DIR = proj; }))
+}
diff --git a/pkgs/tools/misc/osm2pgsql/default.nix b/pkgs/tools/misc/osm2pgsql/default.nix
index 67e0c2b21d83..f14fb5269970 100644
--- a/pkgs/tools/misc/osm2pgsql/default.nix
+++ b/pkgs/tools/misc/osm2pgsql/default.nix
@@ -1,28 +1,26 @@
-{ stdenv, fetchgit, cmake, expat, proj, bzip2, zlib, boost, postgresql, lua}:
+{ stdenv, fetchFromGitHub, cmake, expat, proj, bzip2, zlib, boost, postgresql, lua}:
 
-let
-  version = "0.92.1-unstable";
-in
 stdenv.mkDerivation rec {
   name = "osm2pgsql-${version}";
+  version = "0.96.0";
 
-  src = fetchgit {
-    url = "https://github.com/openstreetmap/osm2pgsql.git";
-    rev = "2b72b2121e91b72b0db6911d65c5165ca46d9d66";
-    # Still waiting on release after:
-    # https://github.com/openstreetmap/osm2pgsql/pull/684
-    # https://github.com/openstreetmap/osm2pgsql/issues/634
-    #rev = "refs/tags/${version}";
-    sha256 = "1v6s863zsv9p2mni35gfamawj0xr2cv2p8a31z7sijf8m6fn0vpy";
+  src = fetchFromGitHub {
+    owner = "openstreetmap";
+    repo = "osm2pgsql";
+    rev = version;
+    sha256 = "032cydh8ynaqfhdzmkvgbmqyjql668y6qln1l59l2s3ni9963bbl";
   };
-  nativeBuildInputs = [cmake];
-  buildInputs = [expat proj bzip2 zlib boost postgresql lua];
 
-  meta = {
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ expat proj bzip2 zlib boost postgresql lua ];
+
+  NIX_CFLAGS_COMPILE = [ "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" ];
+
+  meta = with stdenv.lib; {
     description = "OpenStreetMap data to PostgreSQL converter";
-    version = "0.92.1-unstable";
     homepage = https://github.com/openstreetmap/osm2pgsql;
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1acc477c0664..32528d03c850 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -10575,6 +10575,8 @@ in
 
   gdal_1_11 = callPackage ../development/libraries/gdal/gdal-1_11.nix { };
 
+  gdal_2 = callPackage ../development/libraries/gdal/2.4.0.nix { };
+
   gdcm = callPackage ../development/libraries/gdcm { };
 
   ggz_base_libs = callPackage ../development/libraries/ggz_base_libs {};
@@ -12727,6 +12729,10 @@ in
 
   proj = callPackage ../development/libraries/proj { };
 
+  proj_5 = callPackage ../development/libraries/proj/5.2.nix { };
+
+  proj-datumgrid = callPackage ../development/libraries/proj-datumgrid { };
+
   proselint = callPackage ../tools/text/proselint {
     inherit (python3Packages)
     buildPythonApplication click future six;
@@ -19100,7 +19106,9 @@ in
 
   mercurialFull = appendToName "full" (pkgs.mercurial.override { guiSupport = true; });
 
-  merkaartor = libsForQt59.callPackage ../applications/misc/merkaartor { };
+  merkaartor = libsForQt59.callPackage ../applications/misc/merkaartor {
+    gdal = gdal_2; # https://github.com/openstreetmap/merkaartor/issues/179
+  };
 
   meshlab = libsForQt5.callPackage ../applications/graphics/meshlab { };
 
@@ -21941,10 +21949,6 @@ in
     inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
 
-  saga_2_3_2 = callPackage ../applications/gis/saga/lts.nix {
-    inherit (darwin.apple_sdk.frameworks) Cocoa;
-  };
-
   samplv1 = callPackage ../applications/audio/samplv1 { };
 
   sauerbraten = callPackage ../games/sauerbraten {};
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 7b95941d0649..b8e85d775f5d 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2712,7 +2712,7 @@ in {
 
   filelock = callPackage ../development/python-modules/filelock {};
 
-  fiona = callPackage ../development/python-modules/fiona { gdal = pkgs.gdal; };
+  fiona = callPackage ../development/python-modules/fiona { gdal_2 = pkgs.gdal_2; };
 
   fitbit = callPackage ../development/python-modules/fitbit { };
 
@@ -4028,11 +4028,7 @@ in {
 
   pyotp = callPackage ../development/python-modules/pyotp { };
 
-  pyproj = callPackage ../development/python-modules/pyproj {
-    # pyproj does *work* if you want to use a system supplied proj, but with the current version(s) the tests fail by
-    # a few decimal places, so caveat emptor.
-    proj = null;
-  };
+  pyproj = callPackage ../development/python-modules/pyproj { };
 
   pyqrcode = callPackage ../development/python-modules/pyqrcode { };
 
@@ -4230,7 +4226,9 @@ in {
 
   rabbitpy = callPackage ../development/python-modules/rabbitpy { };
 
-  rasterio = callPackage ../development/python-modules/rasterio { };
+  rasterio = callPackage ../development/python-modules/rasterio {
+    gdal = pkgs.gdal_2; # gdal 3.0 not supported yet
+  };
 
   radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud {};