hgomez/obuildfactory — pull request #11 by gagern (2013-03-27 11:35:07+00:00)
Title: Improvements for building JDK 7 on OS X

# Script changes and patches

I've just built JDK 7 on OS X in order to work around an annoying bug in OS X itself. In the process, I've done a number of improvements to the build scripts, which might be of interest to others as well. Feel free to pull as many of these as you want, preferrably all.

The changes in detail:

1. Use `set -e` in shell scripts to exit on error.
1. Some small style improvements.
1. Support for quilt if available.
1. Getting rid of ruby as a dependency.
1. Fix the bug that initially got me started on this.

# Wiki changes

I also encountered [some issues](https://github.com/gagern/obuildfactory/wiki/Troubleshooting-OSX) along the way due to misconfigurations of my build environment: I had tools from Fink and sometimes Gentoo on my path which sometimes behaved different from those native to OS X. I documented these issues on [my copy of the wiki](https://github.com/gagern/obuildfactory/wiki). So please consider [pulling those changes](https://github.com/gagern/obuildfactory/wiki/_access) into the official wiki as well. Unfortunately, I [can't create a proper pull request for wiki content](https://github.com/gollum/gollum/issues/265).

So far, I simply edited my copy of the wiki to [suggest changes to the `PATH`](https://github.com/gagern/obuildfactory/wiki/Building-and-Packaging-OpenJDK7-for-OSX#resetting-the-path) which should avoid such issues in the future. One might even make these changes in the scripts themselves. `build.sh` or `jenkins-job.sh` seem like good places to include

export PATH="/usr/bin:/bin:/usr/sbin:/sbin:$PATH"

which should get rid of the issues even without actions taken by the user. If you do this, then the corresponding section which suggests the manual `PATH` change can of course be removed again.

If you pull the patch which gets rid of ruby, then the section in the wiki that states the ruby dependency should be removed as well.

# Other JDK versions

So far I've only built JDK 7, and as I don't feel like committing untested changes, I've left the other build scripts alone. But many of my changes might be applicable to those other builds as well. I can't promise when I'll find the time to actually build JDK 8 on my system. When and if I do, I'll port the changes to JDK 8 as well. Or I'll try to factor common code into a single script file, so that maintaining this will become easier. What do you think?