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.
Partly simpler because the output is less pretty. But I think the output is
now more useful for other tools. And comma separated lists aren't particularly
human-readable IMO either.
'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.
* Add path to external command examples to PATH.
* Only add them to PATH from inside Homebrew.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
* Move external commands path down near check
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