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

Revision history [back]

click to hide/show revision 1
initial version

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_homebrew

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/homebrew/brew-test-bot). I believe we (OSRF) are setting up a similar setup using jenkins on our build farms:

http://build.osrfoundation.org/view/SDFormat/job/sdformat-any-devel-homebrew-amd64/

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.