Bugzilla – Bug 1218665
graphics/cgal doesn't build on Leap
Last modified: 2024-01-30 20:56:48 UTC
cgal 5.6 need libboost 1.70 mini see https://github.com/CGAL/cgal/pull/6035/files#diff-15c87bfcbc7566af81c9b4d5802054cbdb0fbd85504f9e610467f1e4227555e2 package ask 1.66 this lead to build errors in PDAL for example.
(In reply to Bruno Friedmann from comment #0) > cgal 5.6 need libboost 1.70 mini see > > https://github.com/CGAL/cgal/pull/6035/files#diff- > 15c87bfcbc7566af81c9b4d5802054cbdb0fbd85504f9e610467f1e4227555e2 All I see there is some kind of PR that wants to introduce `boost::multiprecision::number`. What exactly should I look at in the diff that you provided? https://github.com/CGAL/cgal/pull/6035 seems to be from 2021 and not merged yet. It mentions "TODO: document Boost 1.70 is required". I'm not familiar with the code but assume they mean they require this _for_ the code changes in the PR? > this lead to build errors in PDAL for example What is PDAL? Where are the build failures?
Hello Michael, If you look at this package (trying to build updated compared to the existent) https://build.opensuse.org/package/live_build_log/home:bruno_friedmann:branches:Application:Geo/PDAL/15.6/x86_64 You will see the latest build failing, with the missing [ 252s] /home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/pdal/util/FileUtils.cpp:49:10: fatal error: filesystem: No such file or directory [ 252s] #include <filesystem> [ 252s] ^~~~~~~~~~~~ Which I don't see when cgal 5.6 and libbost are >1.70 like on TW for example. I maybe wrong in my interpretation, if so, and you have any suggestion it would be nice.
(In reply to Bruno Friedmann from comment #2) > [ 252s] > /home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/pdal/util/FileUtils.cpp:49:10: > fatal error: filesystem: No such file or directory > [ 252s] #include <filesystem> > [ 252s] ^~~~~~~~~~~~ > > Which I don't see when cgal 5.6 and libbost are >1.70 like on TW for example. > > I maybe wrong in my interpretation, if so, and you have any suggestion it > would be nice. #include <filesystem> is not a boost thing. This is a C++ thing. https://en.cppreference.com/w/cpp/filesystem It probably means you have to use newer compiler than the default SLE15 compiler.
There is currently no version for the Requires: in the devel package -- this can be fixed in future if required (maybe a little pun intended :-). Normally, the onus is to BR: in the build package not the Requires in the devel package, but we can fix Requires: slowly as well. For now, the upstream changes are not even incorporated and the compilation error you are seeing are related to C++17 support. I will close this as invalid bug.
Thanks you've done it quicker than me. I've really appreciated the advise of the gcc, I've completely forgotten what kine of dinosaurs we still have in Leap with no easy alternatives support... From what I've seen PDAL build with gcc10,11 but failed with 12,13 on Leap, while building on TW :-( So will see with upstream.
(In reply to Bruno Friedmann from comment #5) > From what I've seen PDAL build with gcc10,11 but failed with 12,13 on Leap, > while building on TW :-( > > So will see with upstream. Can you update your package to build with gcc12 or 13 so we can see the failure? It sounds specific to Leap environment
Hi Adam I've not forced the usage of gcc-13 in https://build.opensuse.org/package/show/home:bruno_friedmann:branches:Application:Geo/PDAL At least I got something coherent: all build fails :-)
I think I will try to move to Ninga build like what they are doing in upstream ci
(In reply to Bruno Friedmann from comment #7) > Hi Adam I've not forced the usage of gcc-13 > in > https://build.opensuse.org/package/show/home:bruno_friedmann:branches: > Application:Geo/PDAL > > At least I got something coherent: all build fails :-) Indeed this looks like an upstream bug. see below, [ 194s] /usr/bin/g++-13 -DUNIX -Dpdalcpp_EXPORTS -I/home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/vendor/gtest/include -I/home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/vendor/gtest -I/home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src -I/home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/build/include -I/home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/vendor -I/home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/vendor/nlohmann -I/home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/vendor/utfcpp/source -I/usr/include/libgeotiff -I/usr/include/eigen3 -I/usr/include/libxml2 -I/usr/include/gdal -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DNDEBUG -O2 -g -DNDEBUG -fPIC -Wno-implicit-fallthrough -Wno-int-in-bool-context -Wno-dangling-else -Wno-noexcept-type -Wall -Wextra -Wpointer-arith -Wcast-align -Wcast-qual -Wno-error=parentheses -Wno-error=cast-qual -Wredundant-decls -Wno-unused-parameter -Wno-unused-variable -Wno-long-long -Wno-unknown-pragmas -Wno-deprecated-declarations -fvisibility=hidden -fvisibility-inlines-hidden -std=c++17 -MD -MT CMakeFiles/pdalcpp.dir/io/EsriReader.cpp.o -MF CMakeFiles/pdalcpp.dir/io/EsriReader.cpp.o.d -o CMakeFiles/pdalcpp.dir/io/EsriReader.cpp.o -c /home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/io/EsriReader.cpp [ 194s] In file included from /usr/include/eigen3/Eigen/Core:162, [ 194s] from /usr/include/eigen3/Eigen/Geometry:11, [ 194s] from /home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/io/EsriReader.cpp:37: [ 194s] /usr/include/eigen3/Eigen/src/Core/util/Meta.h:503:31: error: macro "F" requires 3 arguments, but only 1 given [ 194s] 503 | struct result_of<F(ArgTypes...)> { [ 194s] | ^ [ 194s] In file included from /home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/io/EsriReader.hpp:44, [ 194s] from /home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/io/EsriReader.cpp:35: [ 194s] /home/abuild/rpmbuild/BUILD/PDAL-2.6.2-src/vendor/arbiter/arbiter.hpp:3298: note: macro "F" defined here [ 194s] 3298 | #define F(x,y,z) ((x & y) | (~x & z)) [ 194s] | [ 194s] /usr/include/eigen3/Eigen/src/Core/util/Meta.h:503:8: error: template parameters not deducible in partial specialization: [ 194s] 503 | struct result_of<F(ArgTypes...)> { [ 194s] | ^~~~~~~~~~~~~~~~~~~~~~~~~ [ 194s] /usr/include/eigen3/Eigen/src/Core/util/Meta.h:503:8: note: 'ArgTypes' What it says is that you a *macro* F in PDAL vendored arbiter sources and then there is some library that uses type F... So that macro is getting used where it's not suppose to be used. I would suggest that macros are either confined to their sources only (using undef at end of where they are needed, if they are in headers), or one should use something more specific than a single character macro :-) I suspect this is working in older GCC because the entire metaprogramming bits in eigen3 is not being used at all, but that's purely a guess on my part. In TW eigen3 probably moved away from using F type there too (guessing as well :-)
Adam thanks that lead me to a possible solution: remove the unbundle patch we have in our spec. then PDAL build. I'm not happy with this but it is as it is.