summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/gis
diff options
context:
space:
mode:
authorIvan Mincik <ivan.mincik@gmail.com>2024-01-08 16:57:57 +0100
committerIvan Mincik <ivan.mincik@gmail.com>2024-01-08 16:57:57 +0100
commit5c5e820980fe09f58eaa118d68d5eff19f466e63 (patch)
tree64ce2f353bdd68ba81087613a5f66bbeeb085e02 /pkgs/applications/gis
parentd986b226f0bda30737db75d47441ddcbd441ceb0 (diff)
qgis-ltr: build with pdal 2.5
Diffstat (limited to 'pkgs/applications/gis')
-rw-r--r--pkgs/applications/gis/qgis/pdal-2_5.nix131
-rw-r--r--pkgs/applications/gis/qgis/unwrapped-ltr.nix7
2 files changed, 137 insertions, 1 deletions
diff --git a/pkgs/applications/gis/qgis/pdal-2_5.nix b/pkgs/applications/gis/qgis/pdal-2_5.nix
new file mode 100644
index 000000000000..40d6ff5a719c
--- /dev/null
+++ b/pkgs/applications/gis/qgis/pdal-2_5.nix
@@ -0,0 +1,131 @@
+{ lib
+, stdenv
+, callPackage
+, fetchFromGitHub
+, testers
+
+, enableE57 ? lib.meta.availableOn stdenv.hostPlatform libe57format
+
+, cmake
+, curl
+, gdal
+, hdf5-cpp
+, LASzip
+, libe57format
+, libgeotiff
+, libtiff
+, libxml2
+, openscenegraph
+, pkg-config
+, postgresql
+, tiledb
+, xercesc
+, zlib
+, zstd
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "pdal";
+ version = "2.5.6";
+
+ src = fetchFromGitHub {
+ owner = "PDAL";
+ repo = "PDAL";
+ rev = finalAttrs.version;
+ sha256 = "sha256-JKwa89c05EfZ/FxOkj8lYmw0o2EgSqafRDIV2mTpZ5E=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ ];
+
+ buildInputs = [
+ curl
+ gdal
+ hdf5-cpp
+ LASzip
+ libgeotiff
+ libtiff
+ libxml2
+ openscenegraph
+ postgresql
+ tiledb
+ xercesc
+ zlib
+ zstd
+ ] ++ lib.optionals enableE57 [
+ libe57format
+ ];
+
+ cmakeFlags = [
+ "-DBUILD_PLUGIN_E57=${if enableE57 then "ON" else "OFF"}"
+ "-DBUILD_PLUGIN_HDF=ON"
+ "-DBUILD_PLUGIN_PGPOINTCLOUD=ON"
+ "-DBUILD_PLUGIN_TILEDB=ON"
+ "-DWITH_TESTS=ON"
+ "-DBUILD_PGPOINTCLOUD_TESTS=OFF"
+
+ # Plugins can probably not be made work easily:
+ "-DBUILD_PLUGIN_CPD=OFF"
+ "-DBUILD_PLUGIN_FBX=OFF" # Autodesk FBX SDK is gratis+proprietary; not packaged in nixpkgs
+ "-DBUILD_PLUGIN_GEOWAVE=OFF"
+ "-DBUILD_PLUGIN_I3S=OFF"
+ "-DBUILD_PLUGIN_ICEBRIDGE=OFF"
+ "-DBUILD_PLUGIN_MATLAB=OFF"
+ "-DBUILD_PLUGIN_MBIO=OFF"
+ "-DBUILD_PLUGIN_MRSID=OFF"
+ "-DBUILD_PLUGIN_NITF=OFF"
+ "-DBUILD_PLUGIN_OCI=OFF"
+ "-DBUILD_PLUGIN_RDBLIB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs
+ "-DBUILD_PLUGIN_RIVLIB=OFF"
+ ];
+
+ doCheck = true;
+
+ disabledTests = [
+ # Tests failing due to TileDB library implementation, disabled also
+ # by upstream CI.
+ # See: https://github.com/PDAL/PDAL/blob/bc46bc77f595add4a6d568a1ff923d7fe20f7e74/.github/workflows/linux.yml#L81
+ "pdal_io_tiledb_writer_test"
+ "pdal_io_tiledb_reader_test"
+ "pdal_io_tiledb_time_writer_test"
+ "pdal_io_tiledb_time_reader_test"
+ "pdal_io_tiledb_bit_fields_test"
+ "pdal_io_e57_read_test"
+ "pdal_io_e57_write_test"
+ "pdal_io_stac_reader_test"
+
+ # Segfault
+ "pdal_io_hdf_reader_test"
+
+ # Failure
+ "pdal_app_plugin_test"
+ ];
+
+ checkPhase = ''
+ runHook preCheck
+ # tests are flaky and they seem to fail less often when they don't run in
+ # parallel
+ ctest -j 1 --output-on-failure -E '^${lib.concatStringsSep "|" finalAttrs.disabledTests}$'
+ runHook postCheck
+ '';
+
+ passthru.tests = {
+ version = testers.testVersion {
+ package = finalAttrs.finalPackage;
+ command = "pdal --version";
+ version = "pdal ${finalAttrs.finalPackage.version}";
+ };
+ pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+ };
+
+ meta = with lib; {
+ description = "PDAL is Point Data Abstraction Library. GDAL for point cloud data";
+ homepage = "https://pdal.io";
+ license = licenses.bsd3;
+ maintainers = teams.geospatial.members;
+ platforms = platforms.all;
+ pkgConfigModules = [ "pdal" ];
+ };
+})
diff --git a/pkgs/applications/gis/qgis/unwrapped-ltr.nix b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
index ca599d34a468..7a19b6b94b4a 100644
--- a/pkgs/applications/gis/qgis/unwrapped-ltr.nix
+++ b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
@@ -1,4 +1,5 @@
{ lib
+, callPackage
, fetchFromGitHub
, fetchpatch
, makeWrapper
@@ -24,7 +25,7 @@
, netcdf
, ninja
, openssl
-, pdal
+# , pdal
, postgresql
, proj
, protobuf
@@ -47,6 +48,10 @@
let
+ # replace with global pdal version once
+ # https://github.com/qgis/QGIS/pull/54940 is backported
+ pdal = callPackage ./pdal-2_5.nix { };
+
py = python3.override {
packageOverrides = self: super: {
pyqt5 = super.pyqt5.override {