256 Commits

Author SHA1 Message Date
Mike McQuaid
3710beda66 download_strategy: fix Git repo updating.
Git repositories should always be updated when the ref is a branch.
They should be also updated if no ref was specified or if the ref isn’t
present. This stops the repo being updated if we’re building a specific
revision and it is present. Additionally, this stops the update barfing
on repositories where we’re using a revision and there is no upstream
`master` branch.

Closes Homebrew/homebrew#29218.
2014-05-13 16:23:06 +01:00
Jack Nagel
260a351663 Recognize and extract xar files 2014-04-06 12:35:54 -05:00
Jack Nagel
7541f13164 Extract common decompression code to a method 2014-04-06 11:34:08 -05:00
Jack Nagel
cb5da28b5c Handle untarred bzip2 files
Fixes Homebrew/homebrew#28187.
2014-04-06 11:33:50 -05:00
Jack Nagel
45bdeadd94 Set bottle download strategy directly
We know what strategy we want, so going through DownloadStrategyDetector
is wasted work. Now we can remove those patterns from the detector and
have two fewer branches each time through.
2014-03-18 21:28:33 -05:00
Jack Nagel
aaea4d236a Reorder download strategy symbols by frequency 2014-03-18 21:28:33 -05:00
Jack Nagel
eace29a50e Reorder download strategy regexps by frequency 2014-03-18 21:28:29 -05:00
Josh Tilles
2225ebc44e Adapt to Git 1.9's submodule foreach changes
Closes Homebrew/homebrew#26871.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2014-02-21 00:05:42 -05:00
Jack Nagel
457d409f80 GitDownloadStrategy: fix typo'd parameter name
This should be "resource", not "resources", though it works anyway
because there is a also "resource" reader method.
2014-02-15 01:43:06 -05:00
Jack Nagel
7eec2d8b5a GitDownloadStrategy: allow disabling of shallow clone
Closes Homebrew/homebrew#25751.
Closes Homebrew/homebrew#26730.
2014-02-14 16:55:26 -05:00
Jack Nagel
5ce4c2a3f8 VCSDownloadStrategy: use REF_TYPES when extracting ref to use 2014-02-14 15:33:37 -05:00
Jack Nagel
41e3b2cad0 VCSDownloadStrategy: document acceptable ref types 2014-02-14 15:33:37 -05:00
Jack Nagel
a25152b5a1 GitDownloadStrategy: inline simple method 2014-02-14 15:33:37 -05:00
Jack Nagel
df9a8a3365 GitDownloadStrategy: move constant to top of class body 2014-02-14 15:33:37 -05:00
Adam Vandenberg
5252c35f34 fix typo in this notice 2013-12-05 20:26:40 -08:00
Jack Nagel
fa5b633650 SubversionDownloadStrategy: handle changed repository URL
Fixes Homebrew/homebrew#22159.
2013-12-03 21:13:02 -06:00
Jack Nagel
94333c64c1 SubversionDownloadStrategy: no need to escape 'svn' 2013-12-03 21:13:02 -06:00
Jack Nagel
6d7a3d7fa4 download_strategy: use clear_cache where appropriate 2013-12-03 10:14:11 -06:00
Adam Vandenberg
268feffae4 support .lz archives
Closes Homebrew/homebrew#24775.
2013-11-29 15:18:49 -08:00
Jack Nagel
ea32b5166c ApacheDownloadStrategy: fall back to specified mirrors
Fixes Homebrew/homebrew#24157.
2013-11-26 22:57:10 -06:00
Jack Nagel
1f190890fd Implement inferred CVS dependency
Fixes Homebrew/homebrew#24444.
Closes Homebrew/homebrew#24445.
Closes Homebrew/homebrew#24458.
2013-11-18 19:56:15 -06:00
Jack Nagel
c137f030bc Whitelist llvm.org for shallow git clones 2013-11-13 01:56:25 -06:00
Jack Nagel
9dd2f1a2c3 Fix Apache download strategy in verbose mode
A better fix would be to rewrite the curl method to yield its output,
but I don't feel like doing that right now.
2013-11-11 12:36:14 -06:00
Jack Nagel
e470010f2e Add git.sv.gnu.org repositories to shallow-clone whitelist 2013-11-05 22:06:20 -06:00
Jack Nagel
d35e465671 fetch: clear partial downloads when --force is given
Fixes Homebrew/homebrew#23764.
2013-10-31 14:29:38 -05:00
Jack Nagel
a5b2814770 Use curl to download list of Apache mirrors
Ruby's OpenURI library is somewhat broken under 1.8 and chokes on
otherwise valid values of http(s)_proxy. Use curl to get the mirror list
instead.

Fixes Homebrew/homebrew#23708.
2013-10-30 00:11:46 -05:00
Jack Nagel
bf93748c6a CurlDownloadStrategy: no need to to_s, name should never be nil 2013-10-12 20:19:21 -05:00
Jack Nagel
40c0ed8a9a SubversionDownloadStrategy: don't mutate URL string 2013-10-11 19:26:14 -05:00
Jack Nagel
284a3716ea CurlDownloadStrategy: dup mirror list before mutating it 2013-10-11 19:14:52 -05:00
Jack Nagel
3f0a409ec5 GitDownloadStrategy: remove redundant use of nostdout 2013-10-11 00:21:25 -05:00
Jack Nagel
9705e922e3 GitDownloadStrategy: remove redundant use of :quiet_flag 2013-10-11 00:21:25 -05:00
Jack Nagel
90b1102f1a GitDownloadStrategy: @@git is always a string, so inline it 2013-10-11 00:21:24 -05:00
Jack Nagel
069d5d2dce SubversionDownloadStrategy: @@svn is always a string, so inline it 2013-10-11 00:21:24 -05:00
Jack Nagel
932091f9e0 VCSDownloadStrategy: pull construction of @clone into superclass 2013-10-11 00:21:23 -05:00
Jack Nagel
ed7f8faed2 VCSDownloadStrategy: rename checkout_name to cache_filename 2013-10-11 00:21:23 -05:00
Jack Nagel
dd719e7ca6 Move cached_location up to VCSDownloadStrategy 2013-10-10 11:24:36 -05:00
Jack Nagel
1626282c45 download_strategy: rename @co to @clone for uniformity 2013-10-10 11:24:35 -05:00
Jack Nagel
05a2261877 MercurialDownloadStrategy: avoid creating Formula object just for opt_prefix 2013-10-10 10:31:08 -05:00
Jack Nagel
4a2fc89c46 S3DownloadStrategy: use temporary_path accessor 2013-10-09 21:55:58 -05:00
Jack Nagel
bf1d04f039 Move checkout_name from AbstractDownloadStrategy to VCSDownloadStrategy 2013-10-09 21:41:15 -05:00
Jack Nagel
3cda215881 VCSDownloadStrategy: destructure spec hash more efficiently 2013-10-09 21:41:15 -05:00
Jack Nagel
6c5a9ae0fb Extract a new superclass for VCS-based download strategies 2013-10-09 21:41:15 -05:00
Jack Nagel
e27574b27b SubversionDownloadStrategy: stop mutating revisions hash 2013-10-09 21:41:14 -05:00
Jack Nagel
3d7de0065b download_strategy: style nits 2013-10-09 21:41:14 -05:00
Jack Nagel
c790a4f45e download_strategy: rename @spec to @ref_type 2013-10-09 21:41:14 -05:00
Jack Nagel
57560c03e6 Handle invalid names in download strategies
When subformulae are initialized without a name parameter, Homebrew
assigns the name "__UNKNOWN__". This may cause collisions in the cache.

Currently CurlDownloadStrategy and its descendants handles this by
extracting the basename form the URL and using that as the cached
filename. However, other strategies simply raise an exception.

We can improve the other strategies by URL-encoding the URL string and
using that as the cached directory name.

Note that this happens very rarely, especially now that resources (which
always have a name) are preferred to subformulae. The most common case
is a subformula that specifies a head download.

Closes Homebrew/homebrew#22949.
2013-09-30 22:56:02 -05:00
Jack Nagel
a380265e90 BazaarDownloadStrategy: handle corrupt checkouts 2013-09-28 18:38:32 -05:00
Jack Nagel
06d2aa11ee Remove commented out code, this is in git after all 2013-09-28 18:38:30 -05:00
Jack Nagel
da2efa46aa SubversionDownloadStrategy: handle corrupt checkouts 2013-09-28 18:01:00 -05:00
Jack Nagel
5468733e63 MercurialDownloadStrategy: pull quietly in non-verbose mode 2013-09-28 17:09:05 -05:00