2122 Commits

Author SHA1 Message Date
Max Howell
8fd2778a95 Allow dependencies to still install
Oops bug.
2012-03-07 13:48:04 +00:00
Max Howell
d830e17a12 Protect against unwritable cache location 2012-03-07 12:51:02 +00:00
Max Howell
6988a75b84 Don't allow sudo brew upgrade if not sensible 2012-03-07 12:50:15 +00:00
Max Howell
a13ff43886 Don't abort upgrade if one formula won't build
Also, unlink previous keg before installing to prevent issues when existing installed brews cause build problems for the newer installed brew.

If the build fails the active keg is relinked before aborting.

Fixes #10341.
2012-03-07 12:34:40 +00:00
Max Howell
76aa0a62f3 Stop supporting `brew install --force'
Rationale: it breaks stuff. You should not be able to install over something already installed *and* linked. brew now prompts you to unlink the existing linked keg first.

I came to fix this because I discovered that `brew install foo` works without --force provided foo's formula version is different to that which is installed and linked. I'm not sure if this was intentionally broken, but it led to at least two tickets I found where people were getting crazy issues trying to install over the top of already installed previous versions.

So I also fixed a whole category of other issues, mostly by moving error handling into FormulaInstaller. Now error's can be caught in Homebrew.install and handled on a formula-by-formula basis. I will next port this behaviour to upgrade.
2012-03-07 12:33:47 +00:00
Max Howell
15a70c36d0 Move brew output for BuildError into BuildError
So upgrade can output errors but continue to upgrade the rest of the installation.
2012-03-07 12:33:47 +00:00
Max Howell
735b6337a1 If multiple kegs, default to formula keg
If it exists, ARGV.kegs will return the Formula.prefix keg for each rack examined.

So for ARGV=[wget, foo] and the following Cellar (wget/1.11, wget/1.12, foo/1.0) you'll get [wget/1.12, foo/1.0] from ARGV.kegs provided 1.12 is the formula version of wget.
2012-03-07 12:33:47 +00:00
Jack Nagel
67c3f1b2b4 Extend FileUtils rather than include it
Fixes Homebrew/homebrew#10729.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-06 19:23:51 -06:00
Max Howell
158efd8c9a brew cleanup cleans up the download-cache
Manpage updated.

The -s switch is "scrub" and removes downloads for uninstall formula which are downloads for the latest version of that formula still.

Please NOTE cache is NOT cleaned if a formula argument is provided. I couldn't be bothered. Patches welcome :)

Closes Homebrew/homebrew#2923.
2012-03-06 20:28:06 +00:00
Max Howell
1b4b8a722e Pathname.stem knows about bottles 2012-03-06 20:28:06 +00:00
Max Howell
b63ec18564 Proper single character switch handling
Includes a test. So now you can do `brew cleanup -ns` and it will work.
2012-03-06 20:28:06 +00:00
Max Howell
9c5ddb5721 The doctor checks if you need to brew update
Well at least it checks to see if it's been a while since the last one.
2012-03-06 20:28:05 +00:00
Jonathan Hitchcock
de30a7844f 'brew doctor' provides bad example command
If there are multiple dependencies missing, 'brew doctor' can suggest
that you run something like:

  brew install autoconf libyaml autoconf, libyaml

This commit improves that output.

Closes Homebrew/homebrew#10720.

Signed-off-by: Max Howell <max@methylblue.com>
2012-03-06 15:38:33 +00:00
Adam Vandenberg
cc78050dc5 add which method 2012-03-06 06:53:06 -08:00
Max Howell
6868bf0d6e Don't require formula files for brew rm --force
In fixing this I also made it so that ARGV.kegs will return the LinkedKeg if the symlink is set. Which is almost always is. This neatly avoids most multiple-kegs issues.

Fixes Homebrew/homebrew#10685.
2012-03-06 13:47:31 +00:00
Max Howell
7ddaaf9bb0 Doctor check for python is Python-3
Refs Homebrew/homebrew#9541.
2012-03-06 12:20:02 +00:00
Jack Nagel
ed5f7dfbaa Require specialties at the end of formula.rb
classes in formula_specialties.rb need Formula, so it has to be last.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-06 00:28:50 -06:00
Adam Vandenberg
962f4fa9ef Move llvm method to FailsWithLLVM 2012-03-05 21:14:48 -08:00
Adam Vandenberg
fca0a66649 shrink 2012-03-05 21:14:39 -08:00
Adam Vandenberg
ee5193e3e8 invert condition 2012-03-05 21:14:39 -08:00
Adam Vandenberg
09d23d91ef Move AmazonWebServicesFormula to formula_specialties
Enough formulae in core depend on this, pull it in here.
When multi-repo support lands, perhaps we could set up Homebrew-AWS.
2012-03-05 21:14:39 -08:00
Adam Vandenberg
6af1aae50b Move specialized formulae base classes into a new file 2012-03-05 21:14:39 -08:00
Adam Vandenberg
1b372d7840 Move path utils out of formula.rb
Make a new module for our FileUtils extensions and use that instead.
2012-03-05 21:14:39 -08:00
Jack Nagel
19a0aa51a1 Adjust updater tests for git config calls
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-05 12:35:55 -06:00
Jack Nagel
01994c7be1 keg: allow selective linking at the file level
Some parts of a keg's tree are not subject to the cleaner, and sometimes
we still want to remove things in directories marked skip_clean; this
allows us that freedom.

If 'lib' is marked skip_clean, we still want to avoid linking the
charset.alias file into the top of the tree. The same needs to be done
for the locale.alias file in share/locale.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-04 23:56:22 -06:00
Max Howell
f7d7fb1e81 Don't allow brew link to be run as sudo 2012-03-04 02:47:53 +00:00
Nicolas Despres
6898eadcc5 brew-man: only exit 1 when an error occurs
Because of "set -e" in non verbose mode brew man had an exit status
equals to 1 whereas there was no error.  The reason was that the "test"
command failed.  This patch fix this.

Closes Homebrew/homebrew#10664.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-03 14:25:45 -06:00
Jack Nagel
28d6a0f4de update: disable git line ending conversion
If a user has set core.autocrlf = true (which shouldn't ever be used on
OS X, but alas...), a subsequent `brew update` will check out files with
CRLF line endings. Setting core.autocrlf = false in Homebrew's repo
config will override this global setting, and let us check out files
with their in-repository line endings.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-02 18:37:48 -06:00
Jack Nagel
caa3c4f864 doctor: make git status check saner
The order of things made the check for git in the path pointless (and
was my fault); this is a better way to do it.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-01 23:29:14 -06:00
Jack Nagel
2d5de8c7ed doctor: s/folder/directory/
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-01 22:55:33 -06:00
Jack Nagel
79d1c2396a audit: check for gfotran in Formula#deps instead
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-01 19:56:09 -06:00
Jack Nagel
7f39c999a6 Don't duplicate missing deps in brew doctor
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-01 19:48:37 -06:00
Max Howell
bfa537d5fa Clearer brew doctor output for brew missing
It was confusing that it told you to brew install missing deps and then listed formula that were already installed IMO.
2012-03-02 01:21:55 +00:00
Max Howell
9772e08033 Specify current Xcode to aid issue-diagnosis
I saw a ticket with just doctor output and no `brew --config`. This helps.
2012-03-02 01:06:16 +00:00
Max Howell
7cedf67680 Scupper sourceable output if brew install is piped
`brew install > file` should not give "export CC=/foo" output on Build Failures.

Also moved the "Using clang" output to brew when BuildError is thrown as that is where it is interesting, and not if you just do `brew --env`.
2012-03-02 00:59:39 +00:00
Jack Nagel
d9fdd401da missing: adjust to new ARGV.formulae behavior
Since 25aefdd ("don't complain if args are empty"), ARGV.formulae does
not raise an exception; `brew missing` was relying on that to determine
what set of formulae to act on. Fix this, and also a typo.

Fixes Homebrew/homebrew#10617.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-03-01 18:04:41 -06:00
Giovanni Bajo
e0eb98c84c Fix xcode check variable name.
Closes Homebrew/homebrew#10624.

Signed-off-by: Max Howell <max@methylblue.com>
2012-03-01 21:59:21 +00:00
Rob Olson
d23b8dc5d3 Fix typo: '/Application' -> '/Applications'
Closes Homebrew/homebrew#10626.

Signed-off-by: Max Howell <max@methylblue.com>
2012-03-01 21:57:58 +00:00
Max Howell
2a559110c2 Don't warn about missing Xcode twice 2012-03-01 17:01:17 +00:00
Max Howell
c21ffc4139 Fix /usr/bin:/usr/local/bin PATH order check 2012-03-01 16:59:18 +00:00
Max Howell
ba9b1f918d The doctor suggests upgrading Xcode
Closes Homebrew/homebrew#9199.
2012-03-01 16:57:14 +00:00
Max Howell
918f2a1f3a Faster and more legible brew doctor
Please check for regressions. I was careful, but there was a lot of stuff.

Closes Homebrew/homebrew#9409.
2012-03-01 16:33:21 +00:00
Max Howell
a77c11ceea Piped brew --env outputs in a sourceable format
So you can source `brew --env` to make it easier to build your own software, etc.
2012-03-01 14:07:40 +00:00
Max Howell
b6a5b3f3a3 Assist more in the template from brew create 2012-03-01 13:25:10 +00:00
Max Howell
abe0be8a2e Show doctor error if xcode-select path is invalid
Fixes Homebrew/homebrew#10598.

Ideally we would show a message for builds that use xcodebuild etc. But there is no easy mechanism for this in place.
2012-03-01 10:19:55 +00:00
Adam Vandenberg
e6f8f16183 Formula.rb: update a comment 2012-02-29 21:45:47 -08:00
Adam Vandenberg
d22eed3f16 Add support for Luarocks dependencies. 2012-02-29 20:52:20 -08:00
Max Howell
85e05b27dd Some additional aid for brew create 2012-02-29 02:03:26 +00:00
Max Howell
fb9b263bc3 Play nice with case-sensitive filesystems 2012-02-29 01:28:23 +00:00
Max Howell
11953cbcb9 Remove empty directories during uninstall
About time we did this right?
2012-02-29 01:23:49 +00:00