4632 Commits

Author SHA1 Message Date
Max Howell
28bbced64b brew tap --repair
Removes dead symlinks in Formula and re-symlinks all Taps.

Closes Homebrew/homebrew#11565.
2012-08-04 15:11:47 -04:00
Max Howell
e8c9a19f65 Tap users can have dashes, adjust regex
Repos can't at this point. Hard to easily fix so avoiding it until 2.0 or until someone moans enough.
2012-08-04 15:11:47 -04:00
Max Howell
e8776194ac REPOSITORY not PREFIX when checking for the .git 2012-08-02 10:20:22 -04:00
Max Howell
ea6bfb66a1 Error handling for individual taps
Possibly would help diagnose: Homebrew/homebrew#13853.
2012-08-01 16:19:25 -04:00
Max Howell
b51fe22413 Warn user not to edit before first update
Because, if you do, your changes will be lost.
2012-08-01 15:59:30 -04:00
Jack Nagel
148617bc11 Move X11 machinery into MacOS::XQuartz namespace
In order to better support Xcode-only systems, where X11 libs and
executables live under /usr/X11 but headers live in the SDK, move the
x11_* helper methods into a new module.

This allows us to keep some of the CLT/Xcode-only and Apple X11/XQuartz
logic hidden from outside code, like ENV.x11.

Since Apple's X11 is actually XQuartz, name the module "MacOS::XQuartz".
2012-08-01 00:31:38 -05:00
Max Howell
d5f2cdd31c Deprecate adamv/alt from brew search
Add brew/science.
2012-07-30 13:24:53 -04:00
Misty De Meo
0c237a8679 Add conflicts_with DSL method
conflicts_with is a thin wrapper around Requirement which simplifies
marking conflicts between formulae.

Closes Homebrew/homebrew#13687.

Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2012-07-30 13:47:12 -03:00
Charlie Sharpsteen
524190f109 brew-audit: Warn against depending on MPI
Depending on `open-mpi` or `mpich2` will cause problems since both formulae
install components with the same names. `brew audit` now recommends using
MPIDependency.

Signed-off-by: Charlie Sharpsteen <source@sharpsteen.net>
2012-07-28 09:12:44 -07:00
Mike McQuaid
450dcf75dc Fix brew doctor warnings and spurious newline.
Fixes the problems discussed in 34c970 to ensure that `brew doctor`
does not look like it is broken on user setup problems but still
returns a sensible exit code for e.g. BrewBot.
2012-07-25 22:54:44 +01:00
Jack Nagel
74839417ea Rename xctools_fucked?
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-25 12:04:42 -05:00
Jack Nagel
4eeb0e6441 Use new Xcode module
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-25 12:04:41 -05:00
Jack Nagel
62482504a9 Split Xcode and CLT methods into separate modules
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-25 11:58:01 -05:00
Adam Vandenberg
fd7cf8f293 doctor: be consistent in path advice 2012-07-24 12:28:02 -07:00
Adam Vandenberg
5de94e48bd doctor: check for DYLD_FALLBACK_LIBRARY_PATH 2012-07-23 16:08:05 -07:00
Misty De Meo
a8a16928e4 doctor: Skip outdated check when offline
Fixes Homebrew/homebrew#13535.
2012-07-22 12:57:03 -05:00
Misty De Meo
17953f2b83 Keg#unlink: check destination before unlinking
Rather than skip unlinking if there's no linked keg record, check to
see whether the destination's realpath is the same as the source file
in the keg being unlinked.
2012-07-22 10:58:19 -05:00
Misty De Meo
4c38d15110 brew unlink: don't unlink an unlinked formula
This caused weird issues in the case that multiple formulae provide
the same file.
2012-07-20 11:00:48 -05:00
Misty De Meo
3696180fd7 Update Xcode checks for 10.8 2012-07-12 14:34:00 -05:00
Jack Nagel
bb2e67f37e doctor: fix incorrect usage of 'or'
Eventually I will stop making this mistake.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-12 03:01:28 -05:00
Adam Vandenberg
1b37ed4269 use keg.linked? 2012-07-11 20:13:46 -07:00
Misty De Meo
f17429f842 ARGV: add .dry_run? method
Add an ARGV.dry_run? helper method for '--dry-run'/'-n' now that
'-n' is being used as a git-style dry-run in two commands.

Closes Homebrew/homebrew#12898.

Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2012-07-09 12:01:09 -05:00
Misty De Meo
743b5e6feb link: add --force and --dry-run options
`brew link` can now be made to delete any conflicting files using
the --force argument. It also has a --dry-run option, similar to
git clean -n, which will list any files which would be deleted
without touching the filesystem.

Closes Homebrew/homebrew#11811.

Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2012-07-09 12:01:09 -05:00
Jack Nagel
a8c05c9772 Restore some things to failed install config dump
Closes Homebrew/homebrew#11091.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-08 12:27:19 -05:00
Jack Nagel
1478615429 Display compiler build numbers in config dump
But only display them if they are out of sync with the corresponding
Xcode version.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-08 12:26:10 -05:00
Jack Nagel
63d77ac6de Always output X11 version and path in config dump
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-08 12:16:53 -05:00
Jack Nagel
75a60e5104 fetch: remove dead code
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-08 10:47:57 -05:00
Adam Vandenberg
126b1c77e3 doctor: update xcode chceck
* 4.3.3 is the latest on 10.7
* Give up if we don't know what the latest is (10.8 and beyond)
2012-07-07 11:59:01 -07:00
Jack Nagel
c235395fd7 Give SoftwareSpec an initializer
Tools like `brew create` need to create and manipulate SoftwareSpec
objects. It is useful to be able to do this directly, rather than by
proxy through the special methods that serve the main formula DSL.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-04 22:47:35 -05:00
Jack Nagel
56fe164e95 Teach download strategies to take a SoftwareSpec
Now that a URL, version, and the (for lack of a better term) "specs"
associated with said URL (e.g. the VCS revision, or a download strategy
hint) are neatly bundled up in a SoftwareSpec object, it doesn't make
sense to pass them individually to download strategy constructors. These
constructors now take only the formula name and a SoftwareSpec as
parameters.

This allows us to move mirror handling out out of Formula#fetch and into
the download strategies themselves. While doing so, we adjust the mirror
implementation a bit; mirrors now assume the same "specs" as their
owner's URL. They are still only useable by the CurlDownloadStrategy,
but this provides a basis for extending mirror support to other
strategies.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-04 22:47:35 -05:00
Jack Nagel
af53f54b24 fetch: use new checksum verification
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-04 22:47:34 -05:00
Jack Nagel
b2ff74372e Refactor download strategy detection
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-04 22:47:34 -05:00
Jack Nagel
76b2eee777 Refactor checksumming
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-04 22:47:33 -05:00
Jack Nagel
2c6e93cf8a audit: handle new formula specs 2012-07-04 22:47:33 -05:00
Jack Nagel
6420943552 info: display available formula specs 2012-07-04 22:47:33 -05:00
Jack Nagel
b6d44dd38a fetch: make use of new formula specs 2012-07-04 22:47:33 -05:00
Jack Nagel
168ccb2821 Update formula template for new X11 dependency
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-01 14:32:28 -05:00
Jack Nagel
1d2a72eecc Dump Cmake environment variables in brew --env
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-01 13:51:23 -05:00
Jack Nagel
e65c3a71eb Update doctor checks for XQuartz
- pkg-config no longer defaults to checking /usr/X11/lib/pkgconfig;
   instead this path is added via ENV.x11 or depends_on :x11. Formulae
   that expect X11 libs should be explicitly marked as depends_on :x11.
 - Remove warning about /usr/X11 as a symlink.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-01 12:23:19 -05:00
Camillo Lugaresi
89f86dc283 Better describe X11 in brew --config 2012-07-01 12:20:47 -05:00
samueljohn
4aed55cccb doctor: suggest the correct xcode-select path to the user
Shortened the part about the CLT-only systems, because this message is
never shown to them.

Closes Homebrew/homebrew#13061.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-06-29 12:40:26 -05:00
samueljohn
13e14ef65a Fix Homebrew/homebrew#13012 properly and don't set the SDK if CLT
Undoing parts of the hot fix 78b9e8548e771a59e382e6f13339664ec5498391.

The only thing missing was to check for `system "/usr/bin/xcrun -find make 1>/dev/null 2>&1"`
and then it's safe to call locate.

This commit restores the original functionality but without the risk for recursion
and improves the logic of `MacOS.locate`. See below.

To important changes in this commit:

- For Xcode _and_ CLT: don't add the SDK and leave things as before.
So if `MacOS.clt_installed?`, then no `SDKROOT` and `-L` and `-I`
directories are set in `ENV.macosxsdk`.

- Improved the logic for `MacOS.locate` for Xcode-only situations
by assuring that the xcode-select path is correct. This is done
by checking that `bin/make` exists and is executable. Otherwise it
was possible to set xcode-select to an empty dir.
This check is done in `MacOS.sdk_path` too.
We are now able to use Xcode wherever it is and can work even, if
xcode-select is set to invalid values. (Remember some users don't
have sudo access and that is needed to fix xcode-select).

Some minor whitespace fixes.
Minor backtick fix in doctor.rb's printout.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2012-06-27 11:50:43 -07:00
samueljohn
212dc98003 doctor: check for ~/.pydistutils.cfg
Closes Homebrew/homebrew#12363.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-06-26 19:41:22 -05:00
Jack Nagel
87543a6916 config: omit Xcode path for CLT-only systems
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-06-26 12:20:04 -05:00
Jack Nagel
9189258a9e Clean up --config output
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-06-26 00:02:42 -05:00
Charlie Sharpsteen
f165e0cf5f brew-upgrade: Respect --ignore-dependencies flag
Passing `--ignore-dependencies` to `brew upgrade` will now have the desired
effect.
2012-06-25 09:20:18 -08:00
samueljohn
725feb3db1 Core change: XCode only install, with CLT or both
Allow XCode without the Command Line Tools to
work with homebrew, so it's not necessary
to register an Apple Dev ID and/or go to the
XCode prefs and download the CLT. Yay!

Further, this commit allows to use the CLT
solely (without the need for XCode).
Saves quite some megs.
(Some furmulae require xcodebuild)

Of course XCode together with the CLT is still
fine and has been tested on 10.7 and 10.6
with Xcode 4 and Xcode 3.

Only on Lion or above, tell the user about the options,
which are
- Xcode without CLT
- CLT without Xcode
- both (ok, it's not directly stated, but implicit)
So if no Xcode is found and we are on Lion or above,
we don't fail but check for the CLTs now.
For older Macs, the old message that Xcode is needed
and the installer should be run is still displayed.
If the CLT are not found but Xcode is, then we
print out about the experimental status of this setup.

Closes Homebrew/homebrew#10510.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2012-06-24 19:11:06 -07:00
Tim Oram
3147dd134a doctor: rewrite Volume class to fix issue with google update engine
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2012-06-23 10:18:16 -07:00
Misty De Meo
0d2e26fc58 doctor: skip missing_deps when no Cellar exists
Another fix for Homebrew/homebrew#5188.
2012-06-19 10:08:19 -05:00
Misty De Meo
d1baf42d94 doctor: skip outdated_homebrew check when no git 2012-06-19 10:03:11 -05:00