646 Commits

Author SHA1 Message Date
Jack Nagel
5c799ef8c8 Don't attempt installation multiple times
When a dependency of a formula specified on the command-line is also
specified, *after* the dependent formula, installation proceeds as part
of the dependent's dependency tree and then is attempted again because
the user asked for it explicitly. This results in the installer raising
a CannotInstallFormulaError because it has already been installed.

For example:

  $ brew install graphviz pkg-config
  ==> Installing graphviz dependency: pkg-config
  ...
  ==> Installing graphviz
  ...
  Error: pkg-config-0.27.1 already installed

We already have a mechanism for dealing with this, but it does not kick
in early enough. Move the installation attempt check into
FormulaInstaller#check_install_sanity and catch the exception in the
appropriate places.

Fixes Homebrew/homebrew#16957.
2013-01-10 16:46:54 -06:00
Misty De Meo
05772f8ccf doctor: use -V for python version
`python --version` doesn't work in some (very) old versions of
python. While I doubt this is going to come up very often, it's
theoretically possible someone has an old python first in their
path. (python -V works on all versions I'm aware of, including
python3, and comes before --version in the --help anyway.)

Also skips the warning in case the regexp matches nothing, which
probably shouldn't happen. But if it does we shouldn't produce the
wrong warning.
2013-01-09 17:09:28 -06:00
Mike Lapinsky
1815e6caa1 Don't remove linked formulas when doing a 'cleanup'
Closes Homebrew/homebrew#16947.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2013-01-08 09:50:12 -08:00
Jack Nagel
e3068f631a Prune LinkedKegs relative to correct path
Fixes Homebrew/homebrew#16948.
2013-01-08 11:03:13 -06:00
Jack Nagel
967a60a054 Detect when tests are defined 2013-01-07 17:37:28 -06:00
Adam Vandenberg
30114c4c70 brew update: warn about adamv/homebrew-alt 2013-01-06 17:06:38 -08:00
Adam Vandenberg
4bcdb8aeb3 audit: remove silly audit, remove duplicate audit 2013-01-04 09:30:57 -08:00
Adam Vandenberg
a0d53f7bc1 audit: check conflict names 2013-01-03 11:22:31 -08:00
Mike McQuaid
755a2fbe52 Add caveats class and use in brew info.
Probably a better approach than reverted e721c7.

Fixes Homebrew/homebrew#16604.
2013-01-02 09:28:15 +00:00
Jack Nagel
9362a7c897 Respect BROWSER environment variable 2012-12-27 23:41:44 -06:00
Misty De Meo
1bce10ad6c Replace sceaga/homebrew with mistydemeo/tigerbrew
@sceaga has discontinued his homebrew fork, so tigerbrew is now PPC/
Tiger users' best bet.
2012-12-27 21:55:15 -04:00
Jack Nagel
d2d4813a07 doctor: add helper for printing file listings 2012-12-22 12:48:53 -06:00
Jack Nagel
4e9128aa6c doctor: f.prefix is already a pathname 2012-12-21 19:33:24 -06:00
Jack Nagel
2b47739822 doctor: print offending paths in check_for_gettext
c.f. Homebrew/homebrew#16688.
2012-12-21 18:03:24 -06:00
Jack Nagel
847547167a doctor: rename path_folders to paths 2012-12-21 17:16:57 -06:00
Jack Nagel
1780855023 doctor: use a more rubyish conditional 2012-12-21 17:14:01 -06:00
Jack Nagel
73a206a316 doctor: avoid pointless creation of pathname object 2012-12-21 17:12:00 -06:00
Jack Nagel
a64e9e542f doctor: run slowest checks last 2012-12-21 15:15:42 -06:00
Jack Nagel
1e51ccb30d cleanup: fix 1.8.6 compatibilty issue
Fixes Homebrew/homebrew#16655.
2012-12-19 12:00:25 -06:00
Charlie Sharpsteen
93dca5fb38 upgrade.rb: Generate Tab from Keg not Formula
Two issues were preventing `brew upgrade` from functioning properly:

  - `Tab.for_formula` was used to recover options from prior installs. The
    problem is that during an upgrade `for_formula` will be directed to a
    non-existant install of the newer version and thus returns a forged tab
    claiming no options were invoked.

  - The assignment to `installer.install_bottle` requires parenthesis in order
    to function properly.
2012-12-18 15:12:10 -08:00
Jack Nagel
3dcce70a6a Better reporting for MacPorts/Fink installations
closes Homebrew/homebrew#15853.
2012-12-17 17:18:22 -06:00
Jack Nagel
68d1dfe5d7 Revert "Add launchctl_instructions method"
This code makes assumptions about the existence of prefix which are
valid in the context of the installer, but not necessarily in the
context of `brew info`, thus `brew info` on an outdated formula errors
out.

This reverts commit e5b53dd64b769b67805d1054d906f7083939d905.
2012-12-16 19:56:15 -06:00
Lorenzo Manacorda
d23366ae9a Add launchctl_instructions method
Closes Homebrew/homebrew#16604.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2012-12-16 23:31:30 +00:00
Mike McQuaid
7ed19d4c62 Check if Cellar and Cache exist before cleaning. 2012-12-16 19:15:18 +00:00
Jack Nagel
5ce1caa1f3 Improve Xcode and CLT config reporting
We support three configurations: Xcode-only, CLT-only, and Xcode with
CLT. Our configuration output should correctly reflect this.

While MacOS::Xcode.version has to continue to return a guess if Xcode is
not installed in order to maintain backwards compatibility, this is an
implementation detail that we don't need to expose to the user. And it
makes `brew --config` output confusing.

So let's only print the "Xcode" line when an actual Xcode installation
is present. This makes it easy to quickly figure out which of the three
possible configurations the user is running.

Addresses Homebrew/homebrew#14941, more or less.
2012-12-12 23:33:29 -06:00
Jack Nagel
3589465297 doctor: don't check keg-onlies if cellar doesn't exist 2012-12-08 16:41:31 -06:00
Mislav Marohnić
aa7864c5ca proper version sort in outdated command
c.f. Homebrew/homebrew#16382.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-12-04 21:10:03 -06:00
Mislav Marohnić
004069b29e propert version sort in info command
Closes Homebrew/homebrew#16382.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-12-04 21:09:44 -06:00
Xiyue Deng
5d7940228e brew-cleanup: check whether keg is a directory.
* Avoid problem when encountering `.DS_Store' in Cellar.

Closes Homebrew/homebrew#16356.
Closes Homebrew/homebrew#16388.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2012-12-04 11:40:38 +00:00
Xiyue Deng
2a1ec18ff9 brew cleanup: don't remove higher version kegs.
* Use version compare to only remove kegs with lower version than the
  current one, not higher version which might be from someone's
  branch.
* Do the same for cache cleanup.
  - Be conservative so that if a name detected from cache file is not
    the same as its formula then don't clean it.

Closes Homebrew/homebrew#15914.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2012-11-30 21:37:56 +00:00
Mike McQuaid
ff356b6192 Whitelist 10.8.2 Supplemental Update static libs.
Fixes Homebrew/homebrew#16215.
2012-11-26 09:41:05 +00:00
Jack Nagel
6c4c37a01f bash completion for doctor checks 2012-11-13 16:49:43 -06:00
Jack Nagel
6b6e22ffae Don't advise XQuartz upgrades for system X11
Yeah, yeah. The XQuartz/X11 stuff is confusing.
2012-11-12 19:48:09 -06:00
Adam Vandenberg
5a140c0f45 exclude repository from brew list --unbrewed 2012-11-12 09:56:45 -08:00
Adam Vandenberg
847baa9e14 doctor checks XQuartz version
Closes Homebrew/homebrew#14182.
2012-11-11 12:33:50 -08:00
Adam Vandenberg
4b72e44461 Use a class for FORMULA_META_FILES
* lets more text types get picked up
* better filter for `brew list`
2012-11-11 10:27:03 -08:00
Adam Vandenberg
ff5f3f6b6d Exclude the cache from brew list --unbrewed
If you have relocated your HOMEBREW_CACHE under HOMEBREW_PREFIX,
then don't show these files as "unbrewed".
2012-11-10 11:26:47 -08:00
Jack Nagel
1cb59ea5fd Fix curlrc existence check
Enumerable#one? is not available under Ruby 1.8.6. Further, we really
want #any? here, as setting both HOME and CURL_HOME can trigger a false
negative.

Fixes Homebrew/homebrew#15883.
2012-11-06 19:02:02 -06:00
Jack Nagel
f8183d9510 Hoist top-level directory list into a constant 2012-11-06 12:32:09 -06:00
Charlie Sharpsteen
c92971f475 doctor: Remove fuse.pc from the whitelist
Having a third-party `fuse.pc` file will conflict with the `fuse4x` formula.
2012-11-03 15:44:51 -07:00
Adam Vandenberg
5e212a76e3 Error out on lowercase --head parameter to install.
Fixes Homebrew/homebrew#14815.
2012-11-01 08:08:40 -07:00
Charlie Sharpsteen
376fa59901 brew-update: Guard non-directory files in Taps
Skip any entries returned by `Dir["Library/Taps/*"].each` that are not
directories.
2012-10-28 12:34:43 -07:00
Max Howell
f6091b1c85 Specify where to get the CLT package 2012-10-28 10:52:07 -04:00
Stephen Nelson
e7a9f6eb89 Homebrew should not ignore curlrc
Added doctor check for .curlrc rather than silently ignoring it (#13836).

Closes Homebrew/homebrew#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.
2012-10-28 10:52:07 -04:00
Adam Vandenberg
babf25af1a doctor: check that Xcode prefix actually exists
Closes Homebrew/homebrew#14373.
2012-10-24 11:16:57 -07:00
Adam Vandenberg
e99ca2d59f Add relinking instructions.
Closes Homebrew/homebrew#15488.
2012-10-22 12:27:17 -07:00
Adam Vandenberg
b25740d61c audit: loosen ARGV check 2012-10-21 13:24:00 -07:00
Misty De Meo
447f78c0d2 brew ln --force is now brew ln --overwrite
* Renames --force to --overwrite, freeing up brew ln --force for Homebrew/homebrew#13349
* Changes --dry-run to preview linking by default, rather than
  overwriting. An overwrite dry-run can be simulated via both
  --dry-run --overwrite
* Adds some basic Keg tests
2012-10-20 21:00:46 -05:00
Christian Schlensker
a6003d08f6 pluralize the word 'Formula' in reports
Closes Homebrew/homebrew#15321.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2012-10-05 20:16:06 -07:00
Adam Vandenberg
d88158b9fe doctor: fix iconv dylib name 2012-10-03 12:41:20 -07:00