about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/gdal
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-06-16 06:56:35 +0000
committerAlyssa Ross <hi@alyssa.is>2023-06-16 06:56:35 +0000
commit99fcaeccb89621dd492203ce1f2d551c06f228ed (patch)
tree41cb730ae07383004789779b0f6e11cb3f4642a3 /nixpkgs/pkgs/development/libraries/gdal
parent59c5f5ac8682acc13bb22bc29c7cf02f7d75f01f (diff)
parent75a5ebf473cd60148ba9aec0d219f72e5cf52519 (diff)
downloadnixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.gz
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.bz2
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.lz
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.xz
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.zst
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.zip
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts:
	nixpkgs/nixos/modules/config/console.nix
	nixpkgs/nixos/modules/services/mail/mailman.nix
	nixpkgs/nixos/modules/services/mail/public-inbox.nix
	nixpkgs/nixos/modules/services/mail/rss2email.nix
	nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
	nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
	nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
	nixpkgs/pkgs/applications/window-managers/sway/default.nix
	nixpkgs/pkgs/build-support/go/module.nix
	nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix
	nixpkgs/pkgs/development/interpreters/python/default.nix
	nixpkgs/pkgs/development/node-packages/overrides.nix
	nixpkgs/pkgs/development/tools/b4/default.nix
	nixpkgs/pkgs/servers/dict/dictd-db.nix
	nixpkgs/pkgs/servers/mail/public-inbox/default.nix
	nixpkgs/pkgs/tools/security/pinentry/default.nix
	nixpkgs/pkgs/tools/text/unoconv/default.nix
	nixpkgs/pkgs/top-level/all-packages.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gdal')
-rw-r--r--nixpkgs/pkgs/development/libraries/gdal/2.4.nix92
-rw-r--r--nixpkgs/pkgs/development/libraries/gdal/default.nix220
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;
   };
 }