ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A answers.ros.org

# Packaging ROS with homebrew

Are there plans or have there been attempts to package ROS as homebrew formulas in a similar way to the debs on Ubuntu?

Edit: For future reference: With pointers from William a proof of concept has been created, but there are a few issues that need to be addressed: https://github.com/ros-infrastructure...

edit retag close merge delete

Sort by » oldest newest most voted

I have looked to do it for a long time now, but I have never had the time to setup everything. For now, all the time I can afford to spend on it is to keep it building from source on OS X.

From my perspective, the main challenges to getting this working are as follows:

• Generating Homebrew formulae for packages using bloom
• Setting up a CI system on OS X which has a clean starting point for each build
• Building bottles, pushing them to some storage (like download.ros.org/bottles), and updating the formula which uses the bottle

I think that generating Formulae for packages is the only sustainable way to approach this problem. There are nearly 800 packages in Hydro and 200+ in desktop-full. Packaging them by hand is error prone and unmaintainable. So coming up with a bloom generator for the formulae would be crucial. I started that work, but didn't get very far at all:

https://github.com/wjwwood/bloom_home...

The CI system for OS X has also been a challenge. I spent some time trying to setup a diskimage with COW for OS X which would behave like chroot/pbuilder for linux but ran into a lot of issues. The other thing I tried was using a VM and snapshots through a Python API, but that required Parallels which is not free and was slow. The Homebrew guys just clear /usr/local with git clean -fdx between builds for their "homebrew brewbot" system ( https://www.kickstarter.com/projects/... ). I believe we (OSRF) are setting up a similar setup using jenkins on our build farms:

http://build.osrfoundation.org/view/S...

If that is successful, I might try to use it for packaging ROS.

Finally, for bottle support (which would be awesome), we would need to also build each formula with the --build-bottle option, create the bottle, upload it somewhere (like download.ros.org/bottles) and then update the formula again, probably pushing the formula to https://github.com/ros/homebrew-hydro/.

So I have looked into it before, but as always progress on this is subject to my free time, which is in pretty low supply at the moment.

more

As always thanks for the comprehensive answer. At least the current state of affairs is out there now. I don't think I will manage to do it just now, but maybe me or otgera can work towards it in the future. I fully agree that automatic bottle creation is a must. I can wounder if we can get support

( 2014-02-19 09:25:25 -0500 )edit

from the homebrew guys for things like CI and bottle creation. However they might not be happy about 800+ incoming formulae. In any case publishing at least the core packages of a base install would be a gigantic leap for OSX support.

( 2014-02-19 09:27:22 -0500 )edit

Upstream ticket to track progress on this: https://github.com/ros-infrastructure/bloom/issues/254

( 2014-03-09 14:47:50 -0500 )edit