17988 Commits

Author SHA1 Message Date
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
Adam Vandenberg
cae0e78e60 Pull USERAGENT used by curl into constant 2009-08-10 16:15:24 +01:00
Adam Vandenberg
fea89daae6 Extract 'verify_download_integrity' method
In order to support more than just MD5 verification, extract 'verify_download'
into a separate method.
2009-08-10 16:14:43 +01:00
Max Howell
182ce1eff6 Formula::std_cmake_parameters
Because cmake syntax is batshit-insane, this stops people having to memorize
which parameters to supply, and thus prevents error.

I didn't do the same for Autotools deliberately as I have found that
which parameters are supported is somewhat inconsistent. Plenty don't even
support --disable-debug, thus I want the parameters getting used in the
contributors face so they can easily diagnose what is going on.
2009-08-06 20:25:59 +01:00
Max Howell
e9dbdadcac Remove all testing temporaries when done 2009-08-04 01:31:32 +01:00
Max Howell
a1d5450f0c The unittest now emulates a fresh install better
In future, this will hopefully prevent regressions like issue Homebrew/homebrew#7.
2009-08-04 01:07:36 +01:00
Max Howell
33b90794e1 HOMEBREW_CACHE is now a Pathname object
This is consistent with the other HOMEBREW_* path constants
2009-08-04 00:40:12 +01:00
Max Howell
8ce4e5923f FIX Github gist formulae 2009-08-04 00:36:48 +01:00
Max Howell
69d7e2a797 FIX brew install before Cache has yet been created
Closes Homebrew/homebrew#7

Cache directory is created when downloading tarballs, but the new
hw.model stuff compiles the hw.model.c file there.
2009-08-04 00:35:27 +01:00
Adam Vandenberg
58fe4cc2bf Use cleanpath instead of realpath to keep symlinks intact. 2009-08-02 01:25:01 +01:00
Max Howell
a5ca752658 Refactor and clean up code 2009-08-01 18:10:20 +01:00
Max Howell
e2bc3c510e FIX allow @version to be set in derived Formula 2009-08-01 17:54:18 +01:00
Max Howell
7cb9c31f3e Determine best optimization flags for host
We call sysctl to determine which exact Mac model we are running on and
optimize as well as possible.
2009-07-31 16:06:14 +01:00
Max Howell
055a694cd4 More tests for Formula and Keg 2009-07-31 14:21:27 +01:00
Max Howell
7e0d5bf165 Tests for Formula.* 2009-07-31 14:04:24 +01:00
Max Howell
e39f2ad229 FIX chmod correctly for *both* 32bit and 64bit binaries 2009-07-31 14:03:58 +01:00
Max Howell
d082abbbe8 FIX only claim that Formula doesn't exist if it was a loaderror 2009-07-31 14:03:22 +01:00