Who is using ROS on Archlinux?

It seems that a little momentum is starting to gather with ROS on Archlinux. There is not really a place for these people to connect so I’m starting a topic here since it’s a ROS centric thing.

Up to now the core project for maintaining Archlinux ROS packages has been https://github.com/bchretien/arch-ros-stacks. As part of supporting Kinetic there is an ongoing effort to get these on the buildfarm and if there are no issues with that, we need to figure out whether to continue to maintain AUR repos (the standard way to manage non-official Archlinux packages).

Please say hi if you are using ROS on Arch. Also take a peek at https://github.com/bchretien/arch-ros-stacks/issues/50 to see if you can contribute.

Myself, I’ve used Arch for a long time and deployed multi-robot systems and industrial robotics research platforms using it. I use ROS occasionally and touched the ROS AUR stuff here and there over the years. I’m not much involved in the current effort, but I feel that Arch is a much better platform for developing software and systems than Ubuntu and I’d like to see it continue to get more exposure.

1 Like

Hello,

I am also a user of ROS on Archlinux for a bit more than a year. But I use it only for my hobbies so not so regularly.
I am currently maintaining 193 packages for Indigo on AUR because they are packages that I were needed for some tests I have done.
The work made by Benjamin Chretien is amazing and allows us to easily add a package to AUR. But the updating process is a bit annoying so an automated build-system would be very nice.
I can help a little bit but I am following the Github issue from the beginning and there is nothing I can do to help for now (I am not a TU, neither I know anything about bloom and I do not have any web server).

So I am following the subject and if there is something I can do, do not hesitate to poke me!

Good luck.

Romain

Hi All,

Currently using ROS on ArchLinux as well. I am maintaining a few Indigo packages on the AUR (although they have stopped seeing some development) that are for the UAV side of things.

I am also following the talks on the arch-ros-stacks github page, but don’t quite have the skills for setting up any of the build farms. I am be able to take care of some more tedious work, if it helps out progress, even as an intermediate step to getting a full automated system up and running.

Let me know,
Kye

I’ve been using ROS on Arch Linux for some years now. I used to compile from the AUR, but when my colleagues also started using Arch Linux I started maintaining a repository with binary packages. I had to maintain my own copies of the PKGBUILDs since then, so I can bump the pkgrel when I have to do a rebuild (for example when boost updates). I also occasionally have to build a patched version of some packages for GCC 6 or python 3 compatibility.

I recently switched to Kinetic with python 3 (more or less), generating the PKGBUILDs with a modified version of the script from https://github.com/bchretien/arch-ros-stacks . The biggest change I made to the script was to remove the integration with the AUR, since I maintain a single repository with all the PKGBUILDs. Basically I only use the script to generate the PKGBUILDs and do all the git things manually.

As for an official ROS Arch Linux repository, rebuilding thing when certain dependencies update seem like the most problematic. However, I assume the ROS Ubuntu repository must have a system in place for dealing with this problem as well.

It looks like most of the automation already exists for converting package.xml metadata into the PKGBUILD files and that could be integrated into bloom. It was designed to support extensions to other platforms. From the original Ubuntu it’s already been extended to Debian and Fedora adding Arch could be done as well.

And yes we do have a lot of infrastructure on the ros_buildfarm for dependency tracking and rebuilding appropriately.

It would be great to add support for Arch to ros_buildfarm if anyone is interested in thinking about this I’d suggest starting a new thread at: Buildfarm - ROS Discourse

I had an attempt at adding Arch support to Bloom (https://github.com/gdlg/bloom).

The implementation does not fit very well with Arch Linux’s philosophy because I moved the sources into a subfolder alongside the PKGBUILD. Using a proper source URL would be difficult because the information is not available in git-bloom-release (unless we trust GIT remotes). Otherwise we could add the release url into the tracks.yaml

So far, to test it, I forked rosdistro (https://github.com/gdlg-rosarch/rosdistro) and the *-release repositories into https://github.com/gdlg-rosarch. I generated a new “rosarch” track for Arch which essentially duplicates the “kinetic” track and uses the last released version. I could maintain a script which detects new releases in the “kinetic” track and automatically releases new version for the “rosarch” track.

A few packages have missing dependencies but I successfully built and installed all the packages required by ros-kinetic-desktop-full.

I would be interested to add support to ros_buildfarm. Is it possible to add arch to the release process for Kinetic? Or would it have to wait for a new distro?

1 Like

@gdlg That’s great that you got things working for Arch with bloom! Maybe you could open a pull request to review your implementation and discuss potential changes to support the source URL you mention is a challenge.

It would be great to add support for Arch to the ros_buildfarm. Our policy is not to add new target distros to released rosdistros. But if this is working at the time we could consider turning it on when we start releasing for Lunar Loggerhead in a few months.

And in the mean time you should be able to test with a parallel deployment building Kinetic for Arch.

What’s the status of ROS on Archlinux? It’s listed as a supported distribution for Melodic and the install page even pops up the “donate cause we’re building these packages” notice, but the instructions specify the use of AUR packages (which are built locally) and some things are missing, such as MoveIt!.

Is Archlinux supported as an equal target platform to Ubuntu and Debian?

That looks like a recent contribution that got added in the wrong section. And the contribution/hosing notice looks to be left over from copying the Ubuntu instructions. I’ve cleaned up both.

Are the arch packages being maintained in the open? Are users able to help contribute? I’m using ROS melodic on Arch and need things like moveit! Would be happy to contribute where I can :slight_smile:

The Arch ROS packages used to be prepared using this repo: https://github.com/bchretien/arch-ros-stacks
It seems that recent releases still use these scripts but I am not sure if the up-to-date versions are publicly available.
Anyway, if you need some packages, the best solution should be to upload them yourself on AUR.

Thought I’d say hi, especially if there is still a desire to get some arch binaries building. I’ve been using Arch for ~10 years and ROS for ~1.5yrs. I love arch, but dual boot ubuntu for the binary convenience. I just went through the process of successfully building ros-meloic-desktop-full from AUR and moveit from scratch to get a working system (no more dual boot!).

In the process, I noticed a bunch of issues with AUR and reached out to the maintainer/submitter to see about collaborating. It came up in the process that one of them has been thinking about getting these built as well. Maybe this is a good time to revisit the discussion?

In particular, I think it would be good to have tangible steps of what needs to happen as that isn’t entirely clear to me (more about writing code, or architecting how to adopt ubuntu’s process to arch, getting access to existing build infrastructure, something else?)…

Conda could be a solution for cross-distro packaging!
I tried to start a own discussion on it, but hasn’t been approved yet.

Would you be open to explore this topic @jwhendy?

Basically it’s possible to distribute binary packages through the OS independent package manager conda. We’d need to come up with a way to translate / auto-translate debian recipes to conda recipes and it should be quite straight-forward to upload the existing ROS packages there.

Conda has a bunch of other nice features: real SAT solving for dependencies, and environment management.

I’d love to collaborate on this so let me know!

@wolfv I reached out to the maintainer and submitter listed on nearly all of AUR’s ros-melodic-foo packages and got a reply from one of them about collaborating. His input/preference was for Open Build Service. I haven’t used either, but at face value OBS is already used for a bunch of distributions and I’ve only heard of Conda for python (I think?). Not sure if you have input there.

Either way… I think the main point is it’s great to have another interested and willing collaborator, not which system we ultimately use :slight_smile: Feel free to follow along here: https://github.com/ros-on-arch

If you consider creating Conda package I would suggest not to start from Debian packages but actually extend bloom to generate such packages directly during the release process.

@dirk-thomas thanks for the pointer!

I have indeed been successful in building the first packages for conda “by hand” here: https://anaconda.org/RoboStack/repo

If installing ros_comm from this “channel” using conda on linux, one get’s a working ros environment. It works really nicely with the rest of the conda environment (e.g. activating a conda environment also activates the ROS environment thanks to a custom conda activation script etc.).

I’ll look into bloom to see in how far this can be automated (I hope 100% to be honest :slight_smile:

One difficulty is that conda-build doesn’t chroot the build and therefore there are a couple of leftover paths that need to be adjusted e.g. in the CMake …

Hello, I’m the new ROS Melodic Maintainer for the AUR and since the previous packager used this old scripts https://github.com/bchretien/arch-ros-stacks there were many things broken. I switched now to the official ROS releases and now ros-melodic-ros-base installs fine, only the known catkin python3 issues are left, so I’m know trying to find workarounds and package them, to make ros usable. After finishing this I’ll take of ros-melodic-desktop(-full), but you can also help me and @jwhendy , as the melodic packages now have a Github organization. I think conda has it’s own problems, I want a full integration, otherwise snappy would the better solution, but that’s a giant overhead and I don’t like the conda package manager itself. If everything works fine, the last goal is to provide binaries, either directly in the Arch Repos or via Open Build System.

Edit:
I solved the empy problem with copying the debian sid empy executable into /usr/local/bin, and now stuck with a catkin issue.

Edit: Problem is solved, catkin now works perfectly with python3, when specify the Python version in cmake. I won’t support python2 anymore, but if you install the py2 equivalents, it should work, too.

1 Like

Hi @bionade24, I am back on using ROS on Arch and I am glad that I have managed to install ros-melodic-ros-base without any issue.

So first, thank you and congratulations for taking the maintenance of Melodic on Arch!

I also want to understand how do you manage all the repos on the GitHub organization? Do you still use a set of scripts derived from bchretien’s ones? Are they available somewhere?

If I want a new package (ros-melodic-ackermann-msgs for example), what is the recommended way to add it?

On the other hand what is the status of the efforts to add Arch support to bloom or superflore?

And by the way, what would be better, bloom or superflore?

Thank you.

I run Manjaro and my ultimate solution was to just chroot into an Ubuntu installation to run my stuff. It’s not ideal but it works and keeps parity with the tooling used at my job.

Edit: I may have misunderstood this thread’s intent … Apologies for that

@safijari This looks like a another solution. Do you manage to use GUI application also in the chroot?

Actually, I have set up a systemd-nspaw container based on Ubuntu to run ROS but I have decided to give the Arch AUR version a try and it happens to work!

Does anyone also tried the container approach? Maybe the chroot is simpler and easier because the container may add some protections and make the life a bit harder?