30713 Commits

Author SHA1 Message Date
Adam Vandenberg
a67cf9bef2 Clarify --debug behavior.
Add a note that 'exit 1' will abort the installation in --debug mode.

Signed Off By: Max Howell <max@methylblue.com>

I ammended the text slightly and made the lines all 78 chars wide maximum.
2009-08-29 14:12:31 +01:00
Max Howell
5b6deb8845 Don't symlink directories into bin 2009-08-24 01:04:54 +01:00
Max Howell
2eec8180eb Playdar formula
Fix git download strategy
2009-08-24 01:04:54 +01:00
Max Howell
2b29e052fc reinreplace uses safe_system 2009-08-24 01:04:54 +01:00
Max Howell
4671526d70 Raise a SystemExit exception to prevent backtrace 2009-08-24 01:04:54 +01:00
Max Howell
f0c7e944bb Support optional HEAD builds for any formula
A formula can have just a @head url or the user can specify to install HEAD
with --head. We support subversion and git checkouts.

The version is set to HEAD for head builds.

Next step is making brew update handle these installs correctly.
2009-08-24 01:04:54 +01:00
Adam Vandenberg
4c2d4c8560 Add path for 'libexec'. 2009-08-24 01:04:53 +01:00
Max Howell
5144ac9e6a Suggest homepage in usage 2009-08-24 01:04:53 +01:00
Max Howell
b6ccdad53e Proper validation of Formula.name and version 2009-08-24 01:04:53 +01:00
Max Howell
c53e10f4aa FIX brew diy --set-version --set-name 2009-08-24 01:04:53 +01:00
Max Howell
72bde8c583 Move download strategies into their own file 2009-08-24 01:04:53 +01:00
Max Howell
e7594de797 Allow configure alias for diy 2009-08-24 01:04:53 +01:00
Max Howell
f9d7b34945 Don't return a version that equals the basename
Return nil instead
2009-08-24 01:04:53 +01:00
Max Howell
c532d11e7a Refactor away AbstractFormula
We'd gotten to the stage where Formula was so lean, it was pointless to
separate it.
2009-08-24 01:04:48 +01:00
Max Howell
b115f26870 GitDownloadStrategy
Untested
2009-08-24 01:03:30 +01:00
Adam Vandenberg
57a86034a3 Support building from Subversion repositories
Adds a new DownloadStrategy that checks files out from Subversion to the
cache, then exports over to the temp folder for the build.

To use checkout with the svn:// protocol or reimplement download_strategy and
return SubversionDownloadStrategy.
2009-08-24 01:03:30 +01:00
Adam Vandenberg
0eaf4bbcd9 Factor out downloading from Formula
This patch adds a ArchiveDownloadStrategy that handles downloading
tarbarlls and decompressing them into the staging area ready for brewing.

Refactored safe_system and curl into utils.rb

Signed-off-by: Max Howell <max@methylblue.com>

Modifications to Adam's original patch:

I reverted objectification of checksum verification because I couldn't think
of any other download validation methods that might be useful to us in the
future, so allowing such flexibility had no advantages. If we ever need this
to be OO we can add it. But for now less complexity is preferable.

I removed the @svnurl class member. Instead download_strategy is autodetected
by examining the url. The user can override the download_strategy in case this
fails. Thus we already can easily add support for clones of git repositories.
2009-08-24 01:03:23 +01:00
Max Howell
65e1419ea9 Raise if installing a non-existent file 2009-08-21 18:26:50 +01:00
Adam Vandenberg
9bc60b80b6 Fix comment about ENV overrides 2009-08-21 14:40:26 +01:00
Adeel Ahmad Khan
1c55642645 Link binaries in sbin as well as bin.
Signed-off-by: Max Howell <max@methylblue.com>
2009-08-12 23:55:57 +08:00
Max Howell
140bfc5592 brew diy command
Automagically determines prefix to install to for DIY installations.

README amended.
2009-08-12 13:43:51 +01:00
Max Howell
355bfc1751 Pathname.version on directories ignores extname
Because directories don't have extensions.

Included test
2009-08-12 13:43:20 +01:00
Adam Vandenberg
7e723c107b Add note about xeon.
Signed-off-by: Max Howell <max@methylblue.com>
2009-08-12 05:42:58 +08:00
Max Howell
a2066af2fd Allow user to specify patch level
The default is p0, but if you return a Hash instead of an array from patches you can specify patch level. See the comment documentation.

Closes Homebrew/homebrew#10
2009-08-11 18:16:12 +01:00
Max Howell
90ea28f6ba Remove MacPorts and Fink from the build environment
Closes Homebrew/homebrew#13
2009-08-11 14:52:45 +01:00
Max Howell
ab9f59f227 More ARGV tests 2009-08-11 01:30:39 +01:00
Max Howell
d275ba9976 FIX formulae and kegs didn't always work
Strange that they did often enough for my tests to work.
2009-08-11 00:36:47 +01:00
Max Howell
bd86ab508a rmdir_if_possible should ignore EACCES
It was raising an exception, which stopped prune in its tracks when
something was installed root, eg. Fuse.
2009-08-11 00:27:43 +01:00
Max Howell
3b262d0b23 Raise if ARGV.named and no named arguments 2009-08-11 00:27:18 +01:00
Max Howell
8c7b6a947c FIX if dst cannot be deleted, it's an error 2009-08-10 23:41:47 +01:00
Max Howell
0f0f775ea9 Escape / in before inreplace too 2009-08-10 23:32:13 +01:00
Max Howell
480bfa3793 CTRL-C for a child process should interrupt brew too 2009-08-10 18:17:11 +01:00
Max Howell
dd7bdce89c Abort debug install if exit is not zero 2009-08-10 18:16:47 +01:00
Max Howell
e24e46c793 TEST Zip'd archives can be extracted 2009-08-10 18:16:12 +01:00
Max Howell
6661f78618 Allow skip_clean? to skip entire directories
Speeds up Python formula plenty in clean phase
2009-08-10 18:12:16 +01:00
Max Howell
bae67c110f Fix inreplace and yajl formula 2009-08-10 18:12:16 +01:00
Max Howell
7653d48443 ENV.libpng
libpng and that are in the X11 formula
2009-08-10 18:12:16 +01:00
Max Howell
0ea078e1ae Install README.txt etc. as README 2009-08-10 18:11:23 +01:00
Max Howell
dae260561e Support github tagged download versions
eg. http://github.com/lloyd/yajl/tarball/1.0.5
2009-08-10 18:11:23 +01:00
Max Howell
f724f5ed52 Ensure ENV is pristine for each installation
Because we modified the ENV global each install this propagated to consecutive
formulae. So exec a new brew process each install. This is the safest way
although Ruby exceptions don't propagate to the parent process so I worry
about it somewhat.
2009-08-10 18:11:23 +01:00
Max Howell
69c076e741 ohai takes multiple parameters
Will not show any of the block if the 1st additional parameter is nil
2009-08-10 18:11:23 +01:00
Max Howell
a6577e5117 When safe, correct common install issues
Eg. man can be moved into share without consequences
2009-08-10 18:11:23 +01:00
Max Howell
a84bf77515 Delete installed documentation after install
Documentation is all online nowadays, and is more current there.

Documentation often takes up more space than the rest of the package.

Package listings are now more relevent.

We'll make it optional as soon as one person complains.
2009-08-10 18:11:23 +01:00
Max Howell
6dbdc9ab0c Remove duplicates from ARGV.named
Includes test
2009-08-10 18:11:23 +01:00
Max Howell
dccc2b1923 Apply new ENV capabilities to all existing Formulae 2009-08-10 18:11:22 +01:00
Max Howell
760c083c0c Refactor
Large refactor to Formula, mostly improving reliability and error handling but
also layout and readability.

General improvements so testing can be more complete.

Patches are automatically downloaded and applied for Formula that return a
list of urls from Formula::patches.

Split out the brew command logic to facilitate testing.

Facility from Adam Vandenberg to allow selective cleaning of files, added
because Python doesn't work when stripped.
2009-08-10 18:11:17 +01:00
Max Howell
5a396fd8b4 Extend ENV to make tweaking the build environment easier
eg. ENV.libpng or ENV.deparallelize
2009-08-10 16:48:21 +01:00
Max Howell
4355182529 Return the installed path(s) from install 2009-08-10 16:34:04 +01:00
Max Howell
3cf869385e FIX Pathname.rename
Rename relative to self.dirname
2009-08-10 16:33:15 +01:00
Max Howell
b32d2044c5 ARGV+yeast
Extensions to ARGV that are convenient or improve our robustness
2009-08-10 16:27:24 +01:00