33afbf39f6
checkInputs used to be added to nativeBuildInputs. Now we have nativeCheckInputs to do that instead. Doing this treewide change allows to keep hashes identical to before the introduction of nativeCheckInputs.
207 lines
4.1 KiB
Nix
207 lines
4.1 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, bison
|
|
, cmake
|
|
, doxygen
|
|
, graphviz
|
|
, pkg-config
|
|
, python3
|
|
, swig
|
|
, armadillo
|
|
, arrow-cpp
|
|
, c-blosc
|
|
, brunsli
|
|
, cfitsio
|
|
, crunch
|
|
, curl
|
|
, cryptopp
|
|
, libdeflate
|
|
, expat
|
|
, libgeotiff
|
|
, geos
|
|
, giflib
|
|
, libheif
|
|
, dav1d
|
|
, libaom
|
|
, libde265
|
|
, rav1e
|
|
, x265
|
|
, hdf4
|
|
, hdf5-cpp
|
|
, libiconv
|
|
, libjpeg
|
|
, json_c
|
|
, libjxl
|
|
, libhwy
|
|
, lerc
|
|
, xz
|
|
, libxml2
|
|
, lz4
|
|
, libmysqlclient
|
|
, netcdf
|
|
, openexr
|
|
, openjpeg
|
|
, openssl
|
|
, pcre2
|
|
, libpng
|
|
, poppler
|
|
, postgresql
|
|
, proj
|
|
, qhull
|
|
, libspatialite
|
|
, sqlite
|
|
, libtiff
|
|
, tiledb
|
|
, libwebp
|
|
, xercesc
|
|
, zlib
|
|
, zstd
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "gdal";
|
|
version = "3.6.2";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "OSGeo";
|
|
repo = "gdal";
|
|
rev = "v${version}";
|
|
hash = "sha256-fdj/o+dm7V8QLrjnaQobaFX80+penn+ohx/yNmUryRA=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
bison
|
|
cmake
|
|
doxygen
|
|
graphviz
|
|
pkg-config
|
|
python3.pkgs.setuptools
|
|
python3.pkgs.wrapPython
|
|
swig
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-DGDAL_USE_INTERNAL_LIBS=OFF"
|
|
"-DGEOTIFF_INCLUDE_DIR=${lib.getDev libgeotiff}/include"
|
|
"-DGEOTIFF_LIBRARY_RELEASE=${lib.getLib libgeotiff}/lib/libgeotiff${stdenv.hostPlatform.extensions.sharedLibrary}"
|
|
"-DMYSQL_INCLUDE_DIR=${lib.getDev libmysqlclient}/include/mysql"
|
|
"-DMYSQL_LIBRARY=${lib.getLib libmysqlclient}/lib/mysql/libmysqlclient${stdenv.hostPlatform.extensions.sharedLibrary}"
|
|
] ++ lib.optionals (!stdenv.isDarwin) [
|
|
"-DCMAKE_SKIP_BUILD_RPATH=ON" # without, libgdal.so can't find libmariadb.so
|
|
] ++ lib.optionals stdenv.isDarwin [
|
|
"-DCMAKE_BUILD_WITH_INSTALL_NAME_DIR=ON"
|
|
];
|
|
|
|
buildInputs = [
|
|
armadillo
|
|
c-blosc
|
|
brunsli
|
|
cfitsio
|
|
crunch
|
|
curl
|
|
cryptopp
|
|
libdeflate
|
|
expat
|
|
libgeotiff
|
|
geos
|
|
giflib
|
|
libheif
|
|
dav1d # required by libheif
|
|
libaom # required by libheif
|
|
libde265 # required by libheif
|
|
rav1e # required by libheif
|
|
x265 # required by libheif
|
|
hdf4
|
|
hdf5-cpp
|
|
libjpeg
|
|
json_c
|
|
libjxl
|
|
libhwy # required by libjxl
|
|
lerc
|
|
xz
|
|
libxml2
|
|
lz4
|
|
libmysqlclient
|
|
netcdf
|
|
openjpeg
|
|
openssl
|
|
pcre2
|
|
libpng
|
|
poppler
|
|
postgresql
|
|
proj
|
|
qhull
|
|
libspatialite
|
|
sqlite
|
|
libtiff
|
|
tiledb
|
|
libwebp
|
|
zlib
|
|
zstd
|
|
python3
|
|
python3.pkgs.numpy
|
|
] ++ lib.optionals (!stdenv.isDarwin) [
|
|
# tests for formats enabled by these packages fail on macos
|
|
arrow-cpp
|
|
openexr
|
|
xercesc
|
|
] ++ lib.optional stdenv.isDarwin libiconv;
|
|
|
|
postInstall = ''
|
|
wrapPythonPrograms
|
|
'';
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
doInstallCheck = true;
|
|
# preCheck rather than preInstallCheck because this is what pytestCheckHook
|
|
# calls (coming from the python world)
|
|
preCheck = ''
|
|
pushd ../autotest
|
|
|
|
export HOME=$(mktemp -d)
|
|
export PYTHONPATH="$out/${python3.sitePackages}:$PYTHONPATH"
|
|
'';
|
|
nativeInstallCheckInputs = with python3.pkgs; [
|
|
pytestCheckHook
|
|
pytest-env
|
|
lxml
|
|
];
|
|
disabledTestPaths = [
|
|
# tests that attempt to make network requests
|
|
"gcore/vsis3.py"
|
|
"gdrivers/gdalhttp.py"
|
|
"gdrivers/wms.py"
|
|
];
|
|
disabledTests = [
|
|
# tests that attempt to make network requests
|
|
"test_jp2openjpeg_45"
|
|
# tests that require the full proj dataset which we don't package yet
|
|
# https://github.com/OSGeo/gdal/issues/5523
|
|
"test_transformer_dem_overrride_srs"
|
|
"test_osr_ct_options_area_of_interest"
|
|
# ZIP does not support timestamps before 1980
|
|
" test_sentinel2_zipped"
|
|
] ++ lib.optionals (!stdenv.isx86_64) [
|
|
# likely precision-related expecting x87 behaviour
|
|
"test_jp2openjpeg_22"
|
|
] ++ lib.optionals stdenv.isDarwin [
|
|
# flaky on macos
|
|
"test_rda_download_queue"
|
|
] ++ lib.optionals (lib.versionOlder proj.version "8") [
|
|
"test_ogr_parquet_write_crs_without_id_in_datum_ensemble_members"
|
|
];
|
|
postCheck = ''
|
|
popd # ../autotest
|
|
'';
|
|
|
|
meta = {
|
|
description = "Translator library for raster geospatial data formats";
|
|
homepage = "https://www.gdal.org/";
|
|
changelog = "https://github.com/OSGeo/gdal/blob/${src.rev}/NEWS.md";
|
|
license = lib.licenses.mit;
|
|
maintainers = with lib.maintainers; [ marcweber dotlambda ];
|
|
platforms = lib.platforms.unix;
|
|
};
|
|
}
|