Kernel#system special-cases the first argument, so you have to
make the first argument the entire command to be invoked, and
subsequent arguments the actual arguments to that command. In
order to use the user's interpreter, the first argument must be
"/usr/bin/env <name>".
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
Running `brew cleanup` (with no arguments or multiple arguments) raises
an error and stops as soon as it finds any formula whose most recent
version is not installed.
With this change it will instead print a warning, then continue with the
next formula.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
Justification:
* LLVM is too immature, it often fails to compile, sometimes irreproducibly
* The performance of the resulting bytecode is often slower than the GCC
equivalent (eg MySQL)
If you want to continue using LLVM you can. Set HOMEBREW_USE_LLVM or brew with
--use-llvm.
We also now use the default compiler for each platform. So GCC 4.2 on Snow and
GCC 4.0 on Leopard. This also means that new formula are more likely to just
work as many over complicated build systems get upset when you mix things up.
I also did a bunch more new research regarding compiler flags. We now set the
right -march for nehalem procs and don't add redundant flags like msse3 (which
is automatically applied for all the -march settings we use).
Reducing the number of cflags will improve the overall reliability of our
platform.
The Cellar may not actually be "`brew --prefix`/Cellar".
We support the Cellar existing only in the repo but
not linked into the prefix, for installs that aren't
directly in /usr/local (or other chosen prefix.)
If you have a bunch of symlinks and they all point at one file and you use Pathname.install on them all the error checking would fail if the file was moved before the symlinks because the symlinks would then point at a non existent file.
Running `brew cleanup` (with no arguments or multiple arguments) will
run `brew prune` after _every_ cleaned formula, i.e. possibly after
every installed formula.
With this change it will instead only run `prune` after all formulae are
cleaned, and only when no arguments were given to `cleanup`.
Signed-off-by: Max Howell <max@methylblue.com>
ClosesHomebrew/homebrew#743
* Break single test case class into several test cases.
* Fix broken arch test.
* Make update tests optional (seem to only work for mxcl).
* Add more tests.
* Move fixtures to separate folder.
To existing flag value can be specified with "\\1".
To append values to a flag, call with:
s.change_make_var! "THE_FLAG", "\\1 more-flag-values"
The same trick can be used to prepend or surround values as well.
* Instantiate DownloadStrategy instance when creating a formula.
* Rename CurlDownloadStrategy member to clarify what it is for.
* Generate downloaded tarball name in initialize.
If the formula was updated and not yet installed, then cleanup would delete all kegs. Which is most likely not what the user wanted.
Ideally we'd do a version check to figure out which keg is newest. But we don't yet have a function that can determine with accuracy version order.
RubyCocoa is a large dependency, and any large system can cause unexpected errors. In this case the user's system was badly setup and RubyCocoa caused a dynamic loader issue.
We don't use beer_events currently due to other bugs that occurred sporadically with its use. So requiring it is unnecessary. So lets save ourselves trouble.
FixesHomebrew/homebrew#487
Since Homebrew's Library doesn't have to be linked under prefix,
we need to do some extra work in the bash completion script to
support this configuration.
Added a "--repository" option to brew, and updated the completion
script to use paths relative to this location.
CMake ignores the CPPFLAGS and LDFLAGS environment variables. This makes sure CMake finds libraries when homebrew is not installed at /usr/local.
Signed-off-by: Max Howell <max@methylblue.com>
FixesHomebrew/homebrew#242