Skip to content

Commit

Permalink
More instructions for brew mk process
Browse files Browse the repository at this point in the history
  • Loading branch information
mxcl committed Jun 26, 2009
1 parent a0c8640 commit b90a8a4
Showing 1 changed file with 44 additions and 14 deletions.
58 changes: 44 additions & 14 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ http://trac.macports.org/wiki/FAQ#HowDoIRemoveOrUninstallMacPorts
http://www.finkproject.org/faq/usage-fink.php#removing

Homebrew uses Ruby and some other stuff that is already installed on Leopard.
It is self-contained and ready to go. Just copy this directory somewhere. Things
work really well if you put it in /usr/local (especially if you are a
It is self-contained and ready to go. Just copy this directory somewhere.
Things work really well if you put it in /usr/local (especially if you are a
developer).

I also recommend you make /usr/local user-writable. I wouldn't worry about it
Expand All @@ -44,8 +44,8 @@ not being chroot. We don't install anything base enough for it to be a concern
You can stick this directory in your home directory if you like. In that case
a typical (POSIX) choice would be: /User/mxcl/.local

If you don't install to /usr/local (but seriously it's great!) then you'll need
to edit your ~/.profile file to add Homebrew's bin directory to the PATH.
If you don't install to /usr/local (but seriously it's great!) then you'll
need to edit your ~/.profile file to add Homebrew's bin directory to the PATH.


Usage
Expand Down Expand Up @@ -81,9 +81,9 @@ Show expensive packages:

You get the idea.

Maybe we should overload more of this stuff with the brew command, but frankly I
feel that this way *you* will understand the capabilities of the system better.
And you basically know everything that is going on.
Maybe we should overload more of this stuff with the brew command, but frankly
I feel that this way *you* will understand the capabilities of the system
better. And you basically know everything that is going on.

With apt, you type apt-get install wget. Now what is happening? With Homebrew
you are running a ruby script. You know what is happening. You can easily and
Expand Down Expand Up @@ -141,23 +141,53 @@ Contributing
============
New Formulae
------------
Relative to every other stupid packaging system ever, this is trivial. Just
fork it at: http://github.com/mxcl/homebrew and create a new recipe. Then ask
me to pull. Using git made all this so much easier.

To make a new package use brew mk:
Firstly generate the formula:

brew mk http://foo.org/foobar-1.2.1.tar.bz2

You now have /usr/local/Library/Formula/foobar.rb.
Now it would be useful to amend the formula based on its configure options:

brew install foobar --help

Now you know foobar's configure options.

brew install foobar --interactive

This will either open TextMate or print the location of the generated stub.
This opens an interactive bash shell at the extracted tarball. You can now
install to the recommended prefix or just read the README and type `exit'.

Try to install it:

brew install foobar

HomeBrew is not an Autarky so any dependencies outside of OS X that a package
If it worked, fork http://github.com/mxcl/homebrew and ask me to pull. If it
didn't you may need to dig a little deeper.

I'll try to optimise the package when I pull, but it would be nice if you did
that for me ;)

HomeBrew is not an autarky so any dependencies outside of OS X that a package
may require may be installed separately. We have functions to help with that.

Other useful commands when contributing
---------------------------------------
brew edit # opens Textmate with all of Homebrew as a project
brew edit foobar # opens that formula for editing in Textmate
brew install foobar --debug # if the build fails, you can fix it
brew [something] --verbose # you get a proper ruby backtrace
brew install foobar --interactive # you are dumped at a shell with the extracted tarball as PWD

Code
----
Yes please! Fork and improve :)

TODO
----
1. upgrades, yeah still need this
2. install multiple versions of tools, which is very useful for eg. Qt
3. formula revisions, to allow upgrades irrespective of the underlying package


FAQ
===
Expand Down

0 comments on commit b90a8a4

Please sign in to comment.