117 Commits

Author SHA1 Message Date
Max Howell
5e20a29587 LICENCE is a common spelling too 2010-01-13 11:23:14 +00:00
Adam Vandenberg
24b6e9c721 Detect X11 when ENV.x11 is requested; dump in --config. 2010-01-11 11:36:35 -08:00
Max Howell
56351558b8 Check GitHub for issues relating to build failures
Uses the GitHub issue search API, so it's very neat and concise. However you can get false positives, so it's not 100% useful. Still I think it is more useful than before, which was, nothing.

A further issue is it depends on the ticket at GitHub using the formula's proper name. So we should ensure this as we can.

Finally, it does add a possibly large delay to clean exit after a build error. We may want to fiddle with timeouts if it becomes troublesome.
2010-01-06 23:38:07 +00:00
Max Howell
3ce7637c14 Xcode is still installed, even if it's as old as 3.0
Instead tell them to upgrade.

Problem was Xcode 3.0 didn't come with GCC 4.2.
2009-12-30 20:52:09 +00:00
Max Howell
74d9d462d6 Install README.md too if found
There's a whole bunch of other versions of README and that, and we did need to handle them. Just not today.
2009-12-22 04:43:00 +00:00
Adam Vandenberg
596d26f8b4 Remove unused method expand_deps. 2009-12-19 20:35:44 +00:00
Pierre Riteau
e50d68ec8d Fix brew info: wrong number of arguments when calling github_info
Fixes Homebrew/homebrew#200. Fixes Homebrew/homebrew#202. Fixes Homebrew/homebrew#203.
2009-12-17 13:44:39 +00:00
Max Howell
3762bbf56a Fix brew info
Removed DEFAULT_USER, etc. constants, as code is clearer with actual values IMO, in this case.
2009-12-12 16:24:19 +00:00
Adam Vandenberg
d391f7c70e --github improvements
* Only invoke git if --github was passed; speeds up brew info --all
* Use current branch for --github instead of master.
2009-12-12 16:24:15 +00:00
Max Howell
a9895432ce Use our Bazaar formula for now
Bzr on PyPi is problematic for now.
2009-12-12 16:23:03 +00:00
Max Howell
54aff61ef6 Prompt user to use pip for Hg and Bzr 2009-12-05 17:29:49 +00:00
Max Howell
0cb915e34e Allow formula to skip docs removal 2009-12-04 14:16:45 +00:00
Max Howell
9294e19859 brew --config output improved if no GCC 2009-12-01 12:07:34 +00:00
Max Howell
a011dd6762 Direct bug reports to the issues URL 2009-12-01 12:07:33 +00:00
Adam Vandenberg
95e398ab13 Add alias support to formulae
* brew install will find an aliased formula
* aliases are searched against
* warn when creating a new formula that has an existing alias.

If Subversion has an alias "svn", then warn when the user tries to
create a new formula "svn". The formula can still be created, though
the user should make sure it's not a duplicate of the existing
aliased one.

Subversion and Objective-Caml formulas get some alises here, so we have
something to test against.
2009-11-19 14:03:07 -08:00
Max Howell
00e227ac46 More tweaking of main exception handler output 2009-11-12 01:37:02 +00:00
Max Howell
b99324fbeb DRY gcc_build and llvm_build 2009-11-09 18:47:26 +00:00
Max Howell
455271ed12 Blacklist RubyGems creation 2009-11-07 18:22:36 +00:00
Max Howell
e046e1e640 More useful Macports/Fink detection function 2009-11-04 16:27:37 +00:00
Max Howell
79530df421 Remove mercurial and scons from the create blacklist
Blacklist wxwidgets, it's in /usr/X11/lib.
2009-10-23 19:20:16 +01:00
Michael Stephens
9d290b4502 Add dependencies to 'brew info' output 2009-10-19 04:02:49 +01:00
Max Howell
6c2555b476 Allow --force for blacklisted formula names 2009-10-15 16:51:59 +01:00
Max Howell
1ead455b83 Blacklist brew create scons 2009-10-15 16:51:58 +01:00
Max Howell
ca1a6492bc s/require 'brewkit'/require 'formula'/g
brewkit.rb changes ENV destructively, so lets not do that everytime a formula
is required. Now it's possible for other tools to require a formula
description without worrying about side-effects.
2009-10-15 16:48:03 +01:00
Max Howell
e2bed20d21 Revert "Set homepage in created scripts to frontmost Safari URL"
This reverts commit a1ed2cb19706e317d34f1a9f2efe8a2d2388afae.

The is running part of the Applescript didn't seem to prevent Safari getting
loaded when it wasn't running when used via osascript. It worked in
ScriptEditor! Honest!

Also we decided that it probably wouldn't work often enough anyway.

Discussion: a1ed2cb197
2009-10-09 00:09:05 +01:00
Max Howell
346e42d4b9 Set homepage in created scripts to frontmost Safari URL
A bit of fun with Applescript, for those of us who use Safari.
2009-10-04 20:15:33 +01:00
Max Howell
64899bbbff Blacklist creation for some formula
We don't duplicate, so libxml and that are already provided by OS X. Mercurial is provided by easy_install.

I'm adding this to save people contributing stuff that we won;t accept. I hate disappointing people :(
2009-10-01 15:48:54 +01:00
Max Howell
c61d96529c brew list --unbrewed fix
Determine all directories that aren't Homebrew ones.

Exec find.

I prefer to keep short stuff in bin/brew so people reading the code have a better idea of what happens, and what sort of functions are useful for the sorts of things we do with Homebrew.
2009-09-30 18:11:49 +01:00
Max Howell
512a3da886 brew list lists root keg files if not README, etc. 2009-09-30 17:45:38 +01:00
Max Howell
396ec2efae Show trailing / for dirs with brew list 2009-09-30 01:24:31 +01:00
Kieran Pilkington
0e9edbb285 An additional reference for warn_about_macports_or_fink 2009-09-29 16:26:38 +01:00
Kieran Pilkington
aedaaf79bf brew list --unbrewed
Very quick way to find files not installed by homebrew.

Taken from a command by mxcl on the homebrew wiki.

.DS_Store files and bin/brew are ignored.
2009-09-29 16:26:37 +01:00
Max Howell
14818039ae If brew create can't figure out the name, prompt for it
This was adapted from adamv@d5e78ee26535dec4b11c33d14832a9ee945a29fd

I decided prompting would was the most usable solution here, as the stem is
unlikely to be useful so the user would have to rename the file and change
the class name as well as type the command once and then again with --force.

Dissent welcome.

Fixes Homebrew/homebrew#15
2009-09-29 15:46:34 +01:00
Max Howell
1004df181e fix_PATH changed to warn_about_macports_or_fink
We shouldn't mess with the user's PATH anyway. So assume our users are smart and just warn them about potential issues instead.
2009-09-28 00:20:51 +01:00
Max Howell
af6c890294 Quote path parameters where appropriate
Our build directories are space-less, but the final destination may have
spaces, especially since OS X often uses your full name as your home directory
path.
2009-09-28 00:20:50 +01:00
Max Howell
bab6515668 Summarised listings with brew list
I'm trying to only show the interesting stuff. You can see a full listing with
brew -v list, or by piping to other commands.

Tell me if you hate it or love it.
2009-09-24 22:38:42 +01:00
Max Howell
a6ba0c4800 Use new instance var syntax for brew create 2009-09-24 18:49:49 +01:00
Max Howell
44a1fa418e Use full paths to all system utilities
Otherwise you run the risk of not running the exact version / make of the utility you planned.

Fixes Homebrew/homebrew#48

Really we need to do this formula too, so I guess a make and cmake function are on the way…
2009-09-24 18:26:24 +01:00
Max Howell
034fc40ae1 Remove Fink and Macports from the PATH earlier
References issue Homebrew/homebrew#48
2009-09-24 18:26:24 +01:00
Max Howell
e60ea7bd20 Clean up the empty dir cleaner a little
Using more Pathname methods.

Only show text if verbose mode is on, as is typical for the rest of our install output.

TODO: would be nice if we knew you were a dev and automatically enabled verbose mode perhaps.
2009-09-22 11:38:22 +01:00
Adam Vandenberg
50b981a469 Replace perl one-liner for removing empty dirs with Ruby.
Allow Formula.skip_clean? to prevent empty folders from being removed
as part of the brewing cleanup process.
2009-09-21 16:12:01 -07:00
Max Howell
e9701dbc81 Merge branch 'deps'
Conflicts:
	Library/Formula/imagemagick.rb
	Library/Formula/taglib.rb
	Library/Homebrew/brew.h.rb
	Library/Homebrew/formula.rb
	bin/brew
2009-09-21 18:46:28 +01:00
Max Howell
77dd27e8e6 Dependency resolution with fancy syntax
Is it a DSL? No. But people call it that apparently.

To add a dependency:

class Doe <Formula
  depends_on 'ray'
  depends_on 'mee' => :optional
  depends_on 'far' => :recommended
  depends_on Sew.new
end

Sew would be a formula you have defined in this Formula file. This is useful,
eg. see Python's formula. Formula specified in this fashion cannot be linked
into the HOMEBREW_PREFIX, they are considered private libraries. This allows
you to create custom installations that are very specific to your formula.

More features to come, like specifying versions
2009-09-21 18:27:48 +01:00
Max Howell
3d421c8649 Update references to masterbrew
I left update_from_masterbrew! as a historical reference.
2009-09-18 14:32:21 +01:00
Max Howell
c28bd7b571 Allow formulae to use __END__
For this to work the "running script" must be the formulae file. Making this
so wasn't so hard, there is now an install.rb script which is included with
the -r flag to the ruby executable. An at_exit handler calls the install
function.

Having the install logic in its own file made it feel like there was so much
space that I added extra error handling. So there is something to be said for
separating functionality out into its own files.

Still the error handling sucks, we'll need to marshall the exception back to
the bin/brew command. Which is another PITA.

Still overall I think this will prove worthwhile. But if it doesn't we'll
revert.

As a first usage, you can put a diff after __END__ and return DATA from
Formula::patches to make Homebrew aware of it.
2009-09-16 14:49:06 +01:00
Max Howell
f0f59659dd Overriding Object.class was not my intention
Renamed to Formula::class_s.
2009-09-11 17:42:53 +01:00
Max Howell
a793e30405 Only allow --interactive with one formula argument
See comments in commit for details.
2009-09-10 19:23:03 +01:00
Max Howell
fdaa267fb9 Don't install dependencies that are already installed 2009-09-10 19:23:03 +01:00
Max Howell
0a31190fdc Dependency resolution
Specify dependencies in your formula's deps function. You can return an Array,
String or Hash, eg:

    def deps
      { :optional => 'libogg', :required => %w[flac sdl], :recommended => 'cmake' }
    end

Note currently the Hash is flattened and qualifications are ignored. If you
only return an Array or String, the qualification is assumed to be :required.

Other packaging systems have problems when it comes to packages requiring a
specific version of a package, or some patches that may not work well with
other software. With Homebrew we have some options:

1.  If the formula is vanilla but an older version we can cherry-pick the old
    version and install it in the Cellar in parallel, but just not symlink it
    into /usr/local while forcing the formula that depends on it to link to
    that one and not any other versions of it.
2.  If the dependency requires patches then we shouldn't install this for use
    by any other tools, (I guess this needs to be decided on a per-situation
    basis). It can be installed into the parent formula's prefix, and not
    symlinked into /usr/local. In this case the dependency's Formula
    derivation should be saved in the parent formula's file (check git or
    flac for an example of this).

Both the above can be done currently with hacks, so I'll flesh out a proper
way sometime this week.
2009-09-10 19:23:03 +01:00
Max Howell
18d9fbee98 Closes Homebrew/homebrew#27 (permissions to strict)
I went with 0555 as the permissions changing only occurs to bin, sbin and lib, so there shouldn't be any files in there for editing in general anyway.

Formulae can specify not to "clean" any particular file by reimplementing the skip_clean? function, in case some config file or what not ends up in there.

Also committing cosmetic fix to pretty_duration function.
2009-09-03 20:58:33 +01:00