4116 Commits

Author SHA1 Message Date
Jack Nagel
109145bf21 Replace usages of recursive_deps with recursive_dependencies 2013-01-26 12:14:49 -06:00
Jack Nagel
82051a56ec upgrade: offload dependency expansion to FormulaInstaller
Now that FormulaInstaller does dependency expansion the _right_ way,
avoid duplicating the logic in upgrade. Instead, offload it to the
installer, which will generate an exception in check_install_sanity that
we can safely ignore when formulae in the outdated list are upgraded as
part of the dependency tree of another outdated formula.
2013-01-26 12:14:49 -06:00
Jack Nagel
18836d93d8 uses: utilize modern dependency API 2013-01-26 12:14:49 -06:00
Jack Nagel
fe802f05ef missing: ignore unused optional and recommended deps 2013-01-26 12:14:48 -06:00
Jack Nagel
951872c4be FormulaInstaller: don't install bottle if options were passed 2013-01-26 12:14:46 -06:00
Jack Nagel
5822aa80cf FormulaInstaller: make tab an attr, but never a parameter 2013-01-26 12:14:46 -06:00
Jack Nagel
37a56fa513 FormulaInstaller: implement installation locks
FormulaInstaller now attempts to take a lock on a "foo.brewing" file for
the formula and all of its dependencies before attempting installation.

The lock is an advisory lock implemented using flock(), and as such it
only locks out other processes that attempt to take the lock. It also
means that it is never necessary to manually remove the lock file,
because the lock is not enforced by I/O.

The uninstall, link, and unlink commands all learn to respect this lock
as well, so that the installation cannot be corrupted by a concurrent
Homebrew process, and keg operations cannot occur simultaneously.
2013-01-26 12:14:45 -06:00
Mike McQuaid
ff4baa3fcc brew-cleanup: don't whine about permission denied.
Closes Homebrew/homebrew#14359.
2013-01-26 14:11:06 +00:00
Mike McQuaid
239217e944 brew-fetch: remove MD5 output. 2013-01-26 12:48:00 +00:00
Adam Vandenberg
2c6a7bdca8 Check ownership of logs folder
Closes Homebrew/homebrew#16607.
2013-01-23 20:12:55 -08:00
Samuel John
04d22a88b1 brew search looks in samueljohn/python, too.
Closes Homebrew/homebrew#17267.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2013-01-23 19:53:46 -08:00
Adam Vandenberg
05eb740766 Add Homebrew-completions to search 2013-01-23 19:53:06 -08:00
Matt Di Pasquale
e9158ca6dc brew upgrade: improve exit codes.
exit 1 if formulae given but none outdated

Closes Homebrew/homebrew#17199.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2013-01-21 19:55:09 +00:00
Jack Nagel
6b59e610f0 doctor: loosen git origin regexp
If the repository is set up by `brew update`, the remote URL is
https://github.com/mxcl/homebrew.git, but if it is set up by the install
script, the .git suffix is omitted.
2013-01-17 21:46:02 -06:00
Simon Sigurdhsson
8000fb807f Doctor check for origin
Added checks on doctor.rb for:

* Missing git origin
* git origin not pointing at mxcl/homebrew

Tests use `git config --get remote.origin.url`.
Also added printout of origin to --config.rb.

Fixes Homebrew/homebrew#14399.
Closes Homebrew/homebrew#17117.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-01-17 17:18:15 -06:00
Jack Nagel
3c04d14cc9 options: sort options consistently 2013-01-14 15:08:13 -06:00
Jack Nagel
adf80ba0a8 info: sort conflicts consistently 2013-01-14 14:57:50 -06:00
Jack Nagel
870f095c69 Restore keg-only caveats
Fixes Homebrew/homebrew#16989.
2013-01-14 14:57:42 -06:00
Chad Catlett
2a4a3c3a95 Fix uses cmd
Fixes Homebrew/homebrew#17074.
Closes Homebrew/homebrew#17075.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2013-01-14 06:44:53 -08:00
Jack Nagel
e629f14d56 Remove <=> from Dependency interface
It is important that dep equality corresponds to the name attribute, but
we may want to use the Comparable interface to sort them by installation
order in the future. Code that needs to sort them alphabetically should
just use sort_by.
2013-01-13 21:01:15 -06:00
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