Specifically, it can accept all the VCS tag specs that head could,
making it more useful for defining stable versions that come from
VCS instead of tarballs.
A new "SoftwareSpecification" class was added to implement this.
This new class holds a "spec" for downloading a software package.
It combines the url (or head url) with the "specs" [1] that head has
been able to take.
This allows both the stable (url) and unstable (head) specification
for a software package to co-exist without stomping on each others
"specs".
[1] "specs" contain instructions on which branch/tag/revision/etc. to use
from the source repository URL.
'aka' is no longer used to define aliases, but we'll keep the method
around with a warning so non-master brews have a chance to remove any
aka's; otherwise pushing the change will break private brews and we
don't want to do that.
Replaced ENV.gcc_4_2 + comments with calls to "fails_with_llvm",
to specifically message to the user when a formula is known or suspected
to not build with LLVM. If the user specifies "--use-llvm", the message
will be displayed, but compilation will be tried anyway.
Since using LLVM is now an advanced/hidden feature instead of the
default on 10.6, we'll let the user try anyway (and submit patches
if things are now working.)
When an "install -d formula" fails, and the user gets dropped into an
interactive shell, set the HOMEBREW_DEBUG_INSTALL env var to the name
for the formula that failed. Also set variable if the user requests an
interactive install in the first place.
Note that this may be different than the formula being installed, since
it may have been a dep that failed.
Also remove todo in utils; users can now look for HOMEBREW_DEBUG_INSTALL
in their prompt command, and adjust their prompts accordingly.
Report "Expected <supplied digest>, got <file's digest>"
when verify_download_integrity sees a mismatch. (It had
been, confusingly, reporting "Expected <file's digest>".)
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
When a formula specifies both an `url` and a `head`, and the latter
specified a `:using` spec, brew would try to fetch the `url` using the
specified download strategy. With this change, brew respects `:using`
specs only when determining the download strategy for `head`.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
A 'head' in a formula can now specify which download strategy to use via
a ':using' specification:
head 'http://svn.macosforge.org/repository/darwinbuild/trunk/',
:using => :svn
This reduces the number of cases where "download_strategy" needs to be
overriden.
* Instantiate DownloadStrategy instance when creating a formula.
* Rename CurlDownloadStrategy member to clarify what it is for.
* Generate downloaded tarball name in initialize.
Linking "Library" under prefix is optional, but Library will always
exist relative to the REPOSITORY folder, so use that instead of prefix
for formula paths.