Merge pull request #138479 from dotlambda/proj-8.1.1

proj: 7.2.1 -> 8.1.1

Changed files
+226 -88
pkgs
applications
gis
misc
osm2xmap
survex
xygrib
science
misc
gplates
development
libraries
python-modules
top-level
+47 -8
pkgs/applications/gis/qgis/unwrapped.nix
···
-
{ mkDerivation, lib, fetchFromGitHub, cmake, ninja, flex, bison, proj, geos
-
, xlibsWrapper, sqlite, gsl, qwt, fcgi, python3Packages, libspatialindex
-
, libspatialite, postgresql, txt2tags, openssl, libzip, hdf5, netcdf, exiv2
-
, protobuf, qtbase, qtsensors, qca-qt5, qtkeychain, qscintilla, qtserialport
-
, qtxmlpatterns, withGrass ? true, grass, withWebKit ? true, qtwebkit }:
-
with lib;
+
{ lib
+
, mkDerivation
+
, fetchFromGitHub
+
, fetchpatch
+
, cmake
+
, ninja
+
, flex
+
, bison
+
, proj
+
, geos
+
, xlibsWrapper
+
, sqlite
+
, gsl
+
, qwt
+
, fcgi
+
, python3Packages
+
, libspatialindex
+
, libspatialite
+
, postgresql
+
, txt2tags
+
, openssl
+
, libzip
+
, hdf5
+
, netcdf
+
, exiv2
+
, protobuf
+
, qtbase
+
, qtsensors
+
, qca-qt5
+
, qtkeychain
+
, qscintilla
+
, qtserialport
+
, qtxmlpatterns
+
, withGrass ? true
+
, grass
+
, withWebKit ? true
+
, qtwebkit
+
}:
+
let
pythonBuildInputs = with python3Packages; [
qscintilla-qt5
···
];
in mkDerivation rec {
version = "3.16.10";
-
pname = "qgis";
-
name = "${pname}-unwrapped-${version}";
+
pname = "qgis-unwrapped";
src = fetchFromGitHub {
owner = "qgis";
···
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
sha256 = "sha256-/lsfyTDlkZNIVHg5qgZW7qfOyTC2+1r3ZbsnQmEdy30=";
};
+
+
patches = [
+
(fetchpatch {
+
url = "https://github.com/qgis/QGIS/commit/fc1ac8bef8dcc3194857ecd32519aca4867b4fa1.patch";
+
sha256 = "106smg3drx8c7yxzfhd1c7xrq757l5cfxx8lklihyvr4a7wc9gpy";
+
})
+
];
passthru = {
inherit pythonBuildInputs;
+3 -3
pkgs/applications/misc/osm2xmap/default.nix
···
-
{ lib, stdenv, fetchFromGitHub, libroxml, proj, libyamlcpp, boost } :
+
{ lib, stdenv, fetchFromGitHub, libroxml, proj_7, libyamlcpp, boost } :
stdenv.mkDerivation rec {
pname = "osm2xmap";
···
makeFlags = [
"GIT_VERSION=${version}"
"GIT_TIMESTAMP="
-
"SHAREDIR=${placeholder "out"}/share/osm2xmap"
+
"SHAREDIR=${placeholder "out"}/share/osm2xmap/"
"INSTALL_BINDIR=${placeholder "out"}/bin"
"INSTALL_MANDIR=${placeholder "out"}/share/man/man1"
];
NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H";
-
buildInputs = [ libroxml proj libyamlcpp boost ];
+
buildInputs = [ libroxml proj_7 libyamlcpp boost ];
meta = with lib; {
homepage = "https://github.com/sembruk/osm2xmap";
+2 -2
pkgs/applications/misc/survex/default.nix
···
, wxGTK30-gtk3
, wxmac
, ffmpeg
-
, proj
+
, proj_7
, perl532
, unscii
, python
···
nativeBuildInputs = [ docbook5 docbook2x autoreconfHook pkg-config perlenv python ];
buildInputs = [
-
libGL libGLU ffmpeg proj
+
libGL libGLU ffmpeg proj_7
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
wxmac Carbon Cocoa
] ++ lib.optionals stdenv.hostPlatform.isLinux [
+2 -2
pkgs/applications/misc/xygrib/default.nix
···
-
{ lib, stdenv, fetchFromGitHub, wrapQtAppsHook, cmake, bzip2, qtbase, qttools, libnova, proj, libpng, openjpeg }:
+
{ lib, stdenv, fetchFromGitHub, wrapQtAppsHook, cmake, bzip2, qtbase, qttools, libnova, proj_7, libpng, openjpeg }:
stdenv.mkDerivation rec {
version = "1.2.6.1";
···
};
nativeBuildInputs = [ cmake qttools wrapQtAppsHook ];
-
buildInputs = [ bzip2 qtbase libnova proj openjpeg libpng ];
+
buildInputs = [ bzip2 qtbase libnova proj_7 openjpeg libpng ];
cmakeFlags = [ "-DOPENJPEG_INCLUDE_DIR=${openjpeg.dev}/include/openjpeg-${lib.versions.majorMinor openjpeg.version}" ]
++ lib.optionals stdenv.isDarwin [ "-DLIBNOVA_LIBRARY=${libnova}/lib/libnova.dylib" ];
+54 -16
pkgs/applications/science/misc/gplates/default.nix
···
-
{ lib, stdenv, fetchurl, qt4, qwt6_qt4, libGLU, libGL, glew, gdal, cgal
-
, proj, boost, cmake, python2, doxygen, graphviz, gmp, mpfr }:
+
{ lib
+
, mkDerivation
+
, fetchurl
+
, cmake
+
, doxygen
+
, graphviz
+
, boost
+
, cgal_5
+
, gdal
+
, glew
+
, gmp
+
, libGL
+
, libGLU
+
, mpfr
+
, proj
+
, python3
+
, qtxmlpatterns
+
, qwt
+
}:
-
stdenv.mkDerivation rec {
+
let
+
python = python3.withPackages (ps: with ps; [
+
numpy
+
]);
+
boost' = boost.override {
+
enablePython = true;
+
inherit python;
+
};
+
cgal = cgal_5.override {
+
boost = boost';
+
};
+
in mkDerivation rec {
pname = "gplates";
-
version = "2.2.0";
+
version = "2.3.0";
src = fetchurl {
-
url = "mirror://sourceforge/gplates/${pname}-${version}-unixsrc.tar.bz2";
-
sha256 = "1jrcv498vpcs8xklhbsgg12yfa90f96p2mwq6x5sjnrlpf8mh50b";
+
name = "gplates_${version}_src.tar.bz2";
+
url = "https://www.earthbyte.org/download/8421/?uid=b89bb31428";
+
sha256 = "0lrcmcxc924ixddii8cyglqlwwxvk7f00g4yzbss5i3fgcbh8n96";
};
-
nativeBuildInputs = [ cmake ];
+
nativeBuildInputs = [
+
cmake
+
doxygen
+
graphviz
+
];
+
buildInputs = [
-
qt4 qwt6_qt4 libGLU libGL glew gdal cgal proj python2
-
doxygen graphviz gmp mpfr
-
(boost.override {
-
enablePython = true;
-
python = python2;
-
})
+
boost'
+
cgal
+
gdal
+
glew
+
gmp
+
libGL
+
libGLU
+
mpfr
+
proj
+
python
+
qtxmlpatterns
+
qwt
];
-
NIX_CFLAGS_LINK="-ldl -lpthread -lutil";
-
meta = with lib; {
description = "Desktop software for the interactive visualisation of plate-tectonics";
homepage = "https://www.gplates.org";
-
license = licenses.gpl2;
+
license = licenses.gpl2Only;
platforms = platforms.all;
};
}
+2
pkgs/development/libraries/mapnik/default.nix
···
maintainers = with maintainers; [ hrdinka ];
license = licenses.lgpl21;
platforms = platforms.all;
+
# https://github.com/mapnik/mapnik/issues/4232
+
broken = lib.versionAtLeast proj.version "8.0.0";
};
}
+58
pkgs/development/libraries/proj/7.nix
···
+
{ lib
+
, stdenv
+
, fetchFromGitHub
+
, cmake
+
, pkg-config
+
, sqlite
+
, libtiff
+
, curl
+
, gtest
+
, fetchpatch
+
}:
+
+
stdenv.mkDerivation rec {
+
pname = "proj";
+
version = "7.2.1";
+
+
src = fetchFromGitHub {
+
owner = "OSGeo";
+
repo = "PROJ";
+
rev = version;
+
sha256 = "0mymvfvs8xggl4axvlj7kc1ksd9g94kaz6w1vdv0x2y5mqk93gx9";
+
};
+
+
patches = [
+
(fetchpatch { # https://github.com/OSGeo/PROJ/issues/2557
+
name = "gie_self_tests-fail.diff"; # included in >= 8.0.1
+
url = "https://github.com/OSGeo/PROJ/commit/6f1a3c4648bf06862dca0b3725cbb3b7ee0284e3.diff";
+
sha256 = "0gapny0a9c3r0x9szjgn86sspjrrf4vwbija77b17w6ci5cq4pdf";
+
})
+
];
+
+
postPatch = lib.optionalString (version == "7.2.1") ''
+
substituteInPlace CMakeLists.txt \
+
--replace "MAJOR 7 MINOR 2 PATCH 0" "MAJOR 7 MINOR 2 PATCH 1"
+
'';
+
+
outputs = [ "out" "dev"];
+
+
nativeBuildInputs = [ cmake pkg-config ];
+
+
buildInputs = [ sqlite libtiff curl ];
+
+
checkInputs = [ gtest ];
+
+
cmakeFlags = [
+
"-DUSE_EXTERNAL_GTEST=ON"
+
];
+
+
doCheck = true;
+
+
meta = with lib; {
+
description = "Cartographic Projections Library";
+
homepage = "https://proj4.org";
+
license = licenses.mit;
+
platforms = platforms.unix;
+
maintainers = with maintainers; [ vbgl dotlambda ];
+
};
+
}
+5 -22
pkgs/development/libraries/proj/default.nix
···
, libtiff
, curl
, gtest
-
, fetchpatch
}:
stdenv.mkDerivation rec {
pname = "proj";
-
version = "7.2.1";
+
version = "8.1.1";
src = fetchFromGitHub {
owner = "OSGeo";
repo = "PROJ";
rev = version;
-
sha256 = "0mymvfvs8xggl4axvlj7kc1ksd9g94kaz6w1vdv0x2y5mqk93gx9";
+
sha256 = "sha256-Z2nruyowC3NG4Wb8AFBL0PME/zp9D7SwQdMSl6VjH/w=";
};
-
patches = [
-
(fetchpatch { # https://github.com/OSGeo/PROJ/issues/2557
-
name = "gie_self_tests-fail.diff"; # included in >= 8.0.1
-
url = "https://github.com/OSGeo/PROJ/commit/6f1a3c4648bf06862dca0b3725cbb3b7ee0284e3.diff";
-
sha256 = "0gapny0a9c3r0x9szjgn86sspjrrf4vwbija77b17w6ci5cq4pdf";
-
})
-
];
-
-
postPatch = lib.optionalString (version == "7.2.1") ''
-
substituteInPlace CMakeLists.txt \
-
--replace "MAJOR 7 MINOR 2 PATCH 0" "MAJOR 7 MINOR 2 PATCH 1"
-
'';
-
outputs = [ "out" "dev"];
nativeBuildInputs = [ cmake pkg-config ];
···
cmakeFlags = [
"-DUSE_EXTERNAL_GTEST=ON"
+
"-DRUN_NETWORK_DEPENDENT_TESTS=OFF"
];
-
doCheck = stdenv.is64bit;
-
-
preCheck = ''
-
export HOME=$TMPDIR
-
'';
+
doCheck = true;
meta = with lib; {
description = "Cartographic Projections Library";
-
homepage = "https://proj4.org";
+
homepage = "https://proj.org/";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ vbgl dotlambda ];
+9 -2
pkgs/development/python-modules/cartopy/default.nix
···
buildPythonPackage rec {
pname = "cartopy";
-
version = "0.19.0.post1";
+
version = "0.20.0";
src = fetchPypi {
inherit version;
pname = "Cartopy";
-
sha256 = "0xnm8z3as3hriivdfd26s6vn5b63gb46x6vxw6gh1mwfm5rlg2sb";
+
sha256 = "eae58aff26806e63cf115b2bce9477cedc4aa9f578c5e477b2c25cfa404f2b7a";
};
+
+
postPatch = ''
+
# https://github.com/SciTools/cartopy/issues/1880
+
substituteInPlace lib/cartopy/tests/test_crs.py \
+
--replace "test_osgb(" "dont_test_osgb(" \
+
--replace "test_epsg(" "dont_test_epsg("
+
'';
buildInputs = [
geos proj
+14 -1
pkgs/development/python-modules/geopandas/default.nix
···
-
{ lib, stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+
{ lib, stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, pythonOlder
, pandas, shapely, fiona, pyproj
, pytestCheckHook, Rtree }:
···
rev = "v${version}";
sha256 = "sha256-58X562OkRzZ4UTNMTwXW4U5czoa5tbSMBCcE90DqbaE=";
};
+
+
patches = [
+
(fetchpatch {
+
name = "skip-pandas-master-fillna-test.patch";
+
url = "https://github.com/geopandas/geopandas/pull/1878.patch";
+
sha256 = "1yw3i4dbhaq7f02n329b9y2cqxbwlz9db81mhgrfc7af3whwysdb";
+
})
+
(fetchpatch {
+
name = "fix-proj4strings-test.patch";
+
url = "https://github.com/geopandas/geopandas/pull/1958.patch";
+
sha256 = "0kzmpq5ry87yvhqr6gnh9p2606b06d3ynzjvw0hpp9fncczpc2yn";
+
})
+
];
propagatedBuildInputs = [
pandas
+17 -25
pkgs/development/python-modules/pyproj/001.proj.patch
···
-
diff -Nur a/pyproj/datadir.py b/pyproj/datadir.py
-
--- a/pyproj/datadir.py 2021-04-10 18:26:52.829018483 +0100
-
+++ b/pyproj/datadir.py 2021-04-10 18:44:59.155190614 +0100
-
@@ -70,7 +70,7 @@
+
diff --git a/pyproj/datadir.py b/pyproj/datadir.py
+
index 9ca1d25..4198490 100644
+
--- a/pyproj/datadir.py
+
+++ b/pyproj/datadir.py
+
@@ -70,7 +70,7 @@ def get_data_dir() -> str:
+
global _VALIDATED_PROJ_DATA
if _VALIDATED_PROJ_DATA is not None:
return _VALIDATED_PROJ_DATA
-
global _USER_PROJ_DATA
- internal_datadir = Path(__file__).absolute().parent / "proj_dir" / "share" / "proj"
+ internal_datadir = Path("@proj@/share/proj")
proj_lib_dirs = os.environ.get("PROJ_LIB", "")
prefix_datadir = Path(sys.prefix, "share", "proj")
-
diff -Nur a/setup.py b/setup.py
-
--- a/setup.py 2021-04-10 18:26:52.817018512 +0100
-
+++ b/setup.py 2021-04-10 18:46:01.652324424 +0100
-
@@ -11,7 +11,7 @@
+
diff --git a/setup.py b/setup.py
+
index 6bb0c6c..b3d0321 100644
+
--- a/setup.py
+
+++ b/setup.py
+
@@ -12,7 +12,7 @@ from setuptools import Extension, setup
PROJ_MIN_VERSION = parse_version("7.2.0")
CURRENT_FILE_PATH = Path(__file__).absolute().parent
BASE_INTERNAL_PROJ_DIR = Path("proj_dir")
···
def get_proj_version(proj_dir: Path) -> str:
-
@@ -150,7 +150,7 @@
+
@@ -155,7 +155,7 @@ def get_extension_modules():
# By default we'll try to get options PROJ_DIR or the local version of proj
proj_dir = get_proj_dir()
library_dirs = get_proj_libdirs(proj_dir)
···
proj_version = get_proj_version(proj_dir)
check_proj_version(proj_version)
-
diff -Nur a/test/conftest.py b/test/conftest.py
-
--- a/test/conftest.py 2021-04-10 18:26:52.831018478 +0100
-
+++ b/test/conftest.py 2021-04-10 18:37:01.605682432 +0100
-
@@ -2,6 +2,7 @@
-
from contextlib import contextmanager
-
from distutils.version import LooseVersion
-
from pathlib import Path
-
+import stat
-
-
import pyproj
-
from pyproj.datadir import get_data_dir, get_user_data_dir, set_data_dir
-
diff -Nur a/test/test_cli.py b/test/test_cli.py
-
--- a/test/test_cli.py 2021-04-10 18:26:52.831018478 +0100
-
+++ b/test/test_cli.py 2021-04-10 22:17:04.665088162 +0100
-
@@ -14,7 +14,7 @@
+
diff --git a/test/test_cli.py b/test/test_cli.py
+
index 7a696de..1b9b777 100644
+
--- a/test/test_cli.py
+
+++ b/test/test_cli.py
+
@@ -14,7 +14,7 @@ from pyproj.sync import _load_grid_geojson
from test.conftest import grids_available, proj_env, tmp_chdir
PYPROJ_CLI_ENDPONTS = pytest.mark.parametrize(
+2 -2
pkgs/development/python-modules/pyproj/default.nix
···
buildPythonPackage rec {
pname = "pyproj";
-
version = "3.1.0";
+
version = "3.2.1";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "pyproj4";
repo = "pyproj";
rev = version;
-
sha256 = "sha256-UN8cJk5Lgd+d2tKmFuF6QvKr36w1435RKovzGfMXi1E=";
+
sha256 = "sha256-r343TvXpSr+EMAbvzSUpsfipwP8TFmitOfT0gjgoO00=";
};
# force pyproj to use ${proj}
+11 -5
pkgs/top-level/all-packages.nix
···
proj = callPackage ../development/libraries/proj { };
+
proj_7 = callPackage ../development/libraries/proj/7.nix { };
+
proj-datumgrid = callPackage ../development/libraries/proj-datumgrid { };
proselint = callPackage ../tools/text/proselint {
···
qimgv = libsForQt5.callPackage ../applications/graphics/qimgv { };
-
qlandkartegt = libsForQt514.callPackage ../applications/misc/qlandkartegt {};
+
qlandkartegt = libsForQt514.callPackage ../applications/misc/qlandkartegt {
+
gdal = gdal.override {
+
libgeotiff = libgeotiff.override { proj = proj_7; };
+
libspatialite = libspatialite.override { proj = proj_7; };
+
proj = proj_7;
+
};
+
proj = proj_7;
+
};
garmindev = callPackage ../applications/misc/qlandkartegt/garmindev.nix {};
···
gildas = callPackage ../applications/science/astronomy/gildas { };
-
gplates = callPackage ../applications/science/misc/gplates {
-
boost = boost160;
-
cgal = cgal.override { boost = boost160; };
-
};
+
gplates = libsForQt5.callPackage ../applications/science/misc/gplates { };
gravit = callPackage ../applications/science/astronomy/gravit { };