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

Packaging ROS with homebrew

asked 2014-02-17 23:58:36 -0600

demmeln gravatar image

updated 2014-07-08 04:16:26 -0600

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 flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
5

answered 2014-02-19 07:33:43 -0600

William gravatar image

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.

edit flag offensive delete link more

Comments

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

demmeln gravatar image demmeln  ( 2014-02-19 09:25:25 -0600 )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.

demmeln gravatar image demmeln  ( 2014-02-19 09:27:22 -0600 )edit

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

demmeln gravatar image demmeln  ( 2014-03-09 14:47:50 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2014-02-17 23:58:36 -0600

Seen: 664 times

Last updated: Jul 08 '14