Java software tends to come with its own mini file layout including
bin, lib and other folders. The lib folder typically holds jars,
which can conflict between packages if linked into HOMEBREW_PREFIX/lib
and aren't needed to compile other .dylib based software anyway.
The recommendation for Java software is to install to "libexec" and then
symlink or wrap binaries from libexec/bin to bin in the Cellar.
Previously "brew cleanup" would complain if the most recent
version of a brew wasn't installed.
We now suppress this message if only one (outdated) formula is
present.
Treat the "lib/node" folder like Python, Perl, etc.
Create it as a real folder in HOMEBREW_PREFIX, so that
package managers (npm) have a stable place to drop libs.
Changes in this version include:
* Aliases are now defined by relative symlinks rather than in the
formulae themselves. Many commands are faster now that they don't
have to read every formula to find aliases.
* "url" now supports the same features as "head", including ":using"
and version specifiers for VCS systems.
* Files and methods marked for deprecation in 0.7 have been removed.
* The Formula DSL now supports "skip_clean :all" and "keg_only 'reason'"
Specifically, it can accept all the VCS tag specs that head could,
making it more useful for defining stable versions that come from
VCS instead of tarballs.
A new "SoftwareSpecification" class was added to implement this.
This new class holds a "spec" for downloading a software package.
It combines the url (or head url) with the "specs" [1] that head has
been able to take.
This allows both the stable (url) and unstable (head) specification
for a software package to co-exist without stomping on each others
"specs".
[1] "specs" contain instructions on which branch/tag/revision/etc. to use
from the source repository URL.
optparse adds an "options" method to ARGV, and so does Homebrew.
Rename this method (and remove optparse blocking script) so that
Homebrew plays nicer with external Ruby software.
This fixes the issue where "gem install thin" would break
"brew server", for instance.
'aka' is no longer used to define aliases, but we'll keep the method
around with a warning so non-master brews have a chance to remove any
aka's; otherwise pushing the change will break private brews and we
don't want to do that.