Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ubuntu 24.04 Noble Numbat ROS1 build #42

Open
lucasw opened this issue Apr 26, 2024 · 16 comments
Open

Ubuntu 24.04 Noble Numbat ROS1 build #42

lucasw opened this issue Apr 26, 2024 · 16 comments

Comments

@lucasw
Copy link
Owner

lucasw commented Apr 26, 2024

Upgrade 23.10 to 24.04

Follows #39

Wasn't able to apt upgrade at first

The following packages have been kept back:
  liblog4cxx-dev liblog4cxx15 libruby3.1 ruby3.1
sudo apt purge liblog4cxx-dev
sudo apt purge libaprutil1
sudo apt autoremove

That seemed to clear out the conflicts (by uninstalling most of the debian ros packages and others), now this is running

sudo do-release-upgrade -d  # update- don't do this, wait for it to work without -d

-> That didn't work too well, didn't have working audio and the networking seemed off- did a full fresh install instead and now looks to be fully working.

@lucasw
Copy link
Owner Author

lucasw commented Apr 27, 2024

It looks like a bunch of apt packages that were available earlier in 24.04 are now unavailable? The docker file fails the same as a desktop install. Maybe try again in a few days.

E: Package 'liborocos-bfl-dev' has no installation candidate

Follow these suggestions: https://askubuntu.com/questions/1493000/how-do-i-find-out-why-a-package-gpac-has-been-removed-from-ubuntu

For now build more things from source, update those instructions as needed.

Could build https://github.com/orocos/orocos-bayesian-filtering from source but skipping any package that uses it for now (people_tracking_filter)

touch ./other/people/people_tracking_filter/CATKIN_IGNORE

@lucasw
Copy link
Owner Author

lucasw commented Apr 28, 2024

Starting  >>> catkin_tools_prebuild                                                                                                                                                                                          
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________
Errors     << catkin_tools_prebuild:cmake /home/lucasw/ros/ros1/ros_from_src_2404_ws/logs/catkin_tools_prebuild/build.cmake.000.log                                                                                          
CMake Error at CMakeLists.txt:12 (message):
  The catkin CMake module was not found, but it is required to build a linked
  workspace.  To resolve this, please do one of the following, and try
  building again.

Try building catkin_tools manually

Need to replace distutils

sudo apt install python3-setuptools

https://setuptools.pypa.io/en/latest/deprecated/distutils-legacy.html

No it isn't catkin tools, it's regular catkin?

git clone [email protected]:ros/catkin

@lucasw
Copy link
Owner Author

lucasw commented Apr 29, 2024

Wasn't this working fine in 23.10- what's different now?

Errors     << vdb_mapping:cmake /home/lucasw/ros/ros1/ros_from_src_2404_ws/logs/vdb_mapping/build.cmake.002.log                                                                                                           
CMake Error at CMakeModules/FindTBB.cmake:270 (file):
  file failed to open for reading (No such file or directory):

    /usr/include/tbb/tbb_stddef.h
Call Stack (most recent call first):
  CMakeLists.txt:17 (find_package)

SteveMacenski/slam_toolbox#469

-> git rm CMakeModules/FindTBB.cmake (but need backwards compatibility)

@lucasw
Copy link
Owner Author

lucasw commented Apr 29, 2024

A built from source rospack doesn't work for anything except system installed packages, after building and source deve/setup.bash it can't find anything in workspace

rospack list
octomap /usr/share/octomap
osrf_pycommon /usr/share/osrf_pycommon
urdfdom /usr/share/urdfdom

Probably because devel/setup.bash isn't setting ROS_PACKAGE_PATH? rospack adds /usr/share itself lucasw/rospack@2ea310d

Where is ROS_PACKAGE_PATH appended to- are there files inside devel that do it (when they are functioning)


The above is for a devel build, try an install - nope no better


https://github.com/ros/ros_environment ? don't have this installed at all, probably should start over and install it from source following the older ros from src instructions.

@lucasw
Copy link
Owner Author

lucasw commented Apr 29, 2024

The rospack failure causes this to fail

Errors     << nmea_navsat_driver:make /home/lucasw/ros/ros1/ros_from_src_2404_ws/logs/nmea_navsat_driver/build.make.001.log                                                                                               
[rospack] Error: package 'catkin_virtualenv' not found
find: ‘’: No such file or directory
WARNING: cannot load logging configuration file, logging is disabled

Can skip for now by not enabling testing

catkin config -DCATKIN_ENABLE_TESTING=False

@lucasw
Copy link
Owner Author

lucasw commented Apr 30, 2024

https://launchpad.net/ubuntu/+source/ros-metapackages - no noble entries

https://tracker.debian.org/pkg/ros-metapackages

Migration status: Blocked. Can't migrate due to a non-migratable dependency. Check status below.
Blocked by: ros-rviz

This leads to https://tracker.debian.org/pkg/ros-ros-comm

Blocked by: boost1.83

That's the boost I have installed though

@lucasw
Copy link
Owner Author

lucasw commented Apr 30, 2024

Look around in recent versions of debian docker images, and make some Dockerfiles here for installing other ros packages

https://hub.docker.com/_/debian

Start with debian:trixie

# or bookworm
ARG IMAGE=debian:trixie
FROM ${IMAGE}
ARG IMAGE
RUN echo ${IMAGE}

ENV DEBIAN_FRONTEND="noninteractive"

RUN apt-get update -yqq
RUN apt-get upgrade -yqq

RUN apt-get update && apt-cache search ros-core-dev
RUN apt-get update && apt-cache search "Robot OS"

RUN apt-get install -yqq `apt-cache search "Robot OS" | awk '{print $1}' | xargs | sed 's/\n/ /g'`

bookworm has ros-core-dev, trixie doesn't

But roscore still works, other packages look reasonable (and as mentioned elsewhere libapriltags is a version that works with cmake).


double check right debian version:

cat /etc/os-release

@lucasw
Copy link
Owner Author

lucasw commented Apr 30, 2024

Current process to get base ros running using https://github.com/lucasw/ros_from_src/tree/ubuntu2404:

mkdir -p ~/ros/ros1/full_ros_from_src
cd ~/ros
git clone https://github.com/lucasw/ros_from_src --branch ubuntu2404
cd ~/ros/ros1/full_ros_from_src
~/ros/ros_from_src/git_clone.sh
~/ros/ros_from_src/build.sh
cd ~/ros/ros1/full_ros_from_src
source ~/ros/ros_from_src/env.sh
source catkin_ws/install/setup.bash

After that roscore, rostopic etc. will work


The latest changes break in python3.8, maybe create both site-packages and dist-packages or detect which is needed

+ ls -l '/home/runner/work/ros_from_src/ros_from_src/staging/ros/local/lib/python3.8/dist-packages//catkin_pkg*'
ls: cannot access '/home/runner/work/ros_from_src/ros_from_src/staging/ros/local/lib/python3.8/dist-packages//catkin_pkg*': No such file or directory

Next overlay the whole 2404 base_repos.yaml - some of them may be redundant but don't bother screen those out now

@lucasw
Copy link
Owner Author

lucasw commented May 1, 2024

Add these repos to the ros_from_src git_clone.sh

repositories:
  actionlib:
    type: git
    url: [email protected]:ros/actionlib.git
    version: noetic-devel
  angles:
    type: git
    url: [email protected]:ros/angles.git
    version: master
  bond_core:
    type: git
    url: [email protected]:ros-o/bond_core.git
    version: obese-devel
  geometry:
    type: git
    url: [email protected]:ros-o/geometry.git
    version: obese-devel
  interactive_markers:
    type: git
    url: [email protected]:ros-visualization/interactive_markers.git
    version: noetic-devel
  kdl_parser:
    type: git
    url: [email protected]:ros/kdl_parser.git
    version: noetic-devel
  nodelet_core:
    type: git
    url: [email protected]:ros/nodelet_core.git
    version: noetic-devel
  resource_retriever:
    type: git
    url: [email protected]:ros/resource_retriever.git
    version: kinetic-devel
  rosconsole_bridge:
    type: git
    url: [email protected]:ros/rosconsole_bridge.git
    version: kinetic-devel
  urdf:
    type: git
    url: [email protected]:ros/urdf.git
    version: melodic-devel

@lucasw
Copy link
Owner Author

lucasw commented May 2, 2024

Update git_clone.sh with ros-o repos, roscpp_core is the ros/ one

@lucasw
Copy link
Owner Author

lucasw commented May 4, 2024

https://discourse.ubuntu.com/t/changes-to-ros-debian-science-support-packages/44497

With the upcoming Ubuntu 24.04 LTS release, we’re adjusting our approach to the ROS Debian Science packages. Specifically, we will no longer include these packages in the Ubuntu Universe repository, starting with 24.04.

Looks like they are taking those packages out because some of them aren't compatible with the ROS2 binary installation.

@lucasw
Copy link
Owner Author

lucasw commented May 22, 2024

[E] [1716418271.777 /terrain/pcl_manager ...uginlib/./class_loader_imp.hpp:262]: Skipped loading plugin with error: XML Document '/home/lucasw/ros/ros1/install/overlay_2404_ws/install/share/test_nodelet_topic_tools/test/test_nodelets.xml' has no Root Element. This likely means the XML is malformed or missing..

Don't want to install these

touch src/was_in_apt/nodelet_core/test_nodelet_topic_tools/CATKIN_IGNORE
touch src/was_in_apt/nodelet_core/test_nodelet/CATKIN_IGNORE

@lucasw
Copy link
Owner Author

lucasw commented Jul 16, 2024

The action docker build is failing with

#23 2.888 Starting >>> build_type_condition                                              
#23 2.888 Starting >>> catkin_pkg_cmake_err                                              
#23 2.888 Starting >>> catkin_pkg_cmake_warn                                             
#23 2.888 [build 2.1 s] [1/132 complete] [4/4 jobs] [31 queued] [genmsg:loadenv - 0.0]   
[build 2.2 s] [1/132 complete] [4/4 jobs] [30 queued] [genmsg:cmake - 0.1] ... 
[build 2.3 s] [1/132 complete] [4/4 jobs] [28 queued] [genmsg:cmake - 0.2] ... 
[build 2.4 s] [1/132 complete] [4/4 jobs] [28 queued] [genmsg:cmake - 0.3] ... 
[build 2.5 s] [1/132 complete] [4/4 jobs] [28 queued] [genmsg:cmake - 0.4] ... 
[build 2.6 s] [1/132 complete] [4/4 jobs] [28 queued] [genmsg:cmake - 0.5] ... 
[build 2.7 s] [1/132 complete] [4/4 jobs] [28 queued] [genmsg:cmake - 0.6] ... 
Exception in callback _UnixReadPipeTransport._read_ready()
#23 3.546 handle: <Handle _UnixReadPipeTransport._read_ready()>
#23 3.546 Traceback (most recent call last):
#23 3.546   File "/usr/lib/python3.12/asyncio/events.py", line 88, in _run
#23 3.546     self._context.run(self._callback, *self._args)
#23 3.546   File "/usr/lib/python3.12/asyncio/unix_events.py", line 532, in _read_ready
#23 3.546     self._protocol.data_received(data)
#23 3.546   File "//ros/local/lib/python3.12/dist-packages/osrf_pycommon/process_utils/async_execute_process_asyncio/impl.py", line 109, in data_received
#23 3.546     protocol.on_stderr_received(data)
#23 3.546   File "//ros/local/lib/python3.12/dist-packages/catkin_tools/execution/io.py", line 256, in on_stderr_received
#23 3.546     self.log_file.write(data)
#23 3.546 ValueError: write to closed file
#23 3.556 Failed <<< build_type_condition                 [ 0.6 seconds ]                

Try locally again- did something get updated that is failing?

It fails locally also (still using docker build)

@lucasw
Copy link
Owner Author

lucasw commented Jul 17, 2024

resource_retriever isn't linking in curl properly:

/usr/bin/ld: /home/lucasw/ros/ros1/install/underlay_ws/install/lib/libresource_retriever.so: undefined reference to `curl_global_init'
/usr/bin/ld: /home/lucasw/ros/ros1/install/underlay_ws/install/lib/libresource_retriever.so: undefined reference to `curl_easy_cleanup'
/usr/bin/ld: /home/lucasw/ros/ros1/install/underlay_ws/install/lib/libresource_retriever.so: undefined reference to `curl_global_cleanup'
/usr/bin/ld: /home/lucasw/ros/ros1/install/underlay_ws/install/lib/libresource_retriever.so: undefined reference to `curl_easy_setopt'
/usr/bin/ld: /home/lucasw/ros/ros1/install/underlay_ws/install/lib/libresource_retriever.so: undefined reference to `curl_easy_perform'
/usr/bin/ld: /home/lucasw/ros/ros1/install/underlay_ws/install/lib/libresource_retriever.so: undefined reference to `curl_easy_init'
collect2: error: ld returned 1 exit status

->

use CURL::libcurl instead of ${CURL_LIBRARIES} in cmakelists.txt

https://github.com/lucasw/resource_retriever/tree/curl_lib

@lucasw
Copy link
Owner Author

lucasw commented Jul 18, 2024

rosfmt was downloading a binary instead of actually getting built? 👎

Removing it entirely, wasn't actually using it.

@lucasw
Copy link
Owner Author

lucasw commented Aug 20, 2024

Need to make jsk_rviz_plugins build in 24.04, some ogre calls need updating

-> already is fixed, but rebasing boost_placeholders on latest upstream master

✔️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant