diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gdal')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gdal/2.4.nix | 92 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gdal/default.nix | 220 |
2 files changed, 150 insertions, 162 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gdal/2.4.nix b/nixpkgs/pkgs/development/libraries/gdal/2.4.nix deleted file mode 100644 index 5d6e99e8bd7f..000000000000 --- a/nixpkgs/pkgs/development/libraries/gdal/2.4.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, libjpeg, libtiff, zlib -, postgresql, libmysqlclient, libgeotiff, python3Packages, proj, geos, openssl -, libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat -, libiconv, libxml2 -, netcdfSupport ? true, netcdf, hdf5, curl -}: - -with lib; - -stdenv.mkDerivation rec { - pname = "gdal"; - version = "2.4.4"; - - src = fetchurl { - url = "https://download.osgeo.org/gdal/${version}/${pname}-${version}.tar.xz"; - sha256 = "1n6w0m2603q9cldlz0wyscp75ci561dipc36jqbf3mjmylybv0x3"; - }; - - patches = [ - (fetchpatch { - url = "https://github.com/OSGeo/gdal/commit/7a18e2669a733ebe3544e4f5c735fd4d2ded5fa3.patch"; - sha256 = "sha256-rBgIxJcgRzZR1gyzDWK/Sh7MdPWeczxEYVELbYEV8JY="; - relative = "gdal"; - # this doesn't apply correctly because of line endings - excludes = [ "third_party/LercLib/Lerc2.h" ]; - }) - ]; - - buildInputs = [ libjpeg libtiff libgeotiff libpng proj openssl sqlite - libspatialite poppler hdf4 qhull giflib expat libxml2 proj ] - ++ (with python3Packages; [ python numpy wrapPython ]) - ++ lib.optional stdenv.isDarwin libiconv - ++ 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=${getDev libmysqlclient}/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 - ''; - - # - 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 = lib.licenses.mit; - maintainers = [ lib.maintainers.marcweber ]; - platforms = with lib.platforms; linux ++ darwin; - }; -} diff --git a/nixpkgs/pkgs/development/libraries/gdal/default.nix b/nixpkgs/pkgs/development/libraries/gdal/default.nix index bec478c66bd9..189c6f3a41a6 100644 --- a/nixpkgs/pkgs/development/libraries/gdal/default.nix +++ b/nixpkgs/pkgs/development/libraries/gdal/default.nix @@ -1,84 +1,157 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, unzip, libjpeg, libtiff, zlib, postgresql -, libmysqlclient, libgeotiff, pythonPackages, proj, geos, openssl, libpng -, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat, libiconv, libxml2 -, autoreconfHook, netcdfSupport ? true, netcdf, hdf5, curl, pkg-config }: - -with lib; +{ 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 +, useTiledb ? !(stdenv.isDarwin && stdenv.isx86_64) +, tiledb +, libwebp +, xercesc +, zlib +, zstd +}: stdenv.mkDerivation rec { pname = "gdal"; - version = "3.4.2"; + version = "3.6.4"; src = fetchFromGitHub { owner = "OSGeo"; repo = "gdal"; rev = "v${version}"; - sha256 = "sha256-bE55VV0SrG8nxCLdpODRalnuAkn+olRdMLUjduavj6M="; + hash = "sha256-pGdZmQBUuNCk9/scUvq4vduINu5gqtCRLaz7QE2e6WU="; }; - sourceRoot = "source/gdal"; + nativeBuildInputs = [ + bison + cmake + doxygen + graphviz + pkg-config + python3.pkgs.setuptools + python3.pkgs.wrapPython + swig + ]; - nativeBuildInputs = [ autoreconfHook pkg-config unzip ]; + 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/${lib.optionalString (libmysqlclient.pname != "mysql") "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" + ] ++ lib.optionals (!useTiledb) [ + "-DGDAL_USE_TILEDB=OFF" + ]; buildInputs = [ - libjpeg - libtiff - libpng - proj - openssl - sqlite - libspatialite + armadillo + c-blosc + brunsli + cfitsio + crunch + curl + cryptopp + libdeflate + expat libgeotiff - poppler - hdf4 - qhull + geos giflib - expat + 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 - ] ++ (with pythonPackages; [ python setuptools numpy wrapPython ]) - ++ lib.optional stdenv.isDarwin libiconv - ++ 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=yes" # since gdal 3.0 doesn't use ${postgresql}/bin/pg_config - "--with-mysql=${getDev libmysqlclient}/bin/mysql_config" - "--with-geotiff=${libgeotiff}" - "--with-sqlite3=${sqlite.dev}" - "--with-spatialite=${libspatialite.dev}" - "--with-python" # optional - "--with-proj=${proj.dev}" # optional - "--with-geos=${geos}/bin/geos-config" # optional - "--with-hdf4=${hdf4.dev}" # optional - "--with-xml2=yes" # optional - (if netcdfSupport then "--with-netcdf=${netcdf}" else "") - ]; - - hardeningDisable = [ "format" ]; - - CXXFLAGS = lib.concatStringsSep " " [ - "-fpermissive" - # poppler uses std::optional - "-std=c++17" - ]; - - # - Unset CC and CXX as they confuse libtool. - # - teach gdal that libdf is the legacy name for libhdf - preConfigure = '' - substituteInPlace configure \ - --replace "-lmfhdf -ldf" "-lmfhdf -lhdf" - ''; - - preBuild = '' - substituteInPlace swig/python/GNUmakefile \ - --replace "ifeq (\$(STD_UNIX_LAYOUT),\"TRUE\")" "ifeq (1,1)" - ''; + proj + qhull + libspatialite + sqlite + libtiff + ] ++ lib.optionals useTiledb [ + 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 @@ -91,13 +164,11 @@ stdenv.mkDerivation rec { # calls (coming from the python world) preCheck = '' pushd ../autotest - # something has made files here read-only by this point - chmod -R u+w . export HOME=$(mktemp -d) - export PYTHONPATH="$out/${pythonPackages.python.sitePackages}:$PYTHONPATH" + export PYTHONPATH="$out/${python3.sitePackages}:$PYTHONPATH" ''; - installCheckInputs = with pythonPackages; [ + nativeInstallCheckInputs = with python3.pkgs; [ pytestCheckHook pytest-env lxml @@ -115,22 +186,31 @@ stdenv.mkDerivation rec { # 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" + # tries to call unwrapped executable + "test_SetPROJAuxDbPaths" ] ++ 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 ''; + __darwinAllowLocalNetworking = true; + 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 = [ lib.maintainers.marcweber ]; - platforms = with lib.platforms; linux ++ darwin; + maintainers = with lib.maintainers; [ marcweber dotlambda ]; + platforms = lib.platforms.unix; }; } |