From 65027850d29862d19ec58a906a1bdfb069b8ba45bab71f9dd204526dafb334f9 Mon Sep 17 00:00:00 2001 From: Bruno Friedmann Date: Sun, 14 Jul 2024 07:00:13 +0000 Subject: [PATCH] Accepting request 1187287 from home:tenno:app-geo - Update to 2.7.2 --- Fixes building with Tumbleweed * https://github.com/PDAL/PDAL/compare/2.5.6...2.7.2 * https://github.com/PDAL/PDAL/releases/tag/2.6.0 * https://github.com/PDAL/PDAL/releases/tag/2.6.1 * https://github.com/PDAL/PDAL/releases/tag/2.6.2 * https://github.com/PDAL/PDAL/releases/tag/2.6.3 * https://github.com/PDAL/PDAL/releases/tag/2.7.0 * https://github.com/PDAL/PDAL/releases/tag/2.7.1 * https://github.com/PDAL/PDAL/releases/tag/2.7.2 - Changes from 1187257: * Set ctest timeout to 60s * List all .so-Files in %files OBS-URL: https://build.opensuse.org/request/show/1187287 OBS-URL: https://build.opensuse.org/package/show/Application:Geo/PDAL?expand=0&rev=39 --- .gitattributes | 23 +++ .gitignore | 1 + PDAL-2.5.6-src.tar.bz2 | 3 + PDAL-2.5.6-src.tar.bz2.md5 | 1 + PDAL-2.7.2-src.tar.bz2 | 3 + PDAL-2.7.2-src.tar.bz2.md5 | 1 + PDAL.changes | 343 +++++++++++++++++++++++++++++++++++++ PDAL.spec | 310 +++++++++++++++++++++++++++++++++ PDAL_unbundle.patch | 200 +++++++++++++++++++++ 9 files changed, 885 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 PDAL-2.5.6-src.tar.bz2 create mode 100644 PDAL-2.5.6-src.tar.bz2.md5 create mode 100644 PDAL-2.7.2-src.tar.bz2 create mode 100644 PDAL-2.7.2-src.tar.bz2.md5 create mode 100644 PDAL.changes create mode 100644 PDAL.spec create mode 100644 PDAL_unbundle.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/PDAL-2.5.6-src.tar.bz2 b/PDAL-2.5.6-src.tar.bz2 new file mode 100644 index 0000000..71553a1 --- /dev/null +++ b/PDAL-2.5.6-src.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c7c4570ef518942299479cc4077e0c657ec5b5174daf465415de947a1d3eb99 +size 87001744 diff --git a/PDAL-2.5.6-src.tar.bz2.md5 b/PDAL-2.5.6-src.tar.bz2.md5 new file mode 100644 index 0000000..d33725a --- /dev/null +++ b/PDAL-2.5.6-src.tar.bz2.md5 @@ -0,0 +1 @@ +728a54d18a4a47bf70dd5d45b26e2882 PDAL-2.5.6-src.tar.bz2 diff --git a/PDAL-2.7.2-src.tar.bz2 b/PDAL-2.7.2-src.tar.bz2 new file mode 100644 index 0000000..441c07e --- /dev/null +++ b/PDAL-2.7.2-src.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6ae0f3dc012b19c70dde2361799ecac0cdcbeb9cad5cfd96313c9fdc8608f32 +size 87431434 diff --git a/PDAL-2.7.2-src.tar.bz2.md5 b/PDAL-2.7.2-src.tar.bz2.md5 new file mode 100644 index 0000000..bbe8ab6 --- /dev/null +++ b/PDAL-2.7.2-src.tar.bz2.md5 @@ -0,0 +1 @@ +d7158d5e99c15b8e4ea7730aad04341b PDAL-2.7.2-src.tar.bz2 diff --git a/PDAL.changes b/PDAL.changes new file mode 100644 index 0000000..3f3a573 --- /dev/null +++ b/PDAL.changes @@ -0,0 +1,343 @@ +------------------------------------------------------------------- +Fri Jul 12 17:44:23 UTC 2024 - Enno Tensing + +- Update to 2.7.2 + * https://github.com/PDAL/PDAL/compare/2.5.6...2.7.2 + +------------------------------------------------------------------- +Fri Mar 1 10:53:46 UTC 2024 - Martin Pluskal + +- Fix building on Leap + +------------------------------------------------------------------- +Fri Mar 1 07:33:55 UTC 2024 - Dominique Leuenberger + +- BuildRequire proj-devel instead of the long deprecated name + libproj-devel. + +------------------------------------------------------------------- +Tue Oct 3 07:29:11 UTC 2023 - Guillaume GARDET + +- Update to 2.5.6, complete description: + * https://github.com/PDAL/PDAL/releases/tag/2.5.6 + * https://github.com/PDAL/PDAL/releases/tag/2.5.5 + * https://github.com/PDAL/PDAL/releases/tag/2.5.4 + * https://github.com/PDAL/PDAL/releases/tag/2.5.3 + * https://github.com/PDAL/PDAL/releases/tag/2.5.2 + * https://github.com/PDAL/PDAL/releases/tag/2.5.1 + * https://github.com/PDAL/PDAL/releases/tag/2.5.0 + * https://github.com/PDAL/PDAL/releases/tag/2.4.3 + * https://github.com/PDAL/PDAL/releases/tag/2.4.2 + * https://github.com/PDAL/PDAL/releases/tag/2.4.1 + * https://github.com/PDAL/PDAL/releases/tag/2.4.0 +- Drop upstream patch: + * d11e0e20.patch +- Refresh PDAL_unbundle.patch + +------------------------------------------------------------------- +Fri Jan 7 16:29:16 UTC 2022 - Bruno Friedmann + +- 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 + +- Add `Provides:` so that PDAL-devel can find libPDAL. + +------------------------------------------------------------------- +Wed Dec 29 17:17:47 UTC 2021 - Bruno Friedmann + +- 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 + +------------------------------------------------------------------- +Sun Aug 15 12:20:32 UTC 2021 - Bruno Friedmann + +- Update to 2.3.0 version + complete description https://github.com/PDAL/PDAL/releases/tag/2.3.0 + +------------------------------------------------------------------- +Sat Aug 14 17:16:31 UTC 2021 - Jan Engelhardt + +- Split bash-completion to its own package like e.g. NetworkManager. +- Remove old rpm specfile constructs like %defattr. Trim author + lists from package description. Set groups. Use multi-argument + find -exec. +- Drop extraneous Provides of the library package; this should + all be autodetected. +- Ensure that documentation is in fact processed by fdupes. + +------------------------------------------------------------------- +Fri Aug 13 08:29:11 UTC 2021 - Dirk Stoecker + +- Add missing requires laszip-devel to devel package. + +------------------------------------------------------------------- +Sun Nov 15 08:15:50 UTC 2020 - Bruno Friedmann + +- Rework BuildRequires as only libpq is really needed + + Indicate -DPOSTGRESQL_INCLUDE_DIR build flag + + Remove postgresql-devel postgresql-server-devel buildrequires +- Fix a sed instruction to use -i + +------------------------------------------------------------------- +Mon Sep 21 13:15:28 UTC 2020 - Dirk Stoecker 2.2.0 + +- update to 2.2.0 + * The Zstandard compression library is no longer required in order to build PDAL. + * The Ubuntu conda image now installs all of PDAL under /usr. + * The default type of the ClusterID dimension has changed from uint64_t to int64_t. + * Most operations now store data using ColumnPointTable, which stores data in + arrays of dimensions, rather than arrays of point data. This can improve the + performance of some operations substantially. Generally, this change should + not be noticeable to users. + * Normal refinement (refine option) in filters.normal is now off by default. (#3133) + * All filters now accept a where option to allow points to skip the filters. (#3118) + * PDAL now searches for plugins in the same directory containing the PDAL library. (#3181) + + see https://github.com/PDAL/PDAL/releases/tag/2.2.0 + +------------------------------------------------------------------- +Wed Jun 17 13:49:44 UTC 2020 - Bruno Friedmann + +- Add a manual fix for PDALConfig.cmake where the + @PDAL_CONFIG_LIBRARY_DIRS@ is wrongly expanded. + +------------------------------------------------------------------- +Fri Apr 10 16:29:56 UTC 2020 - Bruno Friedmann + +- update to 2.1.0 version + release note at https://github.com/PDAL/PDAL/releases + + Disable removed plugin SQLITE + + Disable independant plugin python3 +- Packaging + + Fix postgresql(-server)-devel package requirement + + spec cleanup + +------------------------------------------------------------------- +Sat Mar 14 13:19:03 UTC 2020 - Bruno Friedmann + +- Renew spec file, remove obsolete SUSE openSUSE versions +- Remove specific line in cmake about python3 (build failed with + new 3.8 version in Factory + +------------------------------------------------------------------- +Tue Sep 17 07:35:50 UTC 2019 - Dirk Stoecker + +- update to 2.0.1 + See https://github.com/PDAL/PDAL/releases/tag/2.0.1 + +------------------------------------------------------------------- +Mon Jul 8 15:45:21 UTC 2019 - Dirk Stoecker + +- update to 1.9.1 + For release notes see https://github.com/PDAL/PDAL/releases + +------------------------------------------------------------------- +Wed Feb 20 09:30:33 UTC 2019 - Bruno Friedmann + +- Remove FindLASzip-cmake.patch with new laszip 3.2.2 + +------------------------------------------------------------------- +Mon Feb 18 17:57:26 UTC 2019 - Bruno Friedmann + +- Update to 1.8.0 version (fix broken build with python3.7) + + changelog https://github.com/PDAL/PDAL/releases/tag/1.8.0 + + important issue about las 1.4 compressed with laszip +- Packaging + + refresh patch FindLASzip-cmake.patch + + spec-cleaner minimal + + bump SONAME to 8.0.0, SOVER to 7 + + cleanup changes (trailling space) + + delete orphan f717a4c.patch + + add new plugin libpdal_plugin_kernel_fauxplugin + +------------------------------------------------------------------- +Mon Jun 11 12:47:56 UTC 2018 - bruno@ioda-net.ch + +- Define %make_build for openSUSE_Leap_42.3 + +------------------------------------------------------------------- +Fri Jun 1 19:35:14 UTC 2018 - bruno@ioda-net.ch + +- Packaging: + + spec-clean -m (date,url,license) + + use make_build standard macro + + remove merged patch f717a4c.patch + + Adjust sofull_version 7.0.2 soname,sovers to 6 + + Fix sed shebang for python3 + + Added new reader numpy to filelist +- Updated to 1.7.2 upstream bugfix release + - See changelog https://github.com/PDAL/PDAL/releases/tag/1.7.2 +- Major release 1.7.1 + - See numerous changes at + https://github.com/PDAL/PDAL/releases/tag/1.7.1 + +------------------------------------------------------------------- +Sat Mar 17 13:45:07 UTC 2018 - aaronpuchert@alice-dsl.net + +- Remove unused build dependencies. Some of them aren't maintained + and don't build anymore. (libLAS, libght) +- Google Test is "vendored" and is also not required as dependency. +- FindLASzip-cmake.patch: Make sure LASzip is actually detected. +- Change license descriptor to BSD-3-Clause matching the license + in the repository. +- Remove unused CMake variables. +- Use standard macros for building and installing. + +------------------------------------------------------------------- +Mon Jan 15 13:00:20 UTC 2018 - bruno@ioda-net.ch + +- Update to version 1.6.0 + Visit https://github.com/PDAL/PDAL/releases/tag/1.6.0 for all + improvements done since 1.5 +- Adjust sofull_version to 6.1.0 soname to 5 and sovers to 5 +- Add upstream patch f717a4c.patch (json-c 0.13 support) +- Packaging: + + tarball are only published in tar.gz so adapt + + Build now only with python3 + + ToBeDone upgrade laszip to 3.1.0 + + Adapt file list to newer version + +------------------------------------------------------------------- +Wed May 31 06:24:07 UTC 2017 - bruno@ioda-net.ch + +- Update to version 1.5.0 + Visit https://github.com/PDAL/PDAL/releases/tag/1.5.0 for all + improvements done since 1.4 +- Remove patch c2cf2d.patch merged upstream +- Adjust sofull_version to 5.1.0 soname to 5 and sovers to 4 + +------------------------------------------------------------------- +Fri Mar 10 12:51:53 UTC 2017 - bruno@ioda-net.ch + +- Use the lastest patch c2cf2d.patch in place of + cfb888a04897f9704d5bdfaf4d2979e9ff303aab.patch + with use of short commit tag. + +------------------------------------------------------------------- +Wed Mar 8 14:51:03 UTC 2017 - bruno@ioda-net.ch + +- Update to version 1.4.0 + visit https://github.com/PDAL/PDAL/releases/tag/1.4.0 and + https://github.com/PDAL/PDAL/releases/tag/1.3.0 for all + improvements done since 1.2 + +- Packaging : + + Add cfb888a04897f9704d5bdfaf4d2979e9ff303aab.patch + Fix for being he only distribution with laszip header not in + subdir. See upstream https://github.com/PDAL/PDAL/issues/1503 + + Move to boost-devel split for TW + + Comment Requires for build documentation. + + Remove -WL,no-undefined flag from linker (otherwise we can't + build) upstream use dlopen. + + Clean-up and adapt cmake flag and options + +------------------------------------------------------------------- +Sun Apr 24 14:02:39 UTC 2016 - bruno@ioda-net.ch + +- Update to version 1.2.0 + see https://github.com/PDAL/PDAL/releases/tag/1.2.0/Changelog +- Fix missing Provide lowercase name +- Remove 01.patch merged upstream + +------------------------------------------------------------------- +Thu Feb 25 14:53:51 UTC 2016 - bruno@ioda-net.ch + +- Update to version 1.2.0+git.1456409216.0884085: + + Enable shallow clones on AppVeyor + + Move boost/property_tree/ptree.hpp where it is actually needed. + + address #1157 -- invalid JSON output due to \r\n + + use PDAL_LIB_INSTALL_DIR instead of CMAKE_INSTALL_LIBDIR + + try using webhook instead of app for slack notifications + + one more PDAL_LIB_INSTALL_DIR fix + + typo'd incoming_webhook defn + +- packaging : on upstream recommandation Move to git master version + at least until next March 2016 release. + +------------------------------------------------------------------- +Thu Feb 25 11:11:11 UTC 2016 - bruno@ioda-net.ch + +- Upstream release 1.1.0 + * Enhancements: + Add support for the LAZperf LAS compressor in decoding/encoding + LAS files. LAZperf can be enabled with the 'compression' option + in readers.las and writers.las. + Add PCL functionality as filters (filters.greedyprojection, + filters.gridprojection, filters.ground filters.movingleastsquares, + filters.poisson, filters.radiusoutlier, filters.statisticaloutlier, + filters.voxelgrid, filters.height, filters.dartsample) + Add readers.gdal to support reading raster sets as point clouds + Update writers.geowave and readers.geowave to work with the latest + version of GeoWave software. + Add readers.ilvis2 to support the Icebridge ILVIS2 format. + Disallow nested options. Check stage documentation for changes in + option names and handling. (filters.ferry, filters.colorization, + filters.attribute, filters.crop). Change filters.attribute to + handle only a single dimension. + Add 'output_dims' options in writers.bpf to allow control of the + dimensions that should be written. + Add 'all' keyword in 'extra_dims' options of writers.las to cause + all dimensions to be written to either the standard or extra + dimensions of a LAS point. + Add filters.randomize to allow randomized order of points. + Add filters.divider to split a set of points into subsets of a + fixed number or into subsets containing a specific number + of points. + Update to version 1.1.4 of rply in readers.rply. + Change the logic of the range filter to allow multiple ranges + for a single dimension and support a simple boolean logic. + Change the default scaling on writer.bpf to 'auto'. + Add support for smoothing boundaries generated by filters.hexbin. + Add readers.tindex to allow vector-filtered input of point + cloud files. + Allow merging of datasets with non-matching spatial references. + Many, many documentation enhancements. + + * Fixes: + Handle error with Pgpointcloud when pointcloud extension is not + installed on postgres server. Skip tests if extension is missing. + Set precision on output of doubles to metadata. + Fix a divide-by-zero error in readers.faux when the point count + was 1. (#1015) + Fix fatal error loading numpy library that occurred when running + filters.predicate or filters.programmable. (#1010) + Correct readers.las to properly check WKT bit when choosing spatial + reference VLR. (#1040) + Correct writer.las to emit only WKT or GeoTiff VLR, not both. + (#1040) + Check object ID against table column id (attrelid) to ensure correct + PCID retrieval in readers.pgpointcloud. (#1051) + +- Packaging + - Documentation is still missing since we don't have python-breathe + - Some modules (plugins) are not yet present on obs + So they are not compiled (help welcome) + - Add patches from upstream to fix lib(arch) placement + * 0001-set-SOVERSION-for-plugins-too-1119.patch + * 0004-install-pkgconfig-script-into-CMAKE_INSTALL_LIBDIR-1.patch + * 0016-install-pdal.pc-pkgconfig-in-CMAKE_INSTALL_LIBDIR.patch + * 0017-more-CMAKE_INSTALL_LIBDIR-tweaks.patch + +------------------------------------------------------------------- +Sun Dec 29 16:38:02 UTC 2013 - bruno@ioda-net.ch + +- First packaging for OBS + Due to upstream bug, documentation is not available diff --git a/PDAL.spec b/PDAL.spec new file mode 100644 index 0000000..626fea1 --- /dev/null +++ b/PDAL.spec @@ -0,0 +1,310 @@ +# +# spec file for package PDAL +# +# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2021 Friedmann Bruno, Ioda-Net Sàrl, Charmoille, Switzerland. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define soname 17 +%define sovers 17.1.0 +%define lname pdal +Name: PDAL +Version: 2.7.2 +Release: 0 +Summary: Point Data Abstraction Library (GDAL for point cloud data) +# 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 +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: gdal +BuildRequires: geotiff-devel +BuildRequires: gtest +BuildRequires: jsoncpp-devel +# We need 3.1.1+ for 1.6 +BuildRequires: laszip-devel +BuildRequires: libboost_filesystem-devel +BuildRequires: libboost_headers-devel +BuildRequires: libboost_program_options-devel +BuildRequires: libgdal-devel +BuildRequires: libgeos-devel +BuildRequires: libopenssl-devel >= 1.1 +BuildRequires: proj-devel +# Needed to have proj.db for tests +BuildRequires: libpsl5 +BuildRequires: libspatialindex-devel +BuildRequires: libtiff-devel +BuildRequires: libxml2-devel +BuildRequires: pkgconfig +BuildRequires: proj +# We don't have it yet +# BuildRequires: pointcloud-devel +BuildRequires: libunwind-devel +BuildRequires: libzstd-devel +BuildRequires: python3-devel +BuildRequires: sqlite3-devel +BuildRequires: xz-devel +BuildRequires: zlib-devel +BuildRequires: pkgconfig(libpq) +# Needed for documentation but we don't build it. +# BuildRequires: dblatex +# BuildRequires: doxygen +# BuildRequires: python-docutils +# BuildRequires: python-Sphinx +# BuildRequires: python3-docutils +# BuildRequires: python3-Sphinx +# For doc but only in TW +# BuildRequires: python-sphinxcontrib-breathe +# 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) +%if 0%{?suse_version} < 1550 +BuildRequires: gcc12-c++ +%else +BuildRequires: gcc-c++ >= 11 +%endif + +%description +PDAL is a C++ BSD library for translating and manipulating point cloud data. +It is very much like the GDAL library which handles raster and vector data. + +In addition to the library code, PDAL provides a suite of command-line +applications that users can conveniently use to process, filter, translate, +and query point cloud data. See Applications for more information. + +This package provides tools & utilities using PDAL library libpdal + +%package -n lib%{name}%{soname} +Summary: Point Data Abstraction Library (GDAL for point cloud data) +Group: System/Libraries + +%description -n lib%{name}%{soname} +PDAL is a C++ BSD library for translating and manipulating point cloud data. +It is very much like the GDAL library which handles raster and vector data. + +In addition to the library code, PDAL provides a suite of command-line +applications that users can conveniently use to process, filter, translate, +and query point cloud data. See Applications for more information. + +PDAL should not be confused with PCL (Point Cloud Library). +PCL is a library specifically designed to provide algorithmic analysis and +modification of point clouds. PDAL provides a limited interface to the PCL's +facilities, but does not in general attempt to duplicate its capabilites. +PDAL is focused more on data access and translation than PCL. + +%package bash-completion +Summary: Bash completion for PDAL +Requires: bash-completion +Supplements: (%{name} and bash-completion) +BuildArch: noarch + +%description bash-completion +This package contain the bash completion command for PDAL. + +%package devel +Summary: Development files and tools for PDAL applications +Group: Development/Libraries/C and C++ +Requires: cmake +Requires: laszip-devel +Requires: lib%{name}%{soname} = %{version} +Requires: libboost_filesystem-devel +Requires: libboost_headers-devel +Requires: libboost_program_options-devel +Requires: xz-devel +Requires: zlib-devel +Provides: lib%{lname}%{soname}-devel = %{version} +Provides: lib%{name}%{soname}-devel = %{version} +Provides: lib%{name}-devel +Provides: libpdal-devel + +%description devel +This package provides the headers files and tools you may need to +develop applications using PDAL. + +%package doc +Summary: Documentation, examples and demos for PDAL +Group: Documentation/Other +BuildArch: noarch + +%description doc +This package provides the documentation and sources of examples and data demos of +PDAL algorithms. + +%prep +%autosetup -p1 -n %{name}-%{version}-src +# Remove some bundled libraries to use system +rm -rf vendor/{eigen,gtest} +# Fix all wrong shebang and move to python3 only +find . -type f -iname "*.py" -exec sed -i 's,^#!%{_bindir}/env python$,#!%{_bindir}/python3,' {} + + +#Cleanup spurious perms in documentation +find ./doc/ -type f -exec chmod -v 0644 {} + +find ./doc/ -type f -iname "*.orig" -o -iname ".gitignore" -delete +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 +%if 0%{?suse_version} < 1550 +export CXX=g++-12 +%endif + +%cmake \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now" \ + -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now" \ + -DLIB_INSTALL_DIR=%{_libdir} \ + -DINCLUDE_INSTALL_DIR=%{_includedir} \ + -DENABLE_CTEST=ON \ + -Dgtest_build_tests=OFF \ + -DWITH_TESTS=ON \ + -DWITH_COMPLETION=ON \ + -DWITH_LASZIP=ON \ + -DWITH_LZMA=ON \ + -DLASZIP_INCLUDE_DIR=%{_includedir} \ + -DPOSTGRESQL_INCLUDE_DIR=%{_includedir}/pgsql \ + -DGEOTIFF_INCLUDE_DIR=%{_includedir}/libgeotiff \ + -DBUILD_SHARED_LIBS=ON \ + -DNUMPY_INCLUDE_DIR=%{_libdir}/python%{py3_ver}/site-packages/numpy \ + -DBUILD_PLUGIN_PYTHON=ON \ + -DBUILD_PLUGIN_SQLITE=ON \ + -DBUILD_PLUGIN_HEXBIN=OFF \ + -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 \ + .. + +%make_build +# Make documentation once fixed upstream +# make doxygen html man pdf + +%install +%cmake_install + +# No executable hpp-Files +find %{buildroot} -type f -name "*.hpp" -executable -exec chmod -x '{}' \; +# No executable cmake-Files +find %{buildroot} -type f -name "*.cmake" -executable -exec chmod -x '{}' \; + +#No .la lib +find %{buildroot} -type f -name "*.la" -o -name "*.a" -delete -print + +%if 0%{?suse_version} +%fdupes %{buildroot}/%{_prefix} +%fdupes -s doc +%endif + +# Strange the @PDAL_CONFIG_LIBRARY_DIRS@ is wrongly expanded /usr//usr/lib64/ in PDALConfig.cmake +sed -i 's,/usr//usr/lib64,%{_libdir},g' %{buildroot}/%{_libdir}/cmake/PDAL/PDALConfig.cmake + +# WIP pgpointcloud test need a complete running pg server +#%%check +#pushd build +#export LD_LIBRARY_PATH=%%{buildroot}/%%{_libdir}:${LD_LIBRARY_PATH} +#export PDAL_DRIVER_PATH=%%{buildroot}/%%{_libdir}:${PDAL_DRIVER_PATH} +#export GDAL_DATA=/usr/share/gdal/ +#ctest -V +#popd + +%check +## test the compiled code (see doc/project/testing.rst) +# A custom timeout of 60s is set. This avoids having tests timeout after the default +# timeout (about 20 minutes) +# we skip tests for selected architectures which need upstream fixes +%ifarch armv7hl aarch64 ppc64le s390x +%ctest --output-on-failure --timeout 60 || 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 --timeout 60 || : +%else +# https://github.com/PDAL/PDAL/issues/3501 +%ctest --timeout 60 || : +%endif +%endif + +%post -n lib%{name}%{soname} -p /sbin/ldconfig + +%postun -n lib%{name}%{soname} -p /sbin/ldconfig + +%files +%license LICENSE.txt +%{_bindir}/pdal + +%files -n lib%{name}%{soname} +%license LICENSE.txt +%doc AUTHORS.txt README.md RELEASENOTES.txt +%{_libdir}/libpdalcpp.so.%{soname} +%{_libdir}/libpdalcpp.so.%{sovers} +# Plugins +%{_libdir}/libpdal_plugin_kernel_fauxplugin.so.%{soname} +%{_libdir}/libpdal_plugin_kernel_fauxplugin.so.%{sovers} +%{_libdir}/libpdal_plugin_reader_pgpointcloud.so.%{soname} +%{_libdir}/libpdal_plugin_reader_pgpointcloud.so.%{sovers} +%{_libdir}/libpdal_plugin_writer_pgpointcloud.so.%{soname} +%{_libdir}/libpdal_plugin_writer_pgpointcloud.so.%{sovers} + +%files bash-completion +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%{_datadir}/bash-completion/completions/pdal + +%files devel +%license LICENSE.txt +%doc AUTHORS.txt README.md CONTRIBUTING.md +%{_includedir}/pdal +%{_libdir}/libpdalcpp.so +%{_libdir}/libpdal_plugin_kernel_fauxplugin.so +%{_libdir}/libpdal_plugin_reader_pgpointcloud.so +%{_libdir}/libpdal_plugin_writer_pgpointcloud.so +%{_libdir}/pkgconfig/pdal.pc +%{_libdir}/cmake/PDAL +%{_bindir}/pdal-config + +%files doc +%doc doc + +%changelog diff --git a/PDAL_unbundle.patch b/PDAL_unbundle.patch new file mode 100644 index 0000000..2c09462 --- /dev/null +++ b/PDAL_unbundle.patch @@ -0,0 +1,200 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e18fab718..98ecbd76e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -118,6 +118,9 @@ include(${PDAL_CMAKE_DIR}/lazperf.cmake) + include(${PDAL_CMAKE_DIR}/gcs.cmake) # Optional + include(${PDAL_CMAKE_DIR}/utfcpp.cmake) + ++find_package(PkgConfig REQUIRED) ++PKG_CHECK_MODULES(EIGEN REQUIRED eigen3) ++ + #------------------------------------------------------------------------------ + # generate the pdal_features.hpp header + #------------------------------------------------------------------------------ +@@ -153,7 +156,6 @@ endif() + add_subdirectory(plugins) + + if (WITH_TESTS) +- include (${PDAL_CMAKE_DIR}/gtest.cmake) + add_subdirectory(test) + endif() + add_subdirectory(dimbuilder) +@@ -219,7 +221,7 @@ add_library(PDAL::PDAL ALIAS ${PDAL_LIB_NAME}) + # + target_include_directories(${PDAL_LIB_NAME} + SYSTEM BEFORE PRIVATE +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ${PDAL_VENDOR_DIR}/kazhdan + ${PDAL_VENDOR_DIR}/h3/include + ) +diff --git a/plugins/cpd/CMakeLists.txt b/plugins/cpd/CMakeLists.txt +index ba85e27a7..dcf936502 100644 +--- a/plugins/cpd/CMakeLists.txt ++++ b/plugins/cpd/CMakeLists.txt +@@ -13,7 +13,7 @@ find_package(Fgt REQUIRED CONFIG) + option(BUILD_PLUGIN_CPD "Build Coherent Point Drift support" ${Cpd_FOUND}) + + set(files filters/CpdFilter.cpp) +-set(include_dirs "${CMAKE_CURRENT_LIST_DIR}" "${PDAL_VENDOR_DIR}/eigen") ++set(include_dirs "${CMAKE_CURRENT_LIST_DIR}" "${EIGEN_INCLUDE_DIRS}") + + PDAL_ADD_PLUGIN(filter_libname filter cpd + FILES +@@ -22,7 +22,7 @@ PDAL_ADD_PLUGIN(filter_libname filter cpd + Cpd::Library-C++ + ${PDAL_LIBRARIES} + INCLUDES +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ${CMAKE_CURRENT_LIST_DIR} + ) + +diff --git a/plugins/rdb/CMakeLists.txt b/plugins/rdb/CMakeLists.txt +index 0ddb9a24e..49a74a3e8 100644 +--- a/plugins/rdb/CMakeLists.txt ++++ b/plugins/rdb/CMakeLists.txt +@@ -25,7 +25,6 @@ PDAL_ADD_PLUGIN(libname reader rdb + ${RDB_INCLUDE_C_DIR} + ${PDAL_INCLUDE_DIRS} + ) +-target_include_directories(${libname} PRIVATE "${PDAL_VENDOR_DIR}/eigen") + target_include_directories(${libname} PUBLIC "${CMAKE_CURRENT_LIST_DIR}/../../vendor/nlohmann/") + target_include_directories(${libname} PUBLIC "${CMAKE_CURRENT_LIST_DIR}/../../vendor/eigen/") + +@@ -54,7 +53,7 @@ if (BUILD_RDBLIB_TESTS) + ${PROJECT_SOURCE_DIR}/plugins/rdb/io + ${RDB_INCLUDE_CPP_DIR} + ${RDB_INCLUDE_C_DIR} +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + + ) + endif() +diff --git a/plugins/teaser/CMakeLists.txt b/plugins/teaser/CMakeLists.txt +index cb1cb0e4e..c4017cab8 100644 +--- a/plugins/teaser/CMakeLists.txt ++++ b/plugins/teaser/CMakeLists.txt +@@ -67,6 +67,6 @@ if (WITH_TESTS) + LINK_WITH + ${filter_libname} + INCLUDES +- "${PDAL_VENDOR_DIR}/eigen" ++ ${EIGEN_INCLUDE_DIRS} + ) + endif() +diff --git a/plugins/trajectory/CMakeLists.txt b/plugins/trajectory/CMakeLists.txt +index 31fc9942f..6ec207d95 100644 +--- a/plugins/trajectory/CMakeLists.txt ++++ b/plugins/trajectory/CMakeLists.txt +@@ -18,7 +18,7 @@ PDAL_ADD_PLUGIN(libname filter trajectory + ${CERES_LIBRARIES} + ${PDAL_LIBRARIES} + INCLUDES +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ) + + if (WITH_TRAJECTORY_TEST) +diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt +index 7ac5a1ede..a7e3bedd2 100644 +--- a/test/unit/CMakeLists.txt ++++ b/test/unit/CMakeLists.txt +@@ -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) +@@ -52,7 +52,7 @@ PDAL_ADD_TEST(pdal_math_utils_test + MathUtilsTest.cpp + ${PDAL_SRC_DIR}/private/MathUtils.cpp + INCLUDES +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ) + PDAL_ADD_TEST(pdal_metadata_test FILES MetadataTest.cpp) + PDAL_ADD_TEST(pdal_oldpclblock_test FILES OldPCLBlockTest.cpp) +@@ -84,7 +84,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) + +@@ -227,13 +227,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 +@@ -279,7 +279,7 @@ PDAL_ADD_TEST(pdal_i3s_obb_test + INCLUDES + ${NLOHMANN_INCLUDE_DIR} + ${PDAL_INCLUDE_DIR} +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ) + + if (BUILD_I3S_TESTS) +@@ -300,7 +300,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 +@@ -359,7 +359,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) +@@ -380,7 +380,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) +@@ -408,7 +408,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)