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.
optparse adds an "options" method to ARGV, and so does Homebrew.
Rename this method (and remove optparse blocking script) so that
Homebrew plays nicer with external Ruby software.
This fixes the issue where "gem install thin" would break
"brew server", for instance.
'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.
While tarballs are versioned to prevent conflicts when newer ones are downloaded,
we shouldn't be versioning the name of the VCS checkout when a formula uses
"HEAD" or a stable commit.
Append the name of the vcs system to the checkout path, in case a project changes
vcs providers, to prevent future conflicts.
If set, use "HOMEBREW_EDITOR" when editing a single file, or multiple
files in the same folder.
Note that this setting does not affect `brew edit`, since opening
all of Homebrew at once requires an editor with proper project support.
If the top-level formula being installed has any keg-only
dependencies, the lib/include/bin/pkg-config paths for those
deps will be added twice to the ENV vars.
This doesn't break anything, but does make debug output somewhat longer
than it needs to be.
Tidy this up by calling uniq on deps before iterating.
(The cause of this duplication is related to how top-level formula are
run, to support keeping patches in __END__ blocks.)
FixesHomebrew/homebrew#1110
"brew --env" will set up a build environment and then dump certain ENV
variables (CC, CXX, LD, CFLAGS, CXXFLAGS, MAKEFLAGS).
If any of CC, CXX, LD are symlinks, now also output the target compiler.
(Typically these will be symlinks from eg /usr/bin/cc to /usr/bin/gcc-4.2).
This is a diagnostic command which may be merged into --config, turned
into an external command, or removed if it doesn't turn out to be useful.
This Download Strategy is provided for use with sites that
only provide HTTPS and also have a broken cert.
Try not to need this, as we probably won't accept the forulae
into trunk.
Homebrew will now use the svn binary pointed to by HOMEBREW_SVN if set,
use a Homebrew-installed svn if present, finally falling back to the
system-provided svn binary.
If a formula (mplayer) requires a newer version of Subversion than what
Leopard provides, it can use the "StrictSubversionDownloadStrategy"
download strategy to warn the user.
These changes also fix an issue with forcing exports not working on a
stock Leopard subversion, but letting the user either specify a specific
binary or install Subversion via Homebrew and pick that up instead.