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.