ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

what is needed in order to add support for building archlinux packages from ROS packages automatically?

asked 2016-02-09 19:31:23 -0500

Matias gravatar image

ROS supports the generation of debian packages via the buildfarm. Currently ArchLinux supports ROS via the AUR, which means users need to compile (via archlinux's "makepkg" tool) packages themselves, instead of simply downloading binary packages as it happens for Ubuntu.

What would be needed in order to allow either officially or unofficially the generation of ArchLinux binary packages? I would be nice to at least be able to privately run a server with which binary archlinux packages could be created for ROS, using standard ROS tools.

At the moment, python scripts generating ArchLinux PKGBUILDs for ROS packages already exist, so maybe this could be added to existing tools, although I don't know where to start.

edit retag flag offensive close merge delete

Comments

Bloom is the tool used in the release process that generates the required debian directories and spec files. Adding another platform would require support at least there. In addition, the buildfarm would need to be updated to run the needed build tools.

gvdhoorn gravatar image gvdhoorn  ( 2016-02-10 01:28:03 -0500 )edit

@William and @tfoote can probably provide a much more in-depth answer on Bloom and the buildfarm respectively.

gvdhoorn gravatar image gvdhoorn  ( 2016-02-10 01:31:28 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2016-02-10 16:08:21 -0500

Dirk Thomas gravatar image

updated 2016-02-10 16:08:44 -0500

Support for automated building of binary packages for a different packaging system requires three things:

  • making all third-party dependencies which we use from Debian / Ubuntu available (e.g. PCL, gazebo, etc.)
  • update bloom to generate the necessary information for the packaging system (currently it supports Debians as well as RPMs)
  • update the ros_buildfarm to run the actual packaging jobs to produce the binary packages of your choice

I would not recommend doing the packaging by hand simply because it:

  • is a huge continuous effort and
  • will likely always suffer from being out-of-date since packages get updated frequently and there are just a lot of them
edit flag offensive delete link more

Comments

For the first point, dependencies are already met but packages need to be built from AUR (Arch User Repository). If the changes made to ros_buildfarm include retrieving and building this packages, would that be ok?

Matias gravatar image Matias  ( 2016-02-10 19:44:31 -0500 )edit

Also, if ros_buildfarm is extended for Arch support, would this mean that eventually an arch package repository would be available from which users would simply download packages? Or would this require a separate server?

Matias gravatar image Matias  ( 2016-02-10 19:45:25 -0500 )edit

The third-party packages are not built by the ROS build farm. They are already available in the official Debian / Ubuntu repositories. So there is no infrastructure to help building them for Arch. That should happen externally.

Dirk Thomas gravatar image Dirk Thomas  ( 2016-02-10 20:01:53 -0500 )edit

Yes, ros_buildfarm would drop the binary packages into an Arch repository (however that looks like). I guess the same server as for the Debian/Ubuntu apt repo can be used. The buildfarm_deployment repo is used to provision the server.

Dirk Thomas gravatar image Dirk Thomas  ( 2016-02-10 20:03:49 -0500 )edit

BTW There's a new tool for automating metadata generation for rosdistros supreflore: https://github.com/ros-infrastructure... It's being actively used for Gentoo and Open Embedded support is under development. It could relatively easily be extended to support Arch as well.

tfoote gravatar image tfoote  ( 2017-12-05 16:55:37 -0500 )edit
0

answered 2016-02-10 01:30:35 -0500

bchr gravatar image

Hi v01d,

So I'm the guy currently managing those Python scripts for Arch. I took a look at bloom a while ago, when Fedora support was being added. Most of the PKGBUILDs could be generated that way, it's been on my todo list for a long time. There were a few quirks, but then again I was not familiar with bloom at all, and Arch packages are quite different from their Debian counterpart.

Among the things that we could try to improve in the PKGBUILDs are the Python-related sed replaces that we need to do since Arch moved to Python 3 as its default Python years ago, and ROS is not entirely ready for Python 3 yet (or maybe for the next release?). As for the rest, things improved quite a lot w.r.t. multi-distribution support, but human interventions when APIs break are still required once in a while (e.g. the Gazebo 7 upgrade I made, but the related ROS packages did not release their changes yet).

Providing user-made binary packages is possible on Arch, but what's missing is a repository where I could push such packages. Also, ROS packages are not the only issue: their dependencies should be binary-released as well, and there's a bit of work there (*cough* PCL *cough*).

Since ROS answers may not be the best place for long discussions, feel free to join the Gitter chat associated with the project: https://github.com/bchretien/arch-ros...

edit flag offensive delete link more

Question Tools

Stats

Asked: 2016-02-09 19:31:23 -0500

Seen: 330 times

Last updated: Feb 10 '16