* Use new "url" features
* Use keg_only DSL
* Use "skip_clean :all" DSL
* Whitespace and style cleanups
* Make bash invocations less silly
* Use new man2-man8 helpers
* Remove "FileUtils." since it is included in Formula
* Use real names for deps instead of aliases
* ENV.x11 now updates path, so remove that from individual brews
brewkit.rb changes ENV destructively, so lets not do that everytime a formula
is required. Now it's possible for other tools to require a formula
description without worrying about side-effects.
Well, I guessed keg_only would have issues.
Here, glib assumes GNU gettext will be in the same path as itself. Which would
be true if we symlinked gettext into the tree, but we don't to avoid conflicts
with the BSD version: /usr/lib/libgettext.dylib
We'll have to do this a lot, so I need to figure out how to automate it, or
how to avoid doing this kind of thing altogether.
Eg gettext gets added into LDFLAGS, INCLUDE and that. I hope I got everything
that is typical. Prolly not. But we'll find out.
Made readline keg_only because the BSD version is provided by OS X, and I
don't want bug reports that are tricky to solve due to unexpected differences
between the two.
Is it a DSL? No. But people call it that apparently.
To add a dependency:
class Doe <Formula
depends_on 'ray'
depends_on 'mee' => :optional
depends_on 'far' => :recommended
depends_on Sew.new
end
Sew would be a formula you have defined in this Formula file. This is useful,
eg. see Python's formula. Formula specified in this fashion cannot be linked
into the HOMEBREW_PREFIX, they are considered private libraries. This allows
you to create custom installations that are very specific to your formula.
More features to come, like specifying versions
GNU GetText breaks eg. Ruby 1.9 builds, and some other formula I have been building too. But it is required by eg. glib. So to solve this we are going to by default not symlink gettext into the Homebrew prefix.
Formula that depend on GetText will have the gettext paths added to the brewing environment automatically. Neat.
It compiles, but I am not sure this is safe frankly. The problem is that the OS X iconv is bugged and doesn't have a 64 bit symbol for libiconv_open.
Now we must build 64 bit as otherwise everything that links to iconv must be 32 bit too. So we build a static libiconv and link glib to that. This fills in the missing symbol.
However glib still dynamically links to /usr/lib/libiconv.dylib, this is the bit I'm not happy with. It can be fixed but I'm guessing it's ok. At least at this stage of Homebrew.