For anyone else building ros2 from source on arch. There are missing includes in quite a few files (cstdint and stdexcept), which GCC 13.1.1 complains about. I have reported these upstream.
Edit: issue with sphinx has been resolved in 7.0.1
Git Clone URL: | https://aur.archlinux.org/ros2-humble.git (read-only, click to copy) |
---|---|
Package Base: | ros2-humble |
Description: | A set of software libraries and tools for building robot applications |
Upstream URL: | https://docs.ros.org/en/humble/ |
Licenses: | Apache |
Conflicts: | ros2-humble-base |
Provides: | ros2-humble-base |
Submitter: | m2-farzan |
Maintainer: | m2-farzan |
Last Packager: | m2-farzan |
Votes: | 6 |
Popularity: | 0.000690 |
First Submitted: | 2022-06-28 06:35 (UTC) |
Last Updated: | 2025-04-04 15:20 (UTC) |
For anyone else building ros2 from source on arch. There are missing includes in quite a few files (cstdint and stdexcept), which GCC 13.1.1 complains about. I have reported these upstream.
Edit: issue with sphinx has been resolved in 7.0.1
Fast-DDS is not building after gcc update
Missing free and exceptiongroup as dependencies or make dependencies.
==> Starting build()...
/startdir/PKGBUILD: line 51: free: command not found
RAM is smaller than 16 GB. Parallel build will be disabled for stability.
Attempted to remove disk file system under "/run/systemd/nspawn/propagate/makepkg", and we can't allow that.
Traceback (most recent call last):
==> ERROR: Build failed, check /mnt/extra-x86_64/makepkg/build
File "/usr/bin/colcon", line 33, in <module>
sys.exit(load_entry_point('colcon-core==0.12.1', 'console_scripts', 'colcon')())
File "/usr/bin/colcon", line 25, in importlib_load_entry_point
return next(matches).load()
File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
module = import_module(match.group('module'))
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/usr/lib/python3.10/site-packages/colcon_core/command.py", line 52, in <module>
from colcon_core.argument_parser import decorate_argument_parser # noqa: E402 E501 I100 I202
File "/usr/lib/python3.10/site-packages/colcon_core/argument_parser/__init__.py", line 9, in <module>
from colcon_core.plugin_system import instantiate_extensions
File "/usr/lib/python3.10/site-packages/colcon_core/plugin_system.py", line 7, in <module>
from colcon_core.entry_point import load_entry_points
File "/usr/lib/python3.10/site-packages/colcon_core/entry_point.py", line 12, in <module>
from pkg_resources import iter_entry_points
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3324, in <module>
def _initialize_master_working_set():
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3298, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3336, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 629, in _build_master
ws.require(__requires__)
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 966, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 827, in resolve
dist = self._resolve_dist(
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 868, in _resolve_dist
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'exceptiongroup>=1.0.0rc8; python_version < "3.11"' distribution was not found and is required by pytest
==> ERROR: A failure occurred in build().
https://github.com/arch4edu/cactus/actions/runs/4705369013/jobs/8345844213
I suggest adding ignition-math-6 and ignition-cmake-2 as dependencies, as the same are installed if not present in the system and can conflict with the standalone installation needed by gazebo-classic
git is missing from makedepends.
For unknown reasons, qt_gui_cpp and rqt_gui_cpp failed to built on my system. Following https://github.com/ros2/ros2/issues/1139#issuecomment-1008367494 I appended '--packages-ignore qt_gui_cpp rqt_gui_cpp' to the colcon build command towards the end of the PKGBUILD file yielding the following line: 'colcon build --merge-install --packages-ignore qt_gui_cpp rqt_gui_cpp ${COLCON_EXTRA_ARGS}'
I am trying to install this package on a Raspberry Pi 4 running manjaro minimal. I get the following error;
==> ERROR: sip is not available for the 'aarch64' architecture.
Please help
@moonaru I just fixed ros2-humble.install. Thanks for reporting the issue.
This package follows the official instructions for building from the source, so it builds and installs all the packages from these repos. The document doesn't specify whether or not the .repos file corresponds to a metapackage like ros-humble-desktop, but eyeballing REP-2001 shows that the desktop metapackage is a close-but-not-perfect match.
Anyway, one needs to understand that the Arch support is very limited compared to Ubuntu. So all the packages beyond ros-desktop need to be built manually. This notably includes xacro, navigation2, turtlebot-*, gazebo-ros, etc. Some packages (like xacro) are straightforward to build, but others (like navigation2) require some head-scratching. To help with this, I once attempted to create an additional fat package for AUR that installs common ROS 2 packages. The package is available here but I've stopped working on it. You can still use it to find out about some gotchas in the way.
Hello, I have a question again. We were able to install the full package by typing ros-humble-desktop in Ubuntu. Can we do this on Arch?
Info: Yes, it is indeed installed in /opt/ros. I'm misremembering somewhere. This information is also available on the official website.
You specified in the ros2-humble.install file as follows:
source /opt/ros2/humble/setup.bash
It should be like this:
source /opt/ros/humble/setup.bash
@moonaru We had users reporting that /opt/ros2/ can break some scripts that assume /opt/ros/ installation path. So starting from humble we reverted to /opt/ros/ to make it consistent with official packages in other distros.
Also, I'm not sure if other python versions/packages would necessarily interfere with this package but thanks for the heads-up.
Pinned Comments
m2-farzan commented on 2022-06-28 06:37 (UTC)
For feedback or contribution, either comment here or head to this GitHub page: https://github.com/m2-farzan/ros2-humble-PKGBUILD