]]>vtk has been rebuilt for boost 1.81 (9.1.0-26) currently in testing.
1. openvdb is an optional dependency for vtk and seems (we'll just assume, feel free to download and ldd it) to link boost, also because
2. openvdb is also a build dependency for vtk, so it's not just dlopened.
3. vtk has boost as a build dependency and given the .*Boost.* headers, might be inlining and statically linking ("copy") some boost code.
a) pcl looks for vtk
b) vtk looks whether openvdb is installed.
c) openvdb is installed, but was built against a different version of boost.
So by any chance at this point you run a risk of two versions of boost code slushing around in your binary:
The one that vtk was built against and the one that openvdb was built against and that gets sucked in w/ vtk
The necessary assumption is that they're incompatible (because it's boost)
So the module detection errors out.
=> vtk needs to be rebuilt along openvdb because of the boost double-inheritence.
* On top of that pcl itself links boost, but that's irrelevant at this point. It just needs to be rebuild everytime after boost and with it vtk and openvdb have been updated.
]]>While rebuilding vtk may make the error go away, that appears to just be sweeping it under the rug rather than addressing the root cause which is bound to crop up repeatedly until the root cause is addressed.
]]>boost is a makedepends
static link or inlined?
]]>EDIT: I guess boost is a makedepends, but not a depends nor even optional dependency which is odd. Still, no binaries in vtk seem to link to boost.
]]>seth that's a slightly different error from last year. The current error is due to the boost upgrade just a couple days ago and is due to the cmake requirements listing only older versions of boost.
Trilby it is the same issue as seth linked to apart from the version numbers. After rebuilding vtk against boost 1.81 the issue is resolved. The boost 1.81 rebuild only covered packages that linked to boost, missing those that added a version requirement in other installed files.
Edit:
The package fails to build in a clean chroot due to missing qt5-base required by vtk (again as that was what it was built with) while pcl can use either 5 or 6.
Using paru
paru -R <package>
rm -r ~/.cache/paru/clone/<package>
paru -S <package>
Using makepkg
git clone <url>
cd <dir>
makepkg -si
However, I still had issues when rebuilding.
Output of checkrebuild -v
https://pastebin.com/1N8D1rsV
Output when I run makepkg -si for pcl, which is one of the broken packages:
==> Making package: pcl 1.13.0-1 (Sat 04 Feb 2023 10:26:07 PM EST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found pcl-1.13.0.tar.gz
==> Validating source files with sha256sums...
pcl-1.13.0.tar.gz ... Passed
==> Extracting sources...
-> Extracting pcl-1.13.0.tar.gz with bsdtar
==> Removing existing $pkgdir/ directory...
==> Starting build()...
-- Adding target 'format'
-- Found OpenMP, spec date 201511
-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)
-- Found flann version 1.9.2
-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/libOpenNI2.so;libusb::libusb)
-- Checking for module 'metslib'
-- Package 'metslib', required by 'virtual:world', not found
-- Found Qhull version 8.0.2
-- Found CUDA Toolkit v11.8
-- CMAKE_CUDA_ARCHITECTURES: 35;37;50;52;53;60;61;62;70;72;75;80;86;87;89;90
-- Found Embree v3.13.5: /usr/lib/libembree3.so.3.13.5
-- Found Open VKL v1.3.1: /usr/lib/libopenvkl.so.1.3.1
-- Could NOT find Boost: Found unsuitable version "1.81.0", but required is exact version "1.80.0" (found /usr/include, )
-- Could not find the VTK package due to a missing dependency: Boost
COMPONENT = openvdb
-- OpenVDB ABI Version: 10
CMake Error at /usr/lib/cmake/Boost-1.81.0/BoostConfig.cmake:141 (find_package):
Found package configuration file:/usr/lib/cmake/boost_iostreams-1.81.0/boost_iostreams-config.cmake
but it set boost_iostreams_FOUND to FALSE so package "boost_iostreams" is
considered to be NOT FOUND. Reason given by package:No suitable build variant has been found.
The following variants have been tried and rejected:
* libboost_iostreams.so.1.81.0 (release runtime,
Boost_USE_DEBUG_RUNTIME=TRUE)* libboost_iostreams.a (static, Boost_USE_STATIC_LIBS=OFF)
Call Stack (most recent call first):
/usr/lib/cmake/Boost-1.81.0/BoostConfig.cmake:262 (boost_find_component)
/usr/share/cmake/Modules/FindBoost.cmake:594 (find_package)
/usr/share/cmake/Modules/FindOpenVDB.cmake:504 (find_package)
/usr/lib/cmake/vtk/VTK-vtk-module-find-packages.cmake:650 (find_package)
/usr/lib/cmake/vtk/vtk-config.cmake:150 (include)
cmake/pcl_find_vtk.cmake:31 (find_package)
CMakeLists.txt:388 (include)-- Configuring incomplete, errors occurred!
See also "/home/---/opt/AURpkgs/pcl/src/build/CMakeFiles/CMakeOutput.log".
See also "/home/---/opt/AURpkgs/pcl/src/build/CMakeFiles/CMakeError.log".
==> ERROR: A failure occurred in build().
Aborting...
---@Desktop:pcl$ makepkg -si > log
pcl-1.13.0.tar.gz ... Passed
COMPONENT = openvdb
CMake Error at /usr/lib/cmake/Boost-1.81.0/BoostConfig.cmake:141 (find_package):
Found package configuration file:/usr/lib/cmake/boost_iostreams-1.81.0/boost_iostreams-config.cmake
but it set boost_iostreams_FOUND to FALSE so package "boost_iostreams" is
considered to be NOT FOUND. Reason given by package:No suitable build variant has been found.
The following variants have been tried and rejected:
* libboost_iostreams.so.1.81.0 (release runtime,
Boost_USE_DEBUG_RUNTIME=TRUE)* libboost_iostreams.a (static, Boost_USE_STATIC_LIBS=OFF)
Call Stack (most recent call first):
/usr/lib/cmake/Boost-1.81.0/BoostConfig.cmake:262 (boost_find_component)
/usr/share/cmake/Modules/FindBoost.cmake:594 (find_package)
/usr/share/cmake/Modules/FindOpenVDB.cmake:504 (find_package)
/usr/lib/cmake/vtk/VTK-vtk-module-find-packages.cmake:650 (find_package)
/usr/lib/cmake/vtk/vtk-config.cmake:150 (include)
cmake/pcl_find_vtk.cmake:31 (find_package)
CMakeLists.txt:388 (include)==> ERROR: A failure occurred in build().
Aborting...