Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package PDAL for openSUSE:Factory checked in at 2022-01-08 23:23:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/PDAL (Old) and /work/SRC/openSUSE:Factory/.PDAL.new.1892 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "PDAL" Sat Jan 8 23:23:16 2022 rev:2 rq:944872 version:2.3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/PDAL/PDAL.changes 2021-08-24 10:55:10.496296941 +0200 +++ /work/SRC/openSUSE:Factory/.PDAL.new.1892/PDAL.changes 2022-01-08 23:23:41.726235376 +0100 @@ -1,0 +2,32 @@ +Fri Jan 7 16:29:16 UTC 2022 - Bruno Friedmann <br...@ioda-net.ch> + +- Fix the -devel dangling symlink by moving to libPDAL + libpdal_*.so.%{soname} symlinks to libpdal_*.%{sovers} + rpmlint not more complain. + +------------------------------------------------------------------- +Fri Jan 7 10:37:32 UTC 2022 - D. Berge <opens...@navlost.eu> + +- Add `Provides:` so that PDAL-devel can find libPDAL. + +------------------------------------------------------------------- +Wed Dec 29 17:17:47 UTC 2021 - Bruno Friedmann <br...@ioda-net.ch> + +- Review licenses of subpart: The code is licensed BSD except for: + + filters/private/csf/* and plugins/i3s/lepcc/* are Apache-2.0 + + vendor/arbiter/*, plugins/nitf/io/nitflib.h and plugins/oci/io/OciWrapper.* are Expat/MIT + + plugins/e57/io/{src,include}/* is BSD-3-Clause + + plugins/e57/libE57Format/{src,include}/* is Boost 1-0 +- Create a patch PDAL_unbundle.patch to sort out eigen3 and boost + + Eigen3 system now used fixing boo#1194109 +- Fixing boo#1194109 ppc64le build by disabling lto until upstream + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102059 is fixed +- Add Provides for + + bundled(arbiter) + + bundled(PoissonRecon) + + bundled(nanoflann) + + bundled(nlohmann) +- Add %check section following what's Fedora is doing + + Add upstream patch for testing 32bits d11e0e20.patch + +------------------------------------------------------------------- New: ---- PDAL_unbundle.patch d11e0e20.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ PDAL.spec ++++++ --- /var/tmp/diff_new_pack.urWfHf/_old 2022-01-08 23:23:42.802236254 +0100 +++ /var/tmp/diff_new_pack.urWfHf/_new 2022-01-08 23:23:42.814236264 +0100 @@ -1,7 +1,7 @@ # # spec file for package PDAL # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # Copyright (c) 2021 Friedmann Bruno, Ioda-Net S??rl, Charmoille, Switzerland. # # All modifications and additions to the file contributed by third parties @@ -24,17 +24,28 @@ Version: 2.3.0 Release: 0 Summary: Point Data Abstraction Library (GDAL for point cloud data) -License: BSD-3-Clause +# The code is licensed BSD except for: +# - filters/private/csf/* and plugins/i3s/lepcc/* are Apache-2.0 +# - vendor/arbiter/*, plugins/nitf/io/nitflib.h and plugins/oci/io/OciWrapper.* are Expat/MIT +# - plugins/e57/io/{src,include}/* is BSD-3-Clause +# - plugins/e57/libE57Format/{src,include}/* is Boost 1-0 +License: Apache-2.0 AND BSD-3-Clause AND MIT AND BSL-1.0 Group: Productivity/Graphics/CAD URL: https://www.pdal.io/ Source0: https://github.com/PDAL/PDAL/releases/download/%{version}/%{name}-%{version}-src.tar.bz2 Source1: https://github.com/PDAL/PDAL/releases/download/%{version}/%{name}-%{version}-src.tar.bz2.md5 +# Unbundle some bundled libraries inspired by Fedora work at +# https://src.fedoraproject.org/rpms/PDAL/blob/rawhide/f/PDAL_unbundle.patch +Patch0: PDAL_unbundle.patch +# Upstream : fix 32bits tests +Patch1: https://github.com/PDAL/PDAL/commit/d11e0e20.patch # Source2: https://www.pdal.io/PDAL.pdf BuildRequires: bash-completion BuildRequires: cairo-devel BuildRequires: cmake >= 2.8 BuildRequires: cunit-devel BuildRequires: curl-devel +BuildRequires: eigen3-devel BuildRequires: fdupes BuildRequires: freeglut-devel BuildRequires: gcc-c++ @@ -79,6 +90,14 @@ # Doesn't exist on obs BuildRequires: python3-breathe Requires: lib%{name}%{soname} = %{version} Provides: pdal = %{version} +# https://github.com/connormanning/arbiter bundled in vendor/arbiter +Provides: bundled(arbiter) +# https://github.com/mkazhdan/PoissonRecon bundled in vendor/kazhdan +Provides: bundled(PoissonRecon) +# https://github.com/jlblancoc/nanoflann bundled in vendor/nanoflann +Provides: bundled(nanoflann) +# https://github.com/nlohmann/json bundled in vendor/nlohmann +Provides: bundled(nlohmann) %description PDAL is a C++ BSD library for translating and manipulating point cloud data. @@ -111,7 +130,7 @@ %package bash-completion Summary: Bash completion for PDAL Requires: bash-completion -Supplements: packageand(%{name}:bash-completion) +Supplements: (%{name} and bash-completion) BuildArch: noarch %description bash-completion @@ -121,8 +140,8 @@ Summary: Development files and tools for PDAL applications Group: Development/Libraries/C and C++ Requires: cmake -Requires: lib%{name}%{soname} = %{version} Requires: laszip-devel +Requires: lib%{name}%{soname} = %{version} Requires: libboost_filesystem-devel Requires: libboost_headers-devel Requires: libboost_program_options-devel @@ -147,7 +166,9 @@ PDAL algorithms. %prep -%autosetup -n %{name}-%{version}-src +%autosetup -p1 -n %{name}-%{version}-src +# Remove some bundled libraries to use system +rm -rf vendor/{eigen,gtest,pdalboost} # Fix all wrong shebang and move to python3 only find . -type f -iname "*.py" -exec sed -i 's,^#!%{_bindir}/env python$,#!%{_bindir}/python3,' {} + @@ -157,6 +178,11 @@ find ./doc/ -type f -iname "*.ai" -delete %build +%ifarch ppc64le +# boo#1194109 and upstream https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102059 +%define _lto_cflags %{nil} +%endif + %cmake \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now" \ @@ -180,6 +206,7 @@ -DBUILD_PLUGIN_ICEBRIDGE=OFF \ -DBUILD_PLUGIN_NITF=OFF \ -DBUILD_PLUGIN_PGPOINTCLOUD=ON \ + -DBUILD_PGPOINTCLOUD_TESTS:BOOL=OFF \ -DBUILD_PLUGIN_GREYHOUND=OFF \ -DBUILD_PLUGIN_PCL=OFF \ .. @@ -211,6 +238,23 @@ #ctest -V #popd +%check +## test the compiled code (see doc/project/testing.rst) +# we skip tests for selected architectures which need upstream fixes +%ifarch armv7hl aarch64 ppc64le s390x +%ctest --output-on-failure || true +%else +## we skip the PG test (BUILD_PGPOINTCLOUD_TESTS:BOOL=OFF): +# PGUSER=pdal PGPASSWORD=password PGHOST=localhost PGPORT=5432 ctest -V +%ifarch i686 +# https://github.com/PDAL/PDAL/issues/3501 should work with PROJ 8.2 and gdal 3.2.3. +%ctest || : +%else +# https://github.com/PDAL/PDAL/issues/3501 +%ctest || : +%endif +%endif + %post -n lib%{name}%{soname} -p /sbin/ldconfig %postun -n lib%{name}%{soname} -p /sbin/ldconfig @@ -223,11 +267,16 @@ %license LICENSE.txt %doc AUTHORS.txt README.md RELEASENOTES.txt %{_libdir}/libpdal_base.so.%{sovers} +%{_libdir}/libpdal_base.so.%{soname} # Plugins %{_libdir}/libpdal_plugin_kernel_fauxplugin.so.%{sovers} +%{_libdir}/libpdal_plugin_kernel_fauxplugin.so.%{soname} %{_libdir}/libpdal_plugin_reader_pgpointcloud.so.%{sovers} +%{_libdir}/libpdal_plugin_reader_pgpointcloud.so.%{soname} %{_libdir}/libpdal_plugin_writer_pgpointcloud.so.%{sovers} +%{_libdir}/libpdal_plugin_writer_pgpointcloud.so.%{soname} %{_libdir}/libpdal_util.so.%{sovers} +%{_libdir}/libpdal_util.so.%{soname} %files bash-completion %dir %{_datadir}/bash-completion @@ -238,18 +287,11 @@ %license LICENSE.txt %doc AUTHORS.txt README.md CONTRIBUTING.md %{_includedir}/pdal -# old compatibility link -%exclude %{_libdir}/libpdal_*.so.10 %{_libdir}/libpdal_base.so %{_libdir}/libpdal_plugin_kernel_fauxplugin.so %{_libdir}/libpdal_plugin_reader_pgpointcloud.so %{_libdir}/libpdal_plugin_writer_pgpointcloud.so %{_libdir}/libpdal_util.so -%{_libdir}/libpdal_base.so.%{soname} -%{_libdir}/libpdal_plugin_kernel_fauxplugin.so.%{soname} -%{_libdir}/libpdal_plugin_reader_pgpointcloud.so.%{soname} -%{_libdir}/libpdal_plugin_writer_pgpointcloud.so.%{soname} -%{_libdir}/libpdal_util.so.%{soname} %{_libdir}/libpdalcpp.so %{_libdir}/pkgconfig/pdal.pc %{_libdir}/cmake/PDAL ++++++ PDAL_unbundle.patch ++++++ diff -rup a/cmake/gtest.cmake b/cmake/gtest.cmake --- a/cmake/gtest.cmake 2021-05-28 02:52:49.000000000 +0200 +++ b/cmake/gtest.cmake 2021-12-28 22:17:41.157270687 +0100 @@ -5,7 +5,7 @@ if (MSVC) endif() set(GOOGLETEST_VERSION 1.10.0) -add_subdirectory(vendor/gtest) +# add_subdirectory(vendor/gtest) set(FPHSA_NAME_MISMATCHED 1) # Suppress warnings, see https://cmake.org/cmake/help/v3.17/module/FindPackageHandleStandardArgs.html find_package(absl QUIET) diff -rup a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt 2021-05-28 02:52:50.000000000 +0200 +++ b/CMakeLists.txt 2021-12-28 22:07:39.474190770 +0100 @@ -67,7 +67,6 @@ else() endif() set(PDAL_LIB_NAME pdalcpp) set(PDAL_UTIL_LIB_NAME pdal_util) -set(PDAL_BOOST_LIB_NAME pdal_boost) set(PDAL_KAZHDAN_LIB_NAME pdal_kazhdan) set(PDAL_TEST_SUPPORT_OBJS pdal_test_support) @@ -140,6 +139,8 @@ include(${PDAL_CMAKE_DIR}/dimension.cmak include(${PDAL_CMAKE_DIR}/arbiter.cmake) include(${PDAL_CMAKE_DIR}/nlohmann.cmake) include(${PDAL_CMAKE_DIR}/openssl.cmake) # Optional +find_package(PkgConfig REQUIRED) +PKG_CHECK_MODULES(EIGEN REQUIRED eigen3) #------------------------------------------------------------------------------ # generate the pdal_features.hpp header @@ -185,7 +186,6 @@ if (WITH_TESTS) add_subdirectory(test) endif() add_subdirectory(dimbuilder) -add_subdirectory(vendor/pdalboost) add_subdirectory(vendor/arbiter) add_subdirectory(vendor/kazhdan) add_subdirectory(pdal/util) @@ -267,13 +267,12 @@ target_include_directories(${PDAL_BASE_L ${ROOT_DIR} ${PROJECT_BINARY_DIR}/include ${PDAL_VENDOR_DIR} - ${PDAL_VENDOR_DIR}/eigen - ${PDAL_VENDOR_DIR}/pdalboost ${LIBXML2_INCLUDE_DIR} ${ZSTD_INCLUDE_DIRS} ${NLOHMANN_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} ${LASZIP_INCLUDE_DIR} + ${EIGEN_INCLUDE_DIRS} ) target_link_libraries(${PDAL_BASE_LIB_NAME} PRIVATE diff -rup a/pdal/util/CMakeLists.txt b/pdal/util/CMakeLists.txt --- a/pdal/util/CMakeLists.txt 2021-05-28 02:52:49.000000000 +0200 +++ b/pdal/util/CMakeLists.txt 2021-12-28 22:08:12.917894919 +0100 @@ -36,7 +36,7 @@ PDAL_ADD_FREE_LIBRARY(${PDAL_UTIL_LIB_NA target_link_libraries(${PDAL_UTIL_LIB_NAME} PRIVATE ${BACKTRACE_LIBRARIES} - ${PDAL_BOOST_LIB_NAME} + boost_filesystem ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT} ) diff -rup a/pdal/util/FileUtils.cpp b/pdal/util/FileUtils.cpp --- a/pdal/util/FileUtils.cpp 2021-05-28 02:52:49.000000000 +0200 +++ b/pdal/util/FileUtils.cpp 2021-12-28 22:09:39.097132189 +0100 @@ -167,25 +167,25 @@ std::ostream *openExisting(const std::st bool directoryExists(const std::string& dirname) { //ABELL - Seems we should be calling is_directory - return pdalboost::filesystem::exists(toNative(dirname)); + return boost::filesystem::exists(toNative(dirname)); } bool createDirectory(const std::string& dirname) { - return pdalboost::filesystem::create_directory(toNative(dirname)); + return boost::filesystem::create_directory(toNative(dirname)); } bool createDirectories(const std::string& dirname) { - return pdalboost::filesystem::create_directories(toNative(dirname)); + return boost::filesystem::create_directories(toNative(dirname)); } void deleteDirectory(const std::string& dirname) { - pdalboost::filesystem::remove_all(toNative(dirname)); + boost::filesystem::remove_all(toNative(dirname)); } @@ -195,15 +195,15 @@ std::vector<std::string> directoryList(c try { - pdalboost::filesystem::directory_iterator it(dir); - pdalboost::filesystem::directory_iterator end; + boost::filesystem::directory_iterator it(dir); + boost::filesystem::directory_iterator end; while (it != end) { files.push_back(it->path().string()); it++; } } - catch (pdalboost::filesystem::filesystem_error&) + catch (boost::filesystem::filesystem_error&) { files.clear(); } @@ -243,13 +243,13 @@ void closeFile(std::istream* in) bool deleteFile(const std::string& file) { - return pdalboost::filesystem::remove(toNative(file)); + return boost::filesystem::remove(toNative(file)); } void renameFile(const std::string& dest, const std::string& src) { - pdalboost::filesystem::rename(toNative(src), toNative(dest)); + boost::filesystem::rename(toNative(src), toNative(dest)); } @@ -260,9 +260,9 @@ bool fileExists(const std::string& name) try { - return pdalboost::filesystem::exists(toNative(name)); + return boost::filesystem::exists(toNative(name)); } - catch (pdalboost::filesystem::filesystem_error&) + catch (boost::filesystem::filesystem_error&) { } return false; @@ -272,8 +272,8 @@ bool fileExists(const std::string& name) /// \return 0 on error or invalid file type. uintmax_t fileSize(const std::string& file) { - pdalboost::system::error_code ec; - uintmax_t size = pdalboost::filesystem::file_size(toNative(file), ec); + boost::system::error_code ec; + uintmax_t size = boost::filesystem::file_size(toNative(file), ec); if (ec) size = 0; return size; @@ -297,7 +297,7 @@ std::string readFileIntoString(const std std::string getcwd() { - const pdalboost::filesystem::path p = pdalboost::filesystem::current_path(); + const boost::filesystem::path p = boost::filesystem::current_path(); return addTrailingSlash(p.string()); } @@ -327,7 +327,7 @@ std::string toCanonicalPath(std::string // otherwise, make it absolute (relative to current working dir) and return that std::string toAbsolutePath(const std::string& filename) { - return pdalboost::filesystem::absolute(toNative(filename)).string(); + return boost::filesystem::absolute(toNative(filename)).string(); } @@ -339,7 +339,7 @@ std::string toAbsolutePath(const std::st std::string toAbsolutePath(const std::string& filename, const std::string base) { const std::string newbase = toAbsolutePath(base); - return pdalboost::filesystem::absolute(toNative(filename), + return boost::filesystem::absolute(toNative(filename), toNative(newbase)).string(); } @@ -362,8 +362,8 @@ std::string getFilename(const std::strin // Get the directory part of a filename. std::string getDirectory(const std::string& path) { - const pdalboost::filesystem::path dir = - pdalboost::filesystem::path(toNative(path)).parent_path(); + const boost::filesystem::path dir = + boost::filesystem::path(toNative(path)).parent_path(); return addTrailingSlash(dir.string()); } @@ -384,13 +384,13 @@ std::string stem(const std::string& path // Determine if the path represents a directory. bool isDirectory(const std::string& path) { - return pdalboost::filesystem::is_directory(toNative(path)); + return boost::filesystem::is_directory(toNative(path)); } // Determine if the path is an absolute path bool isAbsolutePath(const std::string& path) { - return pdalboost::filesystem::path(toNative(path)).is_absolute(); + return boost::filesystem::path(toNative(path)).is_absolute(); } diff -rup a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt --- a/test/unit/CMakeLists.txt 2021-05-28 02:52:49.000000000 +0200 +++ b/test/unit/CMakeLists.txt 2021-12-28 21:48:33.736198324 +0100 @@ -34,7 +34,7 @@ PDAL_ADD_TEST(pdal_eigen_test ${PDAL_SRC_DIR}/private/MathUtils.cpp INCLUDES - ${PDAL_VENDOR_DIR}/eigen + ${EIGEN_INCLUDE_DIRS} ) PDAL_ADD_TEST(pdal_file_utils_test FILES FileUtilsTest.cpp) PDAL_ADD_TEST(pdal_georeference_test FILES GeoreferenceTest.cpp) @@ -43,7 +43,7 @@ PDAL_ADD_TEST(pdal_kdindex_test KDIndexTest.cpp INCLUDES ${PDAL_VENDOR_DIR} - ${PDAL_VENDOR_DIR}/eigen + ${EIGEN_INCLUDE_DIRS} ) PDAL_ADD_TEST(pdal_kernel_test FILES KernelTest.cpp) PDAL_ADD_TEST(pdal_log_test FILES LogTest.cpp) @@ -70,7 +70,7 @@ PDAL_ADD_TEST(pdal_point_view_test FILES PointViewTest.cpp INCLUDES - ${PDAL_VENDOR_DIR}/eigen + ${EIGEN_INCLUDE_DIRS} ) PDAL_ADD_TEST(pdal_point_table_test FILES PointTableTest.cpp) @@ -189,13 +189,13 @@ PDAL_ADD_TEST(pdal_io_pcd_reader_test FILES io/PcdReaderTest.cpp INCLUDES - ${PDAL_VENDOR_DIR}/eigen + ${EIGEN_INCLUDE_DIRS} ) PDAL_ADD_TEST(pdal_io_pcd_writer_test FILES io/PcdWriterTest.cpp INCLUDES - ${PDAL_VENDOR_DIR}/eigen + ${EIGEN_INCLUDE_DIRS} ) PDAL_ADD_TEST(pdal_io_ply_reader_test FILES @@ -231,7 +231,7 @@ PDAL_ADD_TEST(pdal_filters_chipper_test filters/ChipperTest.cpp INCLUDES ${NLOHMANN_INCLUDE_DIR} - ${PDAL_VENDOR_DIR}/eigen + ${EIGEN_INCLUDE_DIRS} ) PDAL_ADD_TEST(pdal_filters_nndistance_test FILES @@ -282,7 +282,7 @@ PDAL_ADD_TEST(pdal_filters_icp_test FILES filters/IcpFilterTest.cpp INCLUDES - ${PDAL_VENDOR_DIR}/eigen + ${EIGEN_INCLUDE_DIRS} ) PDAL_ADD_TEST(pdal_filters_info_test FILES filters/InfoFilterTest.cpp) PDAL_ADD_TEST(pdal_filters_lloydkmeans_test FILES filters/LloydKMeansFilterTest.cpp) @@ -303,7 +303,7 @@ PDAL_ADD_TEST(pdal_filters_planefit_test FILES filters/PlaneFitFilterTest.cpp INCLUDES - ${PDAL_VENDOR_DIR}/eigen) + ${EIGEN_INCLUDE_DIRS}) PDAL_ADD_TEST(pdal_filters_pmf_test FILES filters/PMFFilterTest.cpp) PDAL_ADD_TEST(pdal_filters_reprojection_test FILES filters/ReprojectionFilterTest.cpp) @@ -328,7 +328,7 @@ PDAL_ADD_TEST(pdal_filters_splitter_test FILES filters/SplitterTest.cpp INCLUDES - ${PDAL_VENDOR_DIR}/eigen) + ${EIGEN_INCLUDE_DIRS}) PDAL_ADD_TEST(pdal_filters_stats_test FILES filters/StatsFilterTest.cpp) PDAL_ADD_TEST(pdal_filters_transformation_test FILES filters/TransformationFilterTest.cpp) ++++++ d11e0e20.patch ++++++ >From d11e0e20ba2d67365180cfd79ca8995170817697 Mon Sep 17 00:00:00 2001 From: Andrew Bell <andrew.bell...@gmail.com> Date: Thu, 3 Jun 2021 07:50:50 -0400 Subject: [PATCH] Don't run large file mapping test on WIN32. --- test/unit/UtilsTest.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/unit/UtilsTest.cpp b/test/unit/UtilsTest.cpp index 26a715854d..7ad985cbc9 100644 --- a/test/unit/UtilsTest.cpp +++ b/test/unit/UtilsTest.cpp @@ -477,6 +477,8 @@ TEST(UtilsTest, escapeJSON) EXPECT_EQ(escaped, "\\u0001\\t\\f\\n\\\\\\\"\\u0016"); } +// Don't run if we are WIN32 +#if !defined(_WIN32) || defined(_WIN64) TEST(UtilsTest, map) { Support::Tempfile temp; @@ -536,5 +538,6 @@ TEST(UtilsTest, map) EXPECT_EQ(std::string(c), "Another."); FileUtils::unmapFile(ctx); } +#endif // guard for 32-bit windows }