2249 Commits

Author SHA1 Message Date
Max Howell
da692fadc6 Don't chmod -R 0777 before uninstalling
If the user owns the parent directory we have the rights to rmtree. At least I believe so.

Fixes Homebrew/homebrew#13714.
2012-08-06 18:49:14 -04:00
samueljohn
27fae8a829 brew --env: Added missing env vars
Closes Homebrew/homebrew#13431.

Signed-off-by: Max Howell <mxcl@me.com>
2012-08-06 18:22:45 -04:00
Max Howell
6629a9e23f Don't error out if never brew updated
Fixes Homebrew/homebrew#12944.
2012-08-06 16:44:11 -04:00
Patrick Lucas
47cdd4d819 Suggest git clean -f for untracked changes
Currently, if brew doctor detects untracked changes in the local repo,
it suggests doing 'git reset --hard', but that doesn't remove untracked
files. This change adds an additional suggestion to run 'git clean -f'
to remove them.

Closes Homebrew/homebrew#12814.

Signed-off-by: Max Howell <mxcl@me.com>

Changed the path to Library as we don't want to clean -f all over the whole /usr/local :P
2012-08-06 15:59:12 -04:00
Max Howell
7c8a2656f0 New command brew irb
Works rather damn well.

I considered `brew -i`, but we aren't a shell.
2012-08-06 14:41:55 -04:00
Max Howell
0152b34839 Don't blacklist tapped-dupes
If a formula is in Formula due to tapping or otherwise, don't prohibit installation.

Really we should make the blacklist *really* stuff that should be blacklisted and then if it is available still require a --force. But currently with okay stuff like vim in there, and libxml2 being both blacklisted *and* in mxcl/master, we are screwing ourselves.

TL;DR we should do some work on this component.

Fixes Homebrew/homebrew#13234.
2012-08-06 14:22:22 -04:00
Max Howell
97acbe8f66 Actually cache Xcode.version
The short-circuit returns would cause the caching ||= syntax to be skipped. For me on my CLT-less install, this was noticeably slowing down brew for some operations due to the frequent calls to xcodebuild.
2012-08-06 13:46:47 -04:00
samueljohn
a8a9388062 wxmac: 2.9.4
- patch no longer needed
- blacklist.rb: Removed version number because we forget to update it too often.

Closes Homebrew/homebrew#13997.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2012-08-06 10:33:54 -07:00
Max Howell
28c9b8f601 Put the CLT advice warning in the right place
Refs Homebrew/homebrew#13982.
2012-08-06 13:26:39 -04:00
Max Howell
97b841c1d5 Don't output Ruby warnings
We don't want bug reports about this crap, even though the user REALLY should listen to the warning message. What actually happens is they blame us instead.

This kind of warning in particular:

warning: Insecure world writable dir /usr/local/bin in PATH
2012-08-06 13:06:36 -04:00
Max Howell
a9f246eaad Point out to that you may want to install the CLT
You have to hold people's hands, they won't google anything.

Refs Homebrew/homebrew#13982.
2012-08-06 13:06:36 -04:00
Jack Nagel
bbcbbcdaa1 Remove X11 doctor check
Now that X11 components are specified as dependencies, users will be
prompted to install these components when necessary, and this check is
no longer needed.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-08-06 00:42:43 -05:00
Jack Nagel
7488b9844b Adjust XQuartz/X11 module naming scheme
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-08-06 00:39:06 -05:00
Max Howell
3ea35f3351 Some users require hands to be held constantly
Tell user exactly what command to use rather than thinking they'll figure it out by applying some negation logic to the main verb in the sentence they just read.

Closes Homebrew/homebrew#12790.
2012-08-05 10:46:35 -04:00
Max Howell
ac27ff1bdf brew log works with Tapped formula
Fixes Homebrew/homebrew#12446.
2012-08-05 10:34:44 -04:00
Max Howell
4b5052f614 Show options for foo with brew info foo
About time right?
2012-08-04 15:40:36 -04:00
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
Mike McQuaid
385e5dacd2 Use LC_CTYPE rather than LANG for most specific ML sed fix.
Fix Homebrew/homebrew#11728, fix Homebrew/homebrew#12890, fix Homebrew/homebrew#13653, fix Homebrew/homebrew#13734, fix Homebrew/homebrew#13787, fix Homebrew/homebrew#13818,
fix Homebrew/homebrew#13939.
2012-08-04 10:48:23 +01:00
Mike McQuaid
cdc987286a Add better named aliases for macos_version_or_newer? 2012-08-04 10:36:31 +01:00
Adam Vandenberg
2ff90a94f3 blacklist: update npm location 2012-08-03 19:53:54 -07:00
Mike McQuaid
c632d733bc Fix Mountain Lion sed by setting LANG.
It's also necessary to delete LC_ALL or it overrides the new LANG.
LC_COLLATE is the problem variable but is affected by LANG and LC_ALL
so just use them instead. Extends the fix made to geoip in dc955c.

Fix Homebrew/homebrew#11728, fix Homebrew/homebrew#12890, fix Homebrew/homebrew#13653, fix Homebrew/homebrew#13734, fix Homebrew/homebrew#13787, fix Homebrew/homebrew#13818.
2012-08-02 20:26:01 +01: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
Misty De Meo
1a48dbc967 xquartz_version: escape spaces for mdls 2012-07-31 10:54:25 -03:00
Misty De Meo
fcbee28447 mdfind: Check if path is nil as well as empty 2012-07-31 00:14:52 -03:00
Misty De Meo
9af7e25e03 mdfind: don't strip
Since we're splitting on newlines, stripping shouldn't be necessary.
2012-07-30 23:36:00 -03:00
Misty De Meo
2056e24a12 mdfind: Handle multiple results
Turns out mdfind can return multiple results on the commandline, if
more than one app bundle matches.

Fixes Homebrew/homebrew#13789.
2012-07-30 23:20:05 -03:00
Max Howell
d5f2cdd31c Deprecate adamv/alt from brew search
Add brew/science.
2012-07-30 13:24:53 -04:00
Dean Smith
fe32e6343d Invoke non interactive shell from brew edit
Fixes Homebrew/homebrew#12779. Closes Homebrew/homebrew#12784.

utils.rb invokes bash as a non interactive shell to run the editor
when you run brew edit.

Non-interactive shells are not intended to capture user input and for running scripts. Whilst the invocation of the editor is a script the actual editor is intended for accept user input so this is an issue with brew and not emacs.

This causes issues with emacs which has different behaviors when not running under an interactive shell.

Signed-off-by: Max Howell <mxcl@me.com>
2012-07-30 13:23:19 -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
Misty De Meo
6a8c4843f7 Provide missing .pc files for 10.8
10.8 no longer ships four .pc files which were included in previous
versions, though it does still include the libraries which they pointed
to. This commit provides copies of the .pc files for all of these, and
prepends Library/Homebrew/pkgconfig to PKG_CONFIG_PATH on 10.8.

The .pc files in question are: lib curl, lubexslt, libxml-2.0, libxslt

Fixes Homebrew/homebrew#13673.
Fixes Homebrew/homebrew#13627.
Fixes Homebrew/homebrew#13652.
Fixes Homebrew/homebrew#13482.
Closes Homebrew/homebrew#13572.

Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2012-07-29 10:28:41 -03:00
Misty De Meo
3822267d2c Synchronize Keg#link and #unlink counts
Keg#link would sometimes count a linked file when doing mkpath, even if
the target directory already exists; #unlink would never count it. This
meant that "brew ln" and "brew unlink" counts for the same keg could be
out of sync with each other.
2012-07-29 10:28:41 -03:00
Jack Nagel
d701a59a68 Update libpng blacklist message
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-29 00:09:15 -05: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
Charlie Sharpsteen
0d3578b28d dependencies.rb: Add MPI compiler Requirement
All versions of OS X prior to Lion shipped with some version of Open-MPI, but
without working compiler wrappers for Fortran. Homebrew currently has two
formulae that can supply this software: open-mpi and mpich2.

This commit adds a `MPIDependency` Requirement that can be passed one of four
values when constructed:

    :cc, :cxx, :f90, :f77

This will ensure the `mpi<value>` compiler is available and working. For
example, if `depends_on MPIDependency.new(:cc, :f90)` is used, the Requirement
will search for working `mpicc` and `mpif90` wrappers.

If the required wrappers cannot be found, an error message will be displayed
that prompts the user to install one of the Homebrew formulae that provides
MPI.

For each language passed to a MPIDependency Requirement, environment variables
be will set that point to the compilers.

Signed-off-by: Charlie Sharpsteen <source@sharpsteen.net>
2012-07-28 09:12:44 -07:00
Jack Nagel
96ee0e90cc Deduplicate requirements
Because of some quirks in how formulae are loaded, DSL methods invoked
in the class definition are called multiple times. This results in, for
example, duplicate dependencies and requirements.

Code that iterates over requirements and takes some action for each can
thus repeat things that shouldn't be repeated, like appending to
environment variables.

Make DependencyCollector's external_deps a Set, and define eql? and hash
on Requirement to prevent these duplicates.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-27 02:50:29 -05:00
Jack Nagel
5a62582b39 Requirement: add modify_build_environment method
Rather than doing type introspection in build.rb, just define a method
to perform the necessary environment setup for Requirements.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-27 02:42:22 -05:00
Jack Nagel
4dde88b6d3 Un-break MacOS.sdk_path
MacOS.sdk_path is meant to return the SDK path that matches the version
argument, so store the result in a hash.

Fixes Homebrew/homebrew#13623.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-27 02:40:44 -05:00
Mike McQuaid
8d949520ec Further improve brew doctor issue wiki text.
Following feedback from @mxcl on bcda0d.
2012-07-26 07:53:27 +01: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
a772fb97ab Add MacOS::Xcode.provides_gcc?
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
11cfca0e12 Add MacOS::Xcode.provides_autotools?
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-25 12:04:41 -05:00
Jack Nagel
a784d2e045 Move Xcode and CLT modules to a new file
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
Jack Nagel
02f48dd7d8 MacOS: avoid checking clt_version in clt_installed?
Checking "not clt_version.empty?" is unnecessary if we are also checking
that dev_tools_path is /usr/bin.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-07-25 11:58:01 -05:00