Latest Xcode is 4.5.1
Add relinking instructions.

Closes #15488.
Fix Keg tests

* unreverse expected/actuals
* don't assume linked file order is guaranteed - it wasn't!
Make --ignore-dependencies work again
Cleaner: add (commented-out) debugging information for permission changes

The cleaning step changes permissions on files. Added a commented-out block
that will show permission changes when doing verbose builds.

Since this output is not generally useful for even normal verbose builds,
added as commented-out code (I'm sorry) so that maintainers can uncomment
it when this functionality is needed for debugging.
doctor: check that Xcode prefix actually exists

Closes #14373.
Return the block value in ARGV.filter_for_dependencies

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
FormulaInstaller: disambiguate show_header usage

show_header should default to false (we don't want to display it in the
case of installing a single formula without dependencies), but it only
worked this way by accident.

The assignment "show_header = true" creates a local variable named
show_header, and in the case where needed_deps is empty and this
assignment is not actually executed, the latter usage evaluates the
local variable instead of calling the method.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Move requirement subclasses to a separate file

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Allow requirements to record tags

To allow

  depends_on :x11 => :optional

and friends to work as expected, make requirements record any tags and
add special handling to the X11Dependency to record both a minimum
version and additional tags.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
test_cleaner: add missing require

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
ComparableSet#merge returns self

Set#merge is supposed to return self, and Formula#recursive_requirements
depended on this being true.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
tests: define assert_empty for Ruby <= 1.8

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Pathname: add exec and jar helpers

Closes #13318.
Use cc -E, not cpp -E. Fixes #15402.
Homebrew should not ignore curlrc

Added doctor check for .curlrc rather than silently ignoring it (#13836).

Closes #15419.

Signed-off-by: Max Howell <mxcl@me.com>

Removed test in doctor where it actually curl'd a file. It's enough to warn if the curlrc exists. I understand people want to remove the warnings, but the point in the doctor is to help diagnose and not to be some ramification of your UNIX system.
Specify where to get the CLT package
debrew: formula debugging for homebrew

A new feature for easing the pain of working with complex formulas, or
formulas for large packages. When running brew in debug mode (-d), if an
exception propagates outside the formula's install method, you now get a menu
which lets you return to the point where the exception was raised and perfom
several useful actions, such as:
- printing a backtrace
- entering IRB to examine the context and test ruby code
- entering the debugger (if ruby-debug is available)
- entering a shell
- ignoring the exception or proceeding with the raise as normal

Signed-off-by: Max Howell <mxcl@me.com>

* Fixed conflict in build.rb.
* Removed old debug handling in Formula.brew.

Closes #10435.
formula: shorten path helpers
brew-update: Guard non-directory files in Taps

Skip any entries returned by `Dir["Library/Taps/*"].each` that are not
directories.