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;
-

Reply via email to