Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package PDAL for openSUSE:Factory checked in at 2026-10-14 18:35:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/PDAL (Old) and /work/SRC/openSUSE:Factory/.PDAL.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "PDAL" Wed Oct 14 18:35:10 2026 rev:19 rq:1384658 version:2.10.2 Changes: -------- --- /work/SRC/openSUSE:Factory/PDAL/PDAL.changes 2026-07-29 19:02:34.652530937 +0200 +++ /work/SRC/openSUSE:Factory/.PDAL.new.3698736/PDAL.changes 2026-10-14 18:35:55.609902024 +0200 @@ -1,0 +2,26 @@ +Tue Oct 13 06:28:23 UTC 2026 - Tomáš Chvátal <[email protected]> + +- Fix zstd support being silently disabled: upstream's cmake checks + ZSTD_FOUND, but find_package(zstd) in config mode only sets + zstd_FOUND, so ZstdCompression was never built and zstd-compressed + EPT/COPC data could not be read; add PDAL-fix-zstd-detect.patch +- Drop BuildRequires that the build never uses: + libboost_filesystem-devel, libboost_headers-devel, + libboost_program_options-devel, libgeos-devel, + libopenblas_pthreads-devel, libspatialindex-devel, + python3-devel, + pkgconfig(cairo), pkgconfig(cunit), pkgconfig(glut), + pkgconfig(jsoncpp), pkgconfig(libtiff-4) and pkgconfig(sqlite3); + also drop the boost Requires from the devel subpackage, as no + PDAL header uses boost +- Build against the system nlohmann_json instead of the vendored + copy (PDAL-system-nlohmann.patch); the vendored copy is removed + in %prep, mirroring the existing eigen3 unbundling +- Run the test suite fatally in %check instead of reporting failures + without failing the build; exclude the two tests that need network + access (pdal_io_stac_reader_test, pdal_io_copc_remote_reader_test) + and run serially, as pdal_io_bpf_base_test and pdal_io_bpf_zlib_test + share the fixed temp path tmp.bpf and race in parallel +- Rewrap an overlong line in the doc subpackage description + +------------------------------------------------------------------- New: ---- PDAL-fix-zstd-detect.patch PDAL-system-nlohmann.patch ----------(New B)---------- New: zstd_FOUND, so ZstdCompression was never built and zstd-compressed EPT/COPC data could not be read; add PDAL-fix-zstd-detect.patch - Drop BuildRequires that the build never uses: New:- Build against the system nlohmann_json instead of the vendored copy (PDAL-system-nlohmann.patch); the vendored copy is removed in %prep, mirroring the existing eigen3 unbundling ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ PDAL.spec ++++++ --- /var/tmp/diff_new_pack.ZddcrC/_old 2026-10-14 18:35:57.979001770 +0200 +++ /var/tmp/diff_new_pack.ZddcrC/_new 2026-10-14 18:35:57.981001854 +0200 @@ -42,48 +42,36 @@ Patch0: PDAL_unbundle.patch # GDAL headers are located in %%{_includedir}/gdal Patch1: PDAL-fix-gdal-includes.patch +# PATCH-FIX-UPSTREAM -- find_package(zstd) sets zstd_FOUND, not ZSTD_FOUND; zstd support was silently dropped +Patch2: PDAL-fix-zstd-detect.patch +# PATCH-FIX-UPSTREAM -- build against the system nlohmann_json instead of the vendored copy +Patch3: PDAL-system-nlohmann.patch BuildRequires: bash-completion BuildRequires: cmake >= 3.13 BuildRequires: curl-devel BuildRequires: fdupes BuildRequires: gcc-c++ >= 11 +# The test suite shells out to gdalinfo BuildRequires: gdal >= 3.8 -BuildRequires: libboost_filesystem-devel -BuildRequires: libboost_headers-devel -BuildRequires: libboost_program_options-devel BuildRequires: libgdal-devel -BuildRequires: libgeos-devel -# PDAL itself never asks for BLAS, but it is pulled in transitively (via gdal) -# and the test binaries then link libopenblas.so.0. Only an openblas -devel -# provides that unflavored soname link -- without it every one of the 143 -# ctest binaries dies with "cannot open shared object file" and, because -# %%check is non-fatal, the build still goes green with an empty test run. -BuildRequires: libopenblas_pthreads-devel -BuildRequires: libspatialindex-devel BuildRequires: ninja BuildRequires: nlohmann_json-devel -BuildRequires: pkgconfig +# Provides proj.db, which the test suite needs at runtime BuildRequires: proj -BuildRequires: python3-devel +BuildRequires: pkgconfig BuildRequires: cmake(GTest) -BuildRequires: pkgconfig(cairo) -BuildRequires: pkgconfig(cunit) BuildRequires: pkgconfig(eigen3) -BuildRequires: pkgconfig(glut) -BuildRequires: pkgconfig(jsoncpp) BuildRequires: pkgconfig(libcrypto) >= 1.1 BuildRequires: pkgconfig(libgeotiff) BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libpq) BuildRequires: pkgconfig(libssl) >= 1.1 -BuildRequires: pkgconfig(libtiff-4) # We don't have it yet # BuildRequires: pointcloud-devel BuildRequires: pkgconfig(libunwind) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(proj) -BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(zlib) # Needed for documentation but we don't build it (see comment below make_build) # BuildRequires: dblatex @@ -144,9 +132,6 @@ Summary: Development files and tools for PDAL applications Requires: cmake Requires: lib%{name}%{soname} = %{version} -Requires: libboost_filesystem-devel -Requires: libboost_headers-devel -Requires: libboost_program_options-devel Requires: pkgconfig(liblzma) Requires: pkgconfig(zlib) Provides: lib%{lname}%{soname}-devel = %{version} @@ -163,13 +148,15 @@ BuildArch: noarch %description doc -This package provides the documentation and sources of examples and data demos of -PDAL algorithms. +This package provides the documentation and sources of examples and data +demos of PDAL algorithms. %prep %autosetup -p1 -n %{name}-%{version}-src # Remove vendored eigen3 library rm -rf vendor/eigen +# Remove vendored nlohmann-json library +rm -rf vendor/nlohmann # Fix all wrong shebang and move to python3 only find . -type f -iname "*.py" -exec sed -i 's,^#!%{_bindir}/env python$,#!%{_bindir}/python3,' {} + @@ -264,12 +251,19 @@ %check # Custom 60s timeout: some tests otherwise run to the ~20 minute default. -# Failures are reported but do not fail the build -- upstream issue 3501 -# still has tests failing on several architectures. The result is read from -# the log rather than gated, which is why --output-on-failure is on. +# The suite is fatal: a failing test fails the build. Two tests are +# excluded because they need network access, which the build service +# does not provide: pdal_io_stac_reader_test and +# pdal_io_copc_remote_reader_test. (--exclude-regex is spelled out +# because the ctest macro's option parser rejects the short -E form.) +# The run is serial: pdal_io_bpf_base_test and pdal_io_bpf_zlib_test +# share the fixed temp path tmp.bpf and race when run in parallel. +# Serial is forced by redefining _smp_mflags to -j1 for this section: +# the ctest macro passes those flags to ctest, but rejects -j itself. # The PG tests stay off (BUILD_PGPOINTCLOUD_TESTS=OFF): they need a live # PostgreSQL server, which a build root does not have. -%ctest --output-on-failure --timeout %{test_timeout} || : +%define _smp_mflags -j1 +%ctest --timeout %{test_timeout} --exclude-regex 'pdal_io_stac_reader_test|pdal_io_copc_remote_reader_test' %ldconfig_scriptlets -n lib%{name}%{soname} ++++++ PDAL-fix-zstd-detect.patch ++++++ diff --git i/CMakeLists.txt w/CMakeLists.txt --- i/CMakeLists.txt +++ w/CMakeLists.txt @@ -272,7 +272,7 @@ ${WINSOCK_LIBRARY} ) -if (ZSTD_FOUND) +if (zstd_FOUND) target_link_libraries(${PDAL_LIB_NAME} PRIVATE zstd::libzstd) diff --git i/cmake/zstd.cmake w/cmake/zstd.cmake --- i/cmake/zstd.cmake +++ w/cmake/zstd.cmake @@ -7,7 +7,7 @@ find_package(zstd CONFIG QUIET) set_package_properties(ZSTD PROPERTIES TYPE PURPOSE "General compression support") - if (ZSTD_FOUND) + if (zstd_FOUND) set(PDAL_HAVE_ZSTD 1) - endif(ZSTD_FOUND) + endif(zstd_FOUND) endif(WITH_ZSTD) ++++++ PDAL-system-nlohmann.patch ++++++ diff --git i/cmake/include/nlohmann/json.hpp w/cmake/include/nlohmann/json.hpp new file mode 100644 --- /dev/null +++ w/cmake/include/nlohmann/json.hpp @@ -0,0 +1,8 @@ +// Compatibility header for building against the system nlohmann_json +// package: PDAL's vendored copy of this header carries an appended +// "namespace NL = nlohmann;" alias that PDAL sources rely on, so +// forward to the system header and provide the alias here. +#pragma once +#include_next <nlohmann/json.hpp> + +namespace NL = nlohmann; diff --git i/cmake/nlohmann.cmake w/cmake/nlohmann.cmake --- i/cmake/nlohmann.cmake +++ w/cmake/nlohmann.cmake @@ -1,4 +1,8 @@ # # N Lohmann JSON handler # -set(NLOHMANN_INCLUDE_DIR ${PDAL_VENDOR_DIR}/nlohmann) +# Build against the system nlohmann_json package. The compatibility +# header in cmake/include forwards <nlohmann/json.hpp> to the system +# header and provides the NL alias PDAL appends to its vendored copy. +find_package(nlohmann_json REQUIRED) +set(NLOHMANN_INCLUDE_DIR ${PDAL_CMAKE_DIR}/include) diff --git i/pdal/JsonFwd.hpp w/pdal/JsonFwd.hpp --- i/pdal/JsonFwd.hpp +++ w/pdal/JsonFwd.hpp @@ -8,67 +8,8 @@ // your code so you no longer need the forward definitions. #warning "PDAL no longer exposes nlohmann types in its public headers. You can stop including this file and use the nlohmann complete definitions if you need them" -#include <cstdint> // int64_t, uint64_t -#include <map> // map -#include <memory> // allocator -#include <string> // string -#include <vector> // vector - -/*! -@brief namespace for Niels Lohmann -@see https://github.com/nlohmann -@since version 1.0.0 -*/ -namespace nlohmann -{ -/*! -@brief default JSONSerializer template argument - -This serializer ignores the template arguments and uses ADL -([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl)) -for serialization. -*/ -template<typename T = void, typename SFINAE = void> -struct adl_serializer; - -/// a class to store JSON values -/// @sa https://json.nlohmann.me/api/basic_json/ -template<template<typename U, typename V, typename... Args> class ObjectType = - std::map, - template<typename U, typename... Args> class ArrayType = std::vector, - class StringType = std::string, class BooleanType = bool, - class NumberIntegerType = std::int64_t, - class NumberUnsignedType = std::uint64_t, - class NumberFloatType = double, - template<typename U> class AllocatorType = std::allocator, - template<typename T, typename SFINAE = void> class JSONSerializer = - adl_serializer, - class BinaryType = std::vector<std::uint8_t>> -class basic_json; - -/// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document -/// @sa https://json.nlohmann.me/api/json_pointer/ -template<typename BasicJsonType> -class json_pointer; - -/*! -@brief default specialization -@sa https://json.nlohmann.me/api/json/ -*/ -using json = basic_json<>; - -/// @brief a minimal map-like container that preserves insertion order -/// @sa https://json.nlohmann.me/api/ordered_map/ -template<class Key, class T, class IgnoredLess, class Allocator> -struct ordered_map; - -/// @brief specialization that maintains the insertion order of object keys -/// @sa https://json.nlohmann.me/api/ordered_json/ -using ordered_json = basic_json<nlohmann::ordered_map>; - -} // namespace nlohmann +#include <nlohmann/json_fwd.hpp> #endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_ namespace NL = nlohmann; -
