Closed lucasw closed 1 year ago
Looks like it isn't updating cuda, still 510 nvidia drivers:
Get:1771 http://us.archive.ubuntu.com/ubuntu kinetic-updates/restricted amd64 libnvidia-compute-510 amd64 510.108.03-0ubuntu0.22.10.1 [57.7 MB]
Rebuilding all of base_catkin_ws
Errors << rosconsole:make /home/lucasw/base_catkin_ws/logs/rosconsole/build.make.000.log
/home/lucasw/base_catkin_ws/src/ros/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp: In function ‘void ros::console::impl::print(void*, ros::console::Level, const char*, const char*, const char*, int)’:
/home/lucasw/base_catkin_ws/src/ros/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp:189:98: error: no matching function for call to ‘log4cxx::spi::LocationInfo::LocationInfo(const char*&, const char*&, int&)’
189 | logger->forcedLog(g_level_lookup[level], str, log4cxx::spi::LocationInfo(file, function, line));
lucasw rosconsole -> ubuntu_2110
(whoops needs to be ubuntu 2210)
/home/lucasw/base_catkin_ws/src/ros/pluginlib/pluginlib/include/pluginlib/./class_loader_imp.hpp:348:51: error: ‘systemLibrarySuffix’ is not a member of ‘class_loader’; did you mean ‘systemLibraryFormat’?
348 | bool debug_library_suffix = (0 == class_loader::systemLibrarySuffix().compare(0, 1, "d"));
| ^~~~~~~~~~~~~~~~~~~
| systemLibraryFormat
Do i need to build the latest class_loader locally?
sudo apt install libpoco-dev
-> The apt installed class loader uses ament
Try going other way and don't build pluginlib locally, use apt installed one, put a CATKIN_IGNORE in it and rebuild all
class_list_macros.h -> class_list_macros.hpp
camera_throttler_nodelets ubuntu_2210
diff --git a/qt_gui_cpp/include/qt_gui_cpp/ros_pluginlib_plugin_provider.h b/qt_gui_cpp/include/qt_gui_cpp/ros_pluginlib_plugin_provider.h
index 9734ebb..f17486a 100644
--- a/qt_gui_cpp/include/qt_gui_cpp/ros_pluginlib_plugin_provider.h
+++ b/qt_gui_cpp/include/qt_gui_cpp/ros_pluginlib_plugin_provider.h
@@ -41,6 +41,7 @@
// while this header uses boost shared pointers
// Shiboken2 isn't able to parse it correctly atm
//#include <boost/shared_ptr.hpp>
+#include <boost/filesystem.hpp>
#include <pluginlib/class_loader.hpp>
#include <tinyxml.h>
diff --git a/hector_geotiff/src/geotiff_node.cpp b/hector_geotiff/src/geotiff_node.cpp
index aec7623..9e44814 100644
--- a/hector_geotiff/src/geotiff_node.cpp
+++ b/hector_geotiff/src/geotiff_node.cpp
@@ -33,7 +33,7 @@
#include <ros/ros.h>
#include <ros/console.h>
-#include <pluginlib/class_loader.h>
+#include <pluginlib/class_loader.hpp>
#include <memory>
#include <boost/algorithm/string.hpp>
Try removing pluginlib from 22.04 source checkout build also and see if similar things fail, and also look at the debian class_loader includes to see if they have the hpp- it's already removed :heavy_check_mark:
Also common_tutorials ubuntu_2210
branch
ros_rtsp
https://github.com/lucasw/rqt/tree/ubuntu_2210 https://github.com/lucasw/grid_map/tree/ubuntu_2210 https://github.com/lucasw/image_common/tree/ubuntu_2210 https://github.com/lucasw/rqt_image_view/tree/ubuntu_2210 https://github.com/lucasw/image_pipeline/tree/ubuntu_2210
ros_common needed to include boost/bind.hpp, but didn't create a new branch for that, just updated salsa_noetic_aggregated
web_video_server doesn't build, disable for now
/home/lucasw/base_catkin_ws/src/ros/web_video_server/src/libav_streamer.cpp:11:63: error: use of enum ‘AVLockOp’ without previous declaration
11 | static int ffmpeg_boost_mutex_lock_manager(void **mutex, enum AVLockOp op)
| ^~~~~~~~
/home/lucasw/base_catkin_ws/src/ros/web_video_server/src/libav_streamer.cpp: In function ‘int web_video_server::ffmpeg_boost_mutex_lock_manager(void**, int)’:
/home/lucasw/base_catkin_ws/src/ros/web_video_server/src/libav_streamer.cpp:18:10: error: ‘AV_LOCK_CREATE’ was not declared in this scope; did you mean ‘AV_LOG_TRACE’?
18 | case AV_LOCK_CREATE:
| ^~~~~~~~~~~~~~
| AV_LOG_TRACE
/home/lucasw/base_catkin_ws/src/ros/web_video_server/src/libav_streamer.cpp:25:10: error: ‘AV_LOCK_OBTAIN’ was not declared in this scope
25 | case AV_LOCK_OBTAIN:
| ^~~~~~~~~~~~~~
/home/lucasw/base_catkin_ws/src/ros/web_video_server/src/libav_streamer.cpp:31:10: error: ‘AV_LOCK_RELEASE’ was not declared in this scope
31 | case AV_LOCK_RELEASE:
| ^~~~~~~~~~~~~~~
/home/lucasw/base_catkin_ws/src/ros/web_video_server/src/libav_streamer.cpp:37:10: error: ‘AV_LOCK_DESTROY’ was not declared in this scope
37 | case AV_LOCK_DESTROY:
There are a ton more to track down:
grep -r class_list_macros.h\> *
https://salsa.debian.org/science-team/ros-pluginlib/-/commit/2d4034aba57c252d63cedc0eec9b544c37a343b6#e2e778c0f71c805a2d0e184c4b659e90e2a71458 is the commit that removed the class_list_macros.h and class_loader.h following https://github.com/ros/pluginlib/commit/e7a8f53d156ddadbba2e7c4b63263ae26b7d8090 on the pluginlib rolling
release.
Does 20.04 ros buildfarm pluginlib have the hpp versions? It looks like it in https://github.com/ros/pluginlib/tree/noetic-devel/pluginlib/include/pluginlib - In that case every package noetic branch could be updated to use hpp and used in 22.04 and now 21.10 builds too.
If I try to build the ubuntu_2210 rosconsole https://github.com/lucasw/rosconsole/tree/ubuntu_2210 in 22.04 I get this:
/home/lucasw/base_catkin_ws/src/ros/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp: In function ‘void ros::console::impl::shutdown()’:
/home/lucasw/base_catkin_ws/src/ros/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp:389:58: error: base operand of ‘->’ has non-pointer type ‘log4cxx::spi::LoggerRepositoryWeakPtr’ {aka ‘std::weak_ptr<log4cxx::spi::LoggerRepository>’}
389 | log4cxx::Logger::getRootLogger()->getLoggerRepository()->shutdown();
| ^~
make[2]: *** [CMakeFiles/rosconsole_log4cxx.dir/build.make:76: CMakeFiles/rosconsole_log4cxx.dir/src/rosconsole/impl/rosconsole_log4cxx.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:318: CMakeFiles/rosconsole_log4cxx.dir/all] Error 2
So need to have a different branch of rosconsole for 20.04, 22.04, and 22.10
find . -type f -name "*.*" -exec sed -i'' -e 's/class_list_macros.h>/class_list_macros.hpp>/g' {} +
find . -type f -name "*.*" -exec sed -i'' -e 's/class_loader.h>/class_loader.hpp>/g' {} +
vcs diff
There are some "class_loader.h"
instances also
This base_repos.yaml https://github.com/lucasw/ros_from_src/blob/robot_state_publisher/ubuntu_2204/base_repos.yaml has the right repos that will build in ubuntu 22.10
Do a
sudo do-release-upgrade
from a 22.04 system