diff options
author | Frederik Rietdijk <freddyrietdijk@fridh.nl> | 2019-07-15 21:14:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-15 21:14:04 +0200 |
commit | 800da69c8a5eae83bceee98af0c09e1b3440b3bf (patch) | |
tree | ca631e2a86d5e6bb40e95d6fa13c79b0d4d8940b /pkgs/development | |
parent | 2e1a90e5d018a5e6b1dc1b5b3c726d6be26b22f8 (diff) | |
parent | e6223c022b94fad4b85e88319515d6f58910b5d7 (diff) | |
download | nixlib-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
Diffstat (limited to 'pkgs/development')
-rw-r--r-- | pkgs/development/libraries/gdal/001.3_0_1.darwin.patch | 29 | ||||
-rw-r--r-- | pkgs/development/libraries/gdal/2.4.0.nix | 95 | ||||
-rw-r--r-- | pkgs/development/libraries/gdal/default.nix | 46 | ||||
-rw-r--r-- | pkgs/development/libraries/gdal/gdal-1_11.nix | 9 | ||||
-rw-r--r-- | pkgs/development/libraries/libgeotiff/default.nix | 19 | ||||
-rw-r--r-- | pkgs/development/libraries/libspatialite/default.nix | 3 | ||||
-rw-r--r-- | pkgs/development/libraries/proj-datumgrid/default.nix | 32 | ||||
-rw-r--r-- | pkgs/development/libraries/proj/5.2.nix | 20 | ||||
-rw-r--r-- | pkgs/development/libraries/proj/default.nix | 21 | ||||
-rw-r--r-- | pkgs/development/python-modules/cartopy/default.nix | 9 | ||||
-rw-r--r-- | pkgs/development/python-modules/fiona/default.nix | 6 | ||||
-rw-r--r-- | pkgs/development/python-modules/pyproj/001.proj.patch | 47 | ||||
-rw-r--r-- | pkgs/development/python-modules/pyproj/default.nix | 55 |
13 files changed, 319 insertions, 72 deletions
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; })) +} |