aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/PULL_REQUEST_TEMPLATE.md2
-rw-r--r--.gitignore19
-rw-r--r--CONTRIBUTING.md (renamed from .github/CONTRIBUTING.md)2
-rw-r--r--Library/Homebrew/README.md2
-rw-r--r--Library/Homebrew/brew.rb2
-rw-r--r--Library/Homebrew/brew.sh13
-rw-r--r--Library/Homebrew/cask/README.md2
-rw-r--r--Library/Homebrew/cask/lib/hbc/caskroom.rb8
l---------Library/Homebrew/cask/spec/support/Casks/.rubocop.yml1
l---------Library/Homebrew/cask/test/support/Casks/.rubocop.yml1
-rw-r--r--Library/Homebrew/cmd/help.rb2
-rw-r--r--Library/Homebrew/cmd/info.rb2
-rw-r--r--Library/Homebrew/cmd/list.rb6
-rw-r--r--Library/Homebrew/cmd/tap-info.rb2
-rw-r--r--Library/Homebrew/cmd/uninstall.rb2
-rw-r--r--Library/Homebrew/cmd/update-report.rb22
-rw-r--r--Library/Homebrew/cmd/update.sh41
-rw-r--r--Library/Homebrew/compat/macos.rb5
-rw-r--r--Library/Homebrew/dev-cmd/create.rb2
-rw-r--r--Library/Homebrew/dev-cmd/man.rb14
-rw-r--r--Library/Homebrew/dev-cmd/tap-readme.rb2
-rw-r--r--Library/Homebrew/dev-cmd/test-bot.rb6
-rw-r--r--Library/Homebrew/dev-cmd/test.rb2
-rw-r--r--Library/Homebrew/formula.rb20
-rw-r--r--Library/Homebrew/manpages/brew-cask.1.md37
-rw-r--r--Library/Homebrew/manpages/brew.1.md.erb12
-rw-r--r--Library/Homebrew/os.rb2
-rw-r--r--Library/Homebrew/os/mac.rb2
-rw-r--r--Library/Homebrew/os/mac/cctools_keg.rb21
-rw-r--r--Library/Homebrew/os/mac/cctools_mach.rb99
-rw-r--r--Library/Homebrew/os/mac/keg.rb34
-rw-r--r--Library/Homebrew/os/mac/mach.rb (renamed from Library/Homebrew/os/mac/ruby_mach.rb)50
-rw-r--r--Library/Homebrew/os/mac/pathname.rb12
-rw-r--r--Library/Homebrew/os/mac/ruby_keg.rb33
-rw-r--r--Library/Homebrew/os/mac/shared_mach.rb50
-rw-r--r--Library/Homebrew/os/mac/xcode.rb9
-rw-r--r--Library/Homebrew/readall.rb1
-rw-r--r--Library/Homebrew/sandbox.rb10
-rw-r--r--Library/Homebrew/tab.rb7
-rw-r--r--Library/Homebrew/test/fixtures/receipt.json6
-rw-r--r--Library/Homebrew/test/test_bash.rb2
-rw-r--r--Library/Homebrew/test/test_formula.rb21
-rw-r--r--Library/Homebrew/test/test_tab.rb29
-rw-r--r--Library/Homebrew/test/testing_env.rb2
-rw-r--r--Library/Homebrew/utils.rb29
-rw-r--r--Library/Homebrew/utils/analytics.rb2
-rw-r--r--Library/Homebrew/utils/analytics.sh2
-rw-r--r--README.md14
-rw-r--r--completions/bash/brew (renamed from etc/bash_completion.d/brew)0
-rw-r--r--completions/zsh/_brew (renamed from share/zsh/site-functions/_brew)0
-rw-r--r--completions/zsh/_brew_cask (renamed from share/zsh/site-functions/_brew_cask)0
-rw-r--r--docs/Acceptable-Formulae.md (renamed from share/doc/homebrew/Acceptable-Formulae.md)0
-rw-r--r--docs/Analytics.md (renamed from share/doc/homebrew/Analytics.md)0
-rw-r--r--docs/Bottles.md (renamed from share/doc/homebrew/Bottles.md)0
-rw-r--r--docs/Brew-Test-Bot-For-Core-Contributors.md (renamed from share/doc/homebrew/Brew-Test-Bot-For-Core-Contributors.md)0
-rw-r--r--docs/Brew-Test-Bot.md (renamed from share/doc/homebrew/Brew-Test-Bot.md)0
-rw-r--r--docs/C++-Standard-Libraries.md (renamed from share/doc/homebrew/C++-Standard-Libraries.md)0
-rw-r--r--docs/Checksum_Deprecation.md (renamed from share/doc/homebrew/Checksum_Deprecation.md)0
-rw-r--r--docs/Common-Issues-for-Core-Contributors.md (renamed from share/doc/homebrew/Common-Issues-for-Core-Contributors.md)0
-rw-r--r--docs/Common-Issues.md (renamed from share/doc/homebrew/Common-Issues.md)2
-rw-r--r--docs/Custom-GCC-and-cross-compilers.md (renamed from share/doc/homebrew/Custom-GCC-and-cross-compilers.md)0
-rw-r--r--docs/External-Commands.md (renamed from share/doc/homebrew/External-Commands.md)2
-rw-r--r--docs/FAQ.md (renamed from share/doc/homebrew/FAQ.md)2
-rw-r--r--docs/Formula-Cookbook.md (renamed from share/doc/homebrew/Formula-Cookbook.md)4
-rw-r--r--docs/Gems,-Eggs-and-Perl-Modules.md (renamed from share/doc/homebrew/Gems,-Eggs-and-Perl-Modules.md)0
-rw-r--r--docs/Homebrew-and-Python.md (renamed from share/doc/homebrew/Homebrew-and-Python.md)0
-rw-r--r--docs/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md (renamed from share/doc/homebrew/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md)0
-rw-r--r--docs/How-to-Create-and-Maintain-a-Tap.md (renamed from share/doc/homebrew/How-to-Create-and-Maintain-a-Tap.md)0
-rw-r--r--docs/How-to-build-software-outside-Homebrew-with-Homebrew-keg-only-dependencies.md (renamed from share/doc/homebrew/How-to-build-software-outside-Homebrew-with-Homebrew-keg-only-dependencies.md)0
-rw-r--r--docs/Installation.md (renamed from share/doc/homebrew/Installation.md)4
-rw-r--r--docs/Interesting-Taps-&-Forks.md (renamed from share/doc/homebrew/Interesting-Taps-&-Forks.md)0
-rw-r--r--docs/Kickstarter-Supporters.md (renamed from share/doc/homebrew/Kickstarter-Supporters.md)0
-rw-r--r--docs/Maintainer-Guidelines.md (renamed from share/doc/homebrew/Maintainer-Guidelines.md)0
-rw-r--r--docs/Maintainers-Avoiding-Burnout.md (renamed from share/doc/homebrew/Maintainers-Avoiding-Burnout.md)0
-rw-r--r--docs/Migrating-A-Formula-To-A-Tap.md (renamed from share/doc/homebrew/Migrating-A-Formula-To-A-Tap.md)0
-rw-r--r--docs/New-Maintainer-Checklist.md (renamed from share/doc/homebrew/New-Maintainer-Checklist.md)4
-rw-r--r--docs/Node-for-Formula-Authors.md (renamed from share/doc/homebrew/Node-for-Formula-Authors.md)2
-rw-r--r--docs/Prose-Style-Guidelines.md (renamed from share/doc/homebrew/Prose-Style-Guidelines.md)2
-rw-r--r--docs/Python-for-Formula-Authors.md (renamed from share/doc/homebrew/Python-for-Formula-Authors.md)0
-rw-r--r--docs/Querying-Brew.md (renamed from share/doc/homebrew/Querying-Brew.md)0
-rw-r--r--docs/README.md (renamed from share/doc/homebrew/README.md)7
-rw-r--r--docs/Rename-A-Formula.md (renamed from share/doc/homebrew/Rename-A-Formula.md)0
-rw-r--r--docs/Tips-N'-Tricks.md (renamed from share/doc/homebrew/Tips-N'-Tricks.md)2
-rw-r--r--docs/Troubleshooting.md (renamed from share/doc/homebrew/Troubleshooting.md)0
-rw-r--r--docs/Xcode.md (renamed from share/doc/homebrew/Xcode.md)2
-rw-r--r--docs/brew-tap.md (renamed from share/doc/homebrew/brew-tap.md)0
-rw-r--r--docs/brew.1.html (renamed from share/doc/homebrew/brew.1.html)24
-rw-r--r--docs/images/analytics.png (renamed from share/doc/homebrew/images/analytics.png)bin47698 -> 47698 bytes
-rw-r--r--docs/images/brew-test-bot-failed-jenkins.png (renamed from share/doc/homebrew/images/brew-test-bot-failed-jenkins.png)bin54685 -> 54685 bytes
-rw-r--r--docs/images/brew-test-bot-failed-pr.png (renamed from share/doc/homebrew/images/brew-test-bot-failed-pr.png)bin20086 -> 20086 bytes
-rw-r--r--docs/images/brew-test-bot-failed-test.png (renamed from share/doc/homebrew/images/brew-test-bot-failed-test.png)bin61395 -> 61395 bytes
-rw-r--r--docs/images/brew-test-bot-passed-jenkins.png (renamed from share/doc/homebrew/images/brew-test-bot-passed-jenkins.png)bin48217 -> 48217 bytes
-rw-r--r--docs/images/brew-test-bot-passed-pr.png (renamed from share/doc/homebrew/images/brew-test-bot-passed-pr.png)bin22722 -> 22722 bytes
-rw-r--r--docs/images/brew-test-bot-triggered-pr.png (renamed from share/doc/homebrew/images/brew-test-bot-triggered-pr.png)bin19931 -> 19931 bytes
-rw-r--r--manpages/brew-cask.1 (renamed from share/man/man1/brew-cask.1)26
-rw-r--r--manpages/brew.1 (renamed from share/man/man1/brew.1)25
96 files changed, 365 insertions, 409 deletions
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 70cc4bb85..3061f42b6 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,4 +1,4 @@
-- [ ] Have you followed the guidelines in our [Contributing](https://github.com/Homebrew/brew/blob/master/.github/CONTRIBUTING.md) document?
+- [ ] Have you followed the guidelines in our [Contributing](https://github.com/Homebrew/brew/blob/master/CONTRIBUTING.md) document?
- [ ] Have you checked to ensure there aren't other open [Pull Requests](https://github.com/Homebrew/brew/pulls) for the same change?
- [ ] Have you added an explanation of what your changes do and why you'd like us to include them?
- [ ] Have you written new tests for your changes? [Here's an example](https://github.com/Homebrew/homebrew/pull/49031).
diff --git a/.gitignore b/.gitignore
index 54caa8def..118a02ff8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,30 +35,19 @@
# Unignore our `brew` script.
!/bin/brew
-# Ignore `share` contents (again).
-/share
-/share/doc
-/share/zsh
-/share/zsh/site-functions
-
# Unignore our documentation.
!/.github
-!/share/doc/homebrew
-!/share/man/man1/brew.1
-!/share/man/man1/brew-cask.1
-
-# Ignore `etc` contents (again)
-/etc
-/etc/bash_completion.d
+!/docs
+!/manpages
# Unignore our shell completion
-!/etc/bash_completion.d/brew
-!/share/zsh/site-functions/_brew
+!/completions
# Unignore our root-level metadata files.
!/.gitignore
!/.travis.yml
!/.yardopts
!/CODEOFCONDUCT.md
+!/CONTRIBUTING.md
!/LICENSE.txt
!/README.md
diff --git a/.github/CONTRIBUTING.md b/CONTRIBUTING.md
index b9bd17f89..0ebfc9b04 100644
--- a/.github/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -5,7 +5,7 @@ First time contributing to Homebrew? Read our [Code of Conduct](https://github.c
* run `brew update` (twice)
* run and read `brew doctor`
-* read [the Troubleshooting Checklist](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Troubleshooting.md#troubleshooting)
+* read [the Troubleshooting Checklist](https://github.com/Homebrew/brew/blob/master/docs/Troubleshooting.md#troubleshooting)
* open an issue on the formula's repository
### Propose a feature
diff --git a/Library/Homebrew/README.md b/Library/Homebrew/README.md
index ccf0a02d7..b8bf5fd99 100644
--- a/Library/Homebrew/README.md
+++ b/Library/Homebrew/README.md
@@ -3,6 +3,6 @@ This is the (partially) documented public API for Homebrew.
The main class you should look at is the {Formula} class (and classes linked from there). That's the class that's used to create Homebrew formulae (i.e. package descriptions). Assume anything else you stumble upon is private.
-You may also find the [Formula Cookbook](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Formula-Cookbook.md) and [Ruby Style Guide](https://github.com/styleguide/ruby) helpful in creating formulae.
+You may also find the [Formula Cookbook](https://github.com/Homebrew/brew/blob/master/docs/Formula-Cookbook.md) and [Ruby Style Guide](https://github.com/styleguide/ruby) helpful in creating formulae.
Good luck!
diff --git a/Library/Homebrew/brew.rb b/Library/Homebrew/brew.rb
index eeadc70e1..0d1bcbdda 100644
--- a/Library/Homebrew/brew.rb
+++ b/Library/Homebrew/brew.rb
@@ -14,7 +14,7 @@ $:.unshift(HOMEBREW_LIBRARY_PATH.to_s)
require "global"
if ARGV == %w[--version] || ARGV == %w[-v]
- puts "Homebrew #{Homebrew.homebrew_version_string}"
+ puts "Homebrew #{HOMEBREW_VERSION}"
puts "Homebrew/homebrew-core #{Homebrew.core_tap_version_string}"
exit 0
end
diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh
index d33cc8678..d2c821972 100644
--- a/Library/Homebrew/brew.sh
+++ b/Library/Homebrew/brew.sh
@@ -1,4 +1,8 @@
-HOMEBREW_VERSION="0.9.9"
+HOMEBREW_VERSION="$(GIT_DIR="$HOMEBREW_REPOSITORY/.git" git describe --tags --dirty 2>/dev/null)"
+if [[ -z "$HOMEBREW_VERSION" ]]
+then
+ HOMEBREW_VERSION=">1.0.0 (no git repository)"
+fi
onoe() {
if [[ -t 2 ]] # check whether stderr is a tty.
@@ -59,6 +63,10 @@ then
odie "Cowardly refusing to continue at this prefix: $HOMEBREW_PREFIX"
fi
+# Save value to use for installing gems
+export GEM_OLD_HOME="$GEM_HOME"
+export GEM_OLD_PATH="$GEM_PATH"
+
# Users may have these set, pointing the system Ruby
# at non-system gem paths
unset GEM_HOME
@@ -263,6 +271,9 @@ update-preinstall() {
[[ -z "$HOMEBREW_NO_AUTO_UPDATE" ]] || return
[[ -z "$HOMEBREW_UPDATE_PREINSTALL" ]] || return
+ # Allow auto-update migration now we have a fix in place (below in this function).
+ export HOMEBREW_ENABLE_AUTO_UPDATE_MIGRATION="1"
+
if [[ "$HOMEBREW_COMMAND" = "install" || "$HOMEBREW_COMMAND" = "upgrade" || "$HOMEBREW_COMMAND" = "tap" ]]
then
brew update --preinstall
diff --git a/Library/Homebrew/cask/README.md b/Library/Homebrew/cask/README.md
index 1d0dc5882..0dc494af1 100644
--- a/Library/Homebrew/cask/README.md
+++ b/Library/Homebrew/cask/README.md
@@ -6,7 +6,7 @@ Homebrew-Cask extends [Homebrew](http://brew.sh) and brings its elegance, simpli
We do this by providing a friendly Homebrew-style CLI workflow for the administration of macOS applications distributed as binaries.
-It’s implemented as a `homebrew` [external command](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/External-Commands.md) called `cask`.
+It’s implemented as a `homebrew` [external command](https://github.com/Homebrew/brew/blob/master/docs/External-Commands.md) called `cask`.
[![Join the chat at https://gitter.im/caskroom/homebrew-cask](https://img.shields.io/badge/gitter-join%20chat-blue.svg)](https://gitter.im/caskroom/homebrew-cask)
diff --git a/Library/Homebrew/cask/lib/hbc/caskroom.rb b/Library/Homebrew/cask/lib/hbc/caskroom.rb
index 7d02f3fa4..7dcb35d41 100644
--- a/Library/Homebrew/cask/lib/hbc/caskroom.rb
+++ b/Library/Homebrew/cask/lib/hbc/caskroom.rb
@@ -5,7 +5,13 @@ module Hbc::Caskroom
repo_caskroom = Hbc.homebrew_repository.join("Caskroom")
if !Hbc.caskroom.exist? && repo_caskroom.directory?
ohai "Moving Caskroom from HOMEBREW_REPOSITORY to HOMEBREW_PREFIX"
- FileUtils.mv repo_caskroom, Hbc.caskroom
+
+ if Hbc.caskroom.parent.writable?
+ FileUtils.mv repo_caskroom, Hbc.caskroom
+ else
+ opoo "#{Hbc.caskroom.parent} is not writable, sudo is needed to move the Caskroom."
+ system "/usr/bin/sudo", "--", "/bin/mv", "--", repo_caskroom.to_s, Hbc.caskroom.parent.to_s
+ end
end
end
diff --git a/Library/Homebrew/cask/spec/support/Casks/.rubocop.yml b/Library/Homebrew/cask/spec/support/Casks/.rubocop.yml
deleted file mode 120000
index ee5c2b948..000000000
--- a/Library/Homebrew/cask/spec/support/Casks/.rubocop.yml
+++ /dev/null
@@ -1 +0,0 @@
-../../../Casks/.rubocop.yml \ No newline at end of file
diff --git a/Library/Homebrew/cask/test/support/Casks/.rubocop.yml b/Library/Homebrew/cask/test/support/Casks/.rubocop.yml
deleted file mode 120000
index ee5c2b948..000000000
--- a/Library/Homebrew/cask/test/support/Casks/.rubocop.yml
+++ /dev/null
@@ -1 +0,0 @@
-../../../Casks/.rubocop.yml \ No newline at end of file
diff --git a/Library/Homebrew/cmd/help.rb b/Library/Homebrew/cmd/help.rb
index 0bf3d0d8d..2a814b90b 100644
--- a/Library/Homebrew/cmd/help.rb
+++ b/Library/Homebrew/cmd/help.rb
@@ -16,7 +16,7 @@ Troubleshooting:
Developers:
brew create [URL [--no-fetch]]
brew edit [FORMULA...]
- https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Formula-Cookbook.md
+ https://github.com/Homebrew/brew/blob/master/docs/Formula-Cookbook.md
Further help:
man brew
diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb
index 0310ab624..2474aad57 100644
--- a/Library/Homebrew/cmd/info.rb
+++ b/Library/Homebrew/cmd/info.rb
@@ -14,7 +14,7 @@
#: information on all installed formulae.
#:
#: See the docs for examples of using the JSON:
-#: <https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Querying-Brew.md>
+#: <https://github.com/Homebrew/brew/blob/master/docs/Querying-Brew.md>
require "blacklist"
require "caveats"
diff --git a/Library/Homebrew/cmd/list.rb b/Library/Homebrew/cmd/list.rb
index ba236068d..4fdd8a85e 100644
--- a/Library/Homebrew/cmd/list.rb
+++ b/Library/Homebrew/cmd/list.rb
@@ -64,6 +64,8 @@ module Homebrew
UNBREWED_EXCLUDE_PATHS = %w[
.github/*
bin/brew
+ completions/zsh/_brew
+ docs/*
lib/gdk-pixbuf-2.0/*
lib/gio/*
lib/node_modules/*
@@ -73,13 +75,11 @@ module Homebrew
lib/ruby/gems/[12].*
lib/ruby/site_ruby/[12].*
lib/ruby/vendor_ruby/[12].*
+ manpages/brew.1
share/pypy/*
share/pypy3/*
- share/doc/homebrew/*
share/info/dir
- share/man/man1/brew.1
share/man/whatis
- share/zsh/site-functions/_brew
].freeze
def list_unbrewed
diff --git a/Library/Homebrew/cmd/tap-info.rb b/Library/Homebrew/cmd/tap-info.rb
index b599cb591..432d51287 100644
--- a/Library/Homebrew/cmd/tap-info.rb
+++ b/Library/Homebrew/cmd/tap-info.rb
@@ -13,7 +13,7 @@
#: Pass `--installed` to get information on installed taps.
#:
#: See the docs for examples of using the JSON:
-#: <https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Querying-Brew.md>
+#: <https://github.com/Homebrew/brew/blob/master/docs/Querying-Brew.md>
require "tap"
diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb
index 6ea45a770..f4ca8ff87 100644
--- a/Library/Homebrew/cmd/uninstall.rb
+++ b/Library/Homebrew/cmd/uninstall.rb
@@ -25,7 +25,7 @@ module Homebrew
versions = rack.subdirs.map(&:basename)
verb = versions.length == 1 ? "is" : "are"
puts "#{keg.name} #{versions.join(", ")} #{verb} still installed."
- puts "Remove them all with `brew uninstall --force #{keg.name}`."
+ puts "Remove all versions with `brew uninstall --force #{keg.name}`."
end
end
end
diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb
index c37a181c9..1e9c8ccd3 100644
--- a/Library/Homebrew/cmd/update-report.rb
+++ b/Library/Homebrew/cmd/update-report.rb
@@ -99,8 +99,11 @@ module Homebrew
Homebrew.failed = true if ENV["HOMEBREW_UPDATE_FAILED"]
- # This should always be the last thing to run
- migrate_legacy_repository_if_necessary
+ # This should always be the last thing to run (but skip on auto-update).
+ if !ARGV.include?("--preinstall") ||
+ ENV["HOMEBREW_ENABLE_AUTO_UPDATE_MIGRATION"]
+ migrate_legacy_repository_if_necessary
+ end
end
private
@@ -291,15 +294,20 @@ module Homebrew
end
def link_completions_and_docs(repository = HOMEBREW_REPOSITORY)
- return if HOMEBREW_PREFIX.to_s == repository.to_s
command = "brew update"
- link_src_dst_dirs(repository/"etc/bash_completion.d",
+ link_src_dst_dirs(repository/"completions/bash",
HOMEBREW_PREFIX/"etc/bash_completion.d", command)
- link_src_dst_dirs(repository/"share/doc/homebrew",
+ link_src_dst_dirs(repository/"docs",
HOMEBREW_PREFIX/"share/doc/homebrew", command, link_dir: true)
- link_src_dst_dirs(repository/"share/zsh/site-functions",
+ link_src_dst_dirs(repository/"completions/zsh",
HOMEBREW_PREFIX/"share/zsh/site-functions", command)
- link_path_manpages(repository/"share", command)
+ link_src_dst_dirs(repository/"manpages",
+ HOMEBREW_PREFIX/"share/man/man1", command)
+ rescue => e
+ ofail <<-EOS.undent
+ Failed to link all completions, docs and manpages:
+ #{e}
+ EOS
end
end
diff --git a/Library/Homebrew/cmd/update.sh b/Library/Homebrew/cmd/update.sh
index b57691893..5f082024d 100644
--- a/Library/Homebrew/cmd/update.sh
+++ b/Library/Homebrew/cmd/update.sh
@@ -215,7 +215,20 @@ merge_or_rebase() {
trap reset_on_interrupt SIGINT
- REMOTE_REF="origin/$UPSTREAM_BRANCH"
+ if [[ "$DIR" = "$HOMEBREW_REPOSITORY" && -z "$HOMEBREW_NO_UPDATE_CLEANUP" ]]
+ then
+ UPSTREAM_TAG="$(git tag --list --sort=-version:refname | head -n1)"
+ else
+ UPSTREAM_TAG=""
+ fi
+
+ if [ -n "$UPSTREAM_TAG" ]
+ then
+ REMOTE_REF="refs/tags/$UPSTREAM_TAG"
+ UPSTREAM_BRANCH="v$UPSTREAM_TAG"
+ else
+ REMOTE_REF="origin/$UPSTREAM_BRANCH"
+ fi
if [[ -n "$(git status --untracked-files=all --porcelain 2>/dev/null)" ]]
then
@@ -242,19 +255,13 @@ EOS
fi
INITIAL_BRANCH="$(git symbolic-ref --short HEAD 2>/dev/null)"
- if [[ "$INITIAL_BRANCH" != "$UPSTREAM_BRANCH" && -n "$INITIAL_BRANCH" ]]
+ if [[ -n "$UPSTREAM_TAG" ]] ||
+ [[ "$INITIAL_BRANCH" != "$UPSTREAM_BRANCH" && -n "$INITIAL_BRANCH" ]]
then
-
- if [[ -z "$HOMEBREW_NO_UPDATE_CLEANUP" ]]
- then
- echo "Checking out $UPSTREAM_BRANCH in $DIR..."
- echo "To checkout $INITIAL_BRANCH in $DIR run:"
- echo " 'cd $DIR && git checkout $INITIAL_BRANCH"
- fi
-
# Recreate and check out `#{upstream_branch}` if unable to fast-forward
# it to `origin/#{@upstream_branch}`. Otherwise, just check it out.
- if git merge-base --is-ancestor "$UPSTREAM_BRANCH" "$REMOTE_REF" &>/dev/null
+ if [[ -z "$UPSTREAM_TAG" ]] &&
+ git merge-base --is-ancestor "$UPSTREAM_BRANCH" "$REMOTE_REF" &>/dev/null
then
git checkout --force "$UPSTREAM_BRANCH" "${QUIET_ARGS[@]}"
else
@@ -337,7 +344,7 @@ EOS
set -x
fi
- if [[ -z "$HOMEBREW_UPDATE_CLEANUP" ]]
+ if [[ -z "$HOMEBREW_UPDATE_CLEANUP" && -z "$HOMEBREW_UPDATE_TO_TAG" ]]
then
if [[ -n "$HOMEBREW_DEVELOPER" || -n "$HOMEBREW_DEV_CMD_RUN" ]]
then
@@ -425,6 +432,12 @@ EOS
declare UPSTREAM_BRANCH"$TAP_VAR"="$UPSTREAM_BRANCH_DIR"
declare PREFETCH_REVISION"$TAP_VAR"="$(git rev-parse -q --verify refs/remotes/origin/"$UPSTREAM_BRANCH_DIR")"
+ # Force a full update if we don't have any tags.
+ if [[ "$DIR" = "$HOMEBREW_REPOSITORY" && -z "$(git tag --list)" ]]
+ then
+ HOMEBREW_UPDATE_FORCE=1
+ fi
+
if [[ -z "$HOMEBREW_UPDATE_FORCE" ]]
then
[[ -n "$SKIP_FETCH_BREW_REPOSITORY" && "$DIR" = "$HOMEBREW_REPOSITORY" ]] && continue
@@ -480,10 +493,10 @@ EOS
if [[ -n "$HOMEBREW_UPDATE_PREINSTALL" ]]
then
- git fetch --force "${QUIET_ARGS[@]}" origin \
+ git fetch --tags --force "${QUIET_ARGS[@]}" origin \
"refs/heads/$UPSTREAM_BRANCH_DIR:refs/remotes/origin/$UPSTREAM_BRANCH_DIR" 2>/dev/null
else
- if ! git fetch --force "${QUIET_ARGS[@]}" origin \
+ if ! git fetch --tags --force "${QUIET_ARGS[@]}" origin \
"refs/heads/$UPSTREAM_BRANCH_DIR:refs/remotes/origin/$UPSTREAM_BRANCH_DIR"
then
echo "Fetching $DIR failed!" >>"$update_failed_file"
diff --git a/Library/Homebrew/compat/macos.rb b/Library/Homebrew/compat/macos.rb
index 957a0b725..6b0166e40 100644
--- a/Library/Homebrew/compat/macos.rb
+++ b/Library/Homebrew/compat/macos.rb
@@ -136,6 +136,11 @@ module OS
odeprecated "MacOS.has_apple_developer_tools?", "DevelopmentTools.installed?"
DevelopmentTools.installed?
end
+
+ def release
+ odeprecated "MacOS.release", "MacOS.version"
+ version
+ end
end
end
end
diff --git a/Library/Homebrew/dev-cmd/create.rb b/Library/Homebrew/dev-cmd/create.rb
index 1667fdfc7..19fd251b7 100644
--- a/Library/Homebrew/dev-cmd/create.rb
+++ b/Library/Homebrew/dev-cmd/create.rb
@@ -154,7 +154,7 @@ class FormulaCreator
end
def template; <<-EOS.undent
- # Documentation: https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Formula-Cookbook.md
+ # Documentation: https://github.com/Homebrew/brew/blob/master/docs/Formula-Cookbook.md
# http://www.rubydoc.info/github/Homebrew/brew/master/Formula
# PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST!
diff --git a/Library/Homebrew/dev-cmd/man.rb b/Library/Homebrew/dev-cmd/man.rb
index 8b20158ef..871fbf46c 100644
--- a/Library/Homebrew/dev-cmd/man.rb
+++ b/Library/Homebrew/dev-cmd/man.rb
@@ -7,8 +7,8 @@ require "ostruct"
module Homebrew
SOURCE_PATH = HOMEBREW_LIBRARY_PATH/"manpages"
- TARGET_MAN_PATH = HOMEBREW_REPOSITORY/"share/man/man1"
- TARGET_DOC_PATH = HOMEBREW_REPOSITORY/"share/doc/homebrew"
+ TARGET_MAN_PATH = HOMEBREW_REPOSITORY/"manpages"
+ TARGET_DOC_PATH = HOMEBREW_REPOSITORY/"docs"
def man
raise UsageError unless ARGV.named.empty?
@@ -51,9 +51,13 @@ module Homebrew
variables[:commands] = path_glob_commands("#{HOMEBREW_LIBRARY_PATH}/cmd/*.{rb,sh}")
variables[:developer_commands] = path_glob_commands("#{HOMEBREW_LIBRARY_PATH}/dev-cmd/*.{rb,sh}")
- variables[:maintainers] = (HOMEBREW_REPOSITORY/"README.md")
- .read[/Homebrew's current maintainers are (.*)\./, 1]
- .scan(/\[([^\]]*)\]/).flatten
+ readme = HOMEBREW_REPOSITORY/"README.md"
+ variables[:lead_maintainer] = readme.read[/(Homebrew's lead maintainer .*\.)/, 1]
+ .gsub(/\[([^\]]+)\]\([^)]+\)/, '\1')
+ variables[:maintainers] = readme.read[/(Homebrew's current maintainers .*\.)/, 1]
+ .gsub(/\[([^\]]+)\]\([^)]+\)/, '\1')
+ variables[:former_maintainers] = readme.read[/(Former maintainers .*\.)/, 1]
+ .gsub(/\[([^\]]+)\]\([^)]+\)/, '\1')
ERB.new(template, nil, ">").result(variables.instance_eval { binding })
end
diff --git a/Library/Homebrew/dev-cmd/tap-readme.rb b/Library/Homebrew/dev-cmd/tap-readme.rb
index f88d43389..e1a3e0eb4 100644
--- a/Library/Homebrew/dev-cmd/tap-readme.rb
+++ b/Library/Homebrew/dev-cmd/tap-readme.rb
@@ -24,7 +24,7 @@ module Homebrew
```
## Documentation
- `brew help`, `man brew` or check [Homebrew's documentation](https://github.com/Homebrew/brew/tree/master/share/doc/homebrew#readme).
+ `brew help`, `man brew` or check [Homebrew's documentation](https://github.com/Homebrew/brew/tree/master/docs#readme).
EOS
puts template if ARGV.verbose?
diff --git a/Library/Homebrew/dev-cmd/test-bot.rb b/Library/Homebrew/dev-cmd/test-bot.rb
index ce083850c..7a5853c48 100644
--- a/Library/Homebrew/dev-cmd/test-bot.rb
+++ b/Library/Homebrew/dev-cmd/test-bot.rb
@@ -1021,6 +1021,7 @@ module Homebrew
ENV["HOMEBREW_NO_EMOJI"] = "1"
ENV["HOMEBREW_FAIL_LOG_LINES"] = "150"
ENV["HOMEBREW_EXPERIMENTAL_FILTER_FLAGS_ON_DEPS"] = "1"
+ ENV["PATH"] = "#{HOMEBREW_PREFIX}/bin:#{HOMEBREW_PREFIX}/sbin:#{ENV["PATH"]}"
travis = !ENV["TRAVIS"].nil?
if travis
@@ -1075,7 +1076,10 @@ module Homebrew
# because Formula parsing and/or git commit hash lookup depends on it.
# At the same time, make sure Tap is not a shallow clone.
# bottle rebuild and bottle upload rely on full clone.
- safe_system "brew", "tap", tap.name, "--full" if tap
+ if tap
+ ENV["HOMEBREW_UPDATE_TO_TAG"] = "1"
+ safe_system "brew", "tap", tap.name, "--full"
+ end
if ARGV.include? "--ci-upload"
return test_ci_upload(tap)
diff --git a/Library/Homebrew/dev-cmd/test.rb b/Library/Homebrew/dev-cmd/test.rb
index a80fa5e4f..c20edf804 100644
--- a/Library/Homebrew/dev-cmd/test.rb
+++ b/Library/Homebrew/dev-cmd/test.rb
@@ -1,5 +1,5 @@
#: * `test` [`--devel`|`--HEAD`] [`--debug`] [`--keep-tmp`] <formula>:
-#: A few formulae provide a test method. `brew test` <formula> runs this
+#: Most formulae provide a test method. `brew test` <formula> runs this
#: test method. There is no standard output or return code, but it should
#: generally indicate to the user if something is wrong with the installed
#: formula.
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index cdbc90576..4b3ef33f2 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -26,7 +26,7 @@ require "migrator"
# @see SharedEnvExtension
# @see FileUtils
# @see Pathname
-# @see http://www.rubydoc.info/github/Homebrew/brew/file/share/doc/homebrew/Formula-Cookbook.md Formula Cookbook
+# @see http://www.rubydoc.info/github/Homebrew/brew/file/docs/Formula-Cookbook.md Formula Cookbook
# @see https://github.com/styleguide/ruby Ruby Style Guide
#
# <pre>class Wget < Formula
@@ -1266,7 +1266,7 @@ class Formula
# Note: there isn't a std_autotools variant because autotools is a lot
# less consistent and the standard parameters are more memorable.
def std_cmake_args
- %W[
+ args = %W[
-DCMAKE_C_FLAGS_RELEASE=-DNDEBUG
-DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG
-DCMAKE_INSTALL_PREFIX=#{prefix}
@@ -1275,6 +1275,14 @@ class Formula
-DCMAKE_VERBOSE_MAKEFILE=ON
-Wno-dev
]
+
+ # Avoid false positives for clock_gettime support on 10.11.
+ # CMake cache entries for other weak symbols may be added here as needed.
+ if MacOS.version == "10.11" && MacOS::Xcode.installed? && MacOS::Xcode.version >= "8.0"
+ args << "-DHAVE_CLOCK_GETTIME:INTERNAL=0"
+ end
+
+ args
end
# an array of all core {Formula} names
@@ -1450,6 +1458,12 @@ class Formula
Requirement.expand(self, &block)
end
+ # Returns a list of Dependency objects that are required at runtime.
+ # @private
+ def runtime_dependencies
+ recursive_dependencies.reject(&:build?)
+ end
+
# @private
def to_hash
hsh = {
@@ -1967,7 +1981,7 @@ class Formula
# and you haven't passed or previously used any options on this formula.
#
# If you maintain your own repository, you can add your own bottle links.
- # https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Bottles.md
+ # https://github.com/Homebrew/brew/blob/master/docs/Bottles.md
# You can ignore this block entirely if submitting to Homebrew/Homebrew, It'll be
# handled for you by the Brew Test Bot.
#
diff --git a/Library/Homebrew/manpages/brew-cask.1.md b/Library/Homebrew/manpages/brew-cask.1.md
index fc14d54d1..4e160b527 100644
--- a/Library/Homebrew/manpages/brew-cask.1.md
+++ b/Library/Homebrew/manpages/brew-cask.1.md
@@ -19,10 +19,10 @@ names, and other aspects of this manual are still subject to change.
## FREQUENTLY USED COMMANDS
- * `install [--force] [--skip-cask-deps] [--require-sha]` <token> [ <token> ... ]:
+ * `install` [--force] [--skip-cask-deps] [--require-sha] <token> [ <token> ... ]:
Install Cask identified by <token>.
- * `uninstall [--force]` <token> [ <token> ... ]:
+ * `uninstall` [--force] <token> [ <token> ... ]:
Uninstall Cask identified by <token>.
* `search` <text> | /<regexp>/:
@@ -69,7 +69,7 @@ names, and other aspects of this manual are still subject to change.
* `info` or `abv` <token> [ <token> ... ]:
Display information about the given Cask.
- * `install [--force] [--skip-cask-deps] [--require-sha]` <token> [ <token> ... ]:
+ * `install` [--force] [--skip-cask-deps] [--require-sha] <token> [ <token> ... ]:
Install the given Cask. With `--force`, re-install even if the Cask
appears to be already present. With `--skip-cask-deps`, skip any Cask
dependencies. `--require-sha` will abort installation if the Cask does not
@@ -78,42 +78,29 @@ names, and other aspects of this manual are still subject to change.
<token> is usually the ID of a Cask as returned by `brew cask search`,
but see [OTHER WAYS TO SPECIFY A CASK][] for variations.
- * `list` or `ls` [-1 | -l] [ <token> ... ]:
+ * `list` or `ls` [-1] [--versions] [ <token> ... ]:
Without any arguments, list all installed Casks. With `-1`, always
- format the output in a single column. With `-l`, give a more detailed
- listing.
+ format the output in a single column. With `--versions`, show all installed
+ versions.
If <token> is given, summarize the staged files associated with the
given Cask.
- * `search` or `-S`:
- Display all Casks available for install.
-
- * `search` or `-S` <text> | /<regexp>/:
- Perform a substring search of known Cask tokens for <text>. If the text
- is delimited by slashes, it is interpreted as a Ruby regular expression.
+ * `search` or `-S` [<text> | /<regexp>/]:
+ Without argument, display all Casks available for install, otherwise
+ perform a substring search of known Cask tokens for <text> or, if the
+ text is delimited by slashes (/<regexp>/), it is interpreted as a
+ Ruby regular expression.
* `style` [--fix] [ <token> ... ]:
Check the given Casks for correct style using [RuboCop Cask](https://github.com/caskroom/rubocop-cask).
If no tokens are given on the command line, all Casks are checked.
With `--fix`, auto-correct any style errors if possible.
- * `uninstall [--force]` or `rm` or `remove` <token> [ <token> ... ]:
+ * `uninstall` or `rm` or `remove` [--force] <token> [ <token> ... ]:
Uninstall the given Cask. With `--force`, uninstall even if the Cask
does not appear to be present.
- Note that `uninstall --force` is currently imperfect. It will follow
- the `uninstall` instructions from *newest* Cask definition, even if
- the given Cask has changed since you installed it. The result is that
- `uninstall --force` will always succeed in removing relevant files
- under `<Caskroom_path>`, but will sometimes fail to remove relevant
- installed files outside of it. This issue is being
- addressed.
-
- `uninstall` without `--force` is also imperfect. It may be unable to
- perform an `uninstall` operation if the given Cask has changed since you
- installed it. This issue is being addressed.
-
* `update`:
For convenience. `brew cask update` is a synonym for `brew update`.
diff --git a/Library/Homebrew/manpages/brew.1.md.erb b/Library/Homebrew/manpages/brew.1.md.erb
index bb6a15261..bc2140b40 100644
--- a/Library/Homebrew/manpages/brew.1.md.erb
+++ b/Library/Homebrew/manpages/brew.1.md.erb
@@ -62,7 +62,7 @@ scripts that reside somewhere in the `PATH`, named `brew-`<cmdname> or
to create your own commands without modifying Homebrew's internals.
Instructions for creating your own commands can be found in the docs:
-<https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/External-Commands.md>
+<https://github.com/Homebrew/brew/blob/master/docs/External-Commands.md>
## SPECIFYING FORMULAE
@@ -183,7 +183,7 @@ can take several different forms:
*Default:* the number of available CPU cores.
* `HOMEBREW_NO_ANALYTICS`:
- If set, Homebrew will not send analytics. See: <https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Analytics.md#analytics>
+ If set, Homebrew will not send analytics. See: <https://github.com/Homebrew/brew/blob/master/docs/Analytics.md#analytics>
* `HOMEBREW_NO_AUTO_UPDATE`:
If set, Homebrew will not auto-update before running `brew install`,
@@ -249,15 +249,17 @@ If your proxy requires authentication:
## SEE ALSO
-Homebrew Documentation: <https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/>
+Homebrew Documentation: <https://github.com/Homebrew/brew/blob/master/docs/>
`git`(1), `git-log`(1)
## AUTHORS
-Homebrew's current maintainers are <%= maintainers[0...-1].join(", ") %> and <%= maintainers[-1] %>.
+<%= lead_maintainer.concat("\n") %>
-Former maintainers with significant contributions include Jack Nagel, Adam Vandenberg and Homebrew's creator: Max Howell.
+<%= maintainers.concat("\n") %>
+
+<%= former_maintainers.concat("\n") %>
## BUGS
diff --git a/Library/Homebrew/os.rb b/Library/Homebrew/os.rb
index d7b4d8807..b49bbff64 100644
--- a/Library/Homebrew/os.rb
+++ b/Library/Homebrew/os.rb
@@ -19,7 +19,7 @@ module OS
::MACOS_FULL_VERSION = OS::Mac.full_version.to_s.freeze
::MACOS_VERSION = OS::Mac.version.to_s.freeze
elsif OS.linux?
- ISSUES_URL = "https://github.com/Homebrew/linuxbrew/wiki/troubleshooting".freeze
+ ISSUES_URL = "https://github.com/Linuxbrew/brew/wiki/troubleshooting".freeze
PATH_OPEN = "xdg-open".freeze
end
end
diff --git a/Library/Homebrew/os/mac.rb b/Library/Homebrew/os/mac.rb
index f9bf2e878..f121cbbd3 100644
--- a/Library/Homebrew/os/mac.rb
+++ b/Library/Homebrew/os/mac.rb
@@ -34,7 +34,7 @@ module OS
def outdated_release?
# TODO: bump version when new OS is released
- version < "10.9"
+ version < "10.10"
end
def cat
diff --git a/Library/Homebrew/os/mac/cctools_keg.rb b/Library/Homebrew/os/mac/cctools_keg.rb
deleted file mode 100644
index cd928f522..000000000
--- a/Library/Homebrew/os/mac/cctools_keg.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-module CctoolsKeg
- def install_name_tool(*args)
- @require_install_name_tool = true
- tool = MacOS.install_name_tool
- system(tool, *args) || raise(ErrorDuringExecution.new(tool, args))
- end
-
- def require_install_name_tool?
- !!@require_install_name_tool
- end
-
- def change_dylib_id(id, file)
- puts "Changing dylib ID of #{file}\n from #{file.dylib_id}\n to #{id}" if ARGV.debug?
- install_name_tool("-id", id, file)
- end
-
- def change_install_name(old, new, file)
- puts "Changing install name in #{file}\n from #{old}\n to #{new}" if ARGV.debug?
- install_name_tool("-change", old, new, file)
- end
-end
diff --git a/Library/Homebrew/os/mac/cctools_mach.rb b/Library/Homebrew/os/mac/cctools_mach.rb
deleted file mode 100644
index 7e8b96b83..000000000
--- a/Library/Homebrew/os/mac/cctools_mach.rb
+++ /dev/null
@@ -1,99 +0,0 @@
-module CctoolsMachO
- # @private
- OTOOL_RX = /\t(.*) \(compatibility version (?:\d+\.)*\d+, current version (?:\d+\.)*\d+\)/
-
- # Mach-O binary methods, see:
- # /usr/include/mach-o/loader.h
- # /usr/include/mach-o/fat.h
- # @private
- def mach_data
- @mach_data ||= begin
- offsets = []
- mach_data = []
-
- header = read(8).unpack("N2")
- case header[0]
- when 0xcafebabe # universal
- header[1].times do |i|
- # header[1] is the number of struct fat_arch in the file.
- # Each struct fat_arch is 20 bytes, and the 'offset' member
- # begins 8 bytes into the struct, with an additional 8 byte
- # offset due to the struct fat_header at the beginning of
- # the file.
- offsets << read(4, 20*i + 16).unpack("N")[0]
- end
- when 0xcefaedfe, 0xcffaedfe, 0xfeedface, 0xfeedfacf # Single arch
- offsets << 0
- else
- raise "Not a Mach-O binary."
- end
-
- offsets.each do |offset|
- arch = case read(8, offset).unpack("N2")
- when [0xcefaedfe, 0x07000000] then :i386
- when [0xcffaedfe, 0x07000001] then :x86_64
- when [0xfeedface, 0x00000012] then :ppc7400
- when [0xfeedfacf, 0x01000012] then :ppc64
- else :dunno
- end
-
- type = case read(4, offset + 12).unpack("N")[0]
- when 0x00000002, 0x02000000 then :executable
- when 0x00000006, 0x06000000 then :dylib
- when 0x00000008, 0x08000000 then :bundle
- else :dunno
- end
-
- mach_data << { arch: arch, type: type }
- end
- mach_data
- rescue
- []
- end
- end
-
- # @private
- class Metadata
- attr_reader :path, :dylib_id, :dylibs
-
- def initialize(path)
- @path = path
- @dylib_id, @dylibs = parse_otool_L_output
- end
-
- def parse_otool_L_output
- args = ["-L", path.expand_path.to_s]
- libs = Utils.popen_read(OS::Mac.otool, *args).split("\n")
- unless $?.success?
- raise ErrorDuringExecution.new(OS::Mac.otool, args)
- end
-
- libs.shift # first line is the filename
-
- id = libs.shift[OTOOL_RX, 1] if path.dylib?
- libs.map! { |lib| lib[OTOOL_RX, 1] }.compact!
-
- [id, libs]
- end
- end
-
- # @private
- def mach_metadata
- @mach_metadata ||= Metadata.new(self)
- end
-
- # Returns an array containing all dynamically-linked libraries, based on the
- # output of otool. This returns the install names, so these are not guaranteed
- # to be absolute paths.
- # Returns an empty array both for software that links against no libraries,
- # and for non-mach objects.
- # @private
- def dynamically_linked_libraries
- mach_metadata.dylibs
- end
-
- # @private
- def dylib_id
- mach_metadata.dylib_id
- end
-end
diff --git a/Library/Homebrew/os/mac/keg.rb b/Library/Homebrew/os/mac/keg.rb
index 201c57b50..8505647a4 100644
--- a/Library/Homebrew/os/mac/keg.rb
+++ b/Library/Homebrew/os/mac/keg.rb
@@ -1,9 +1,31 @@
class Keg
- if !ENV["HOMEBREW_NO_RUBY_MACHO"]
- require "os/mac/ruby_keg"
- include RubyKeg
- else
- require "os/mac/cctools_keg"
- include CctoolsKeg
+ def change_dylib_id(id, file)
+ @require_install_name_tool = true
+ puts "Changing dylib ID of #{file}\n from #{file.dylib_id}\n to #{id}" if ARGV.debug?
+ MachO::Tools.change_dylib_id(file, id, strict: false)
+ rescue MachO::MachOError
+ onoe <<-EOS.undent
+ Failed changing dylib ID of #{file}
+ from #{file.dylib_id}
+ to #{id}
+ EOS
+ raise
+ end
+
+ def change_install_name(old, new, file)
+ @require_install_name_tool = true
+ puts "Changing install name in #{file}\n from #{old}\n to #{new}" if ARGV.debug?
+ MachO::Tools.change_install_name(file, old, new, strict: false)
+ rescue MachO::MachOError
+ onoe <<-EOS.undent
+ Failed changing install name in #{file}
+ from #{old}
+ to #{new}
+ EOS
+ raise
+ end
+
+ def require_install_name_tool?
+ @require_install_name_tool
end
end
diff --git a/Library/Homebrew/os/mac/ruby_mach.rb b/Library/Homebrew/os/mac/mach.rb
index 5d0e75c31..07598a23d 100644
--- a/Library/Homebrew/os/mac/ruby_mach.rb
+++ b/Library/Homebrew/os/mac/mach.rb
@@ -1,6 +1,7 @@
require "vendor/macho/macho"
+require "os/mac/architecture_list"
-module RubyMachO
+module MachO
# @private
def macho
@macho ||= begin
@@ -57,4 +58,51 @@ module RubyMachO
def dylib_id
macho.dylib_id
end
+
+ def archs
+ mach_data.map { |m| m.fetch :arch }.extend(ArchitectureListExtension)
+ end
+
+ def arch
+ case archs.length
+ when 0 then :dunno
+ when 1 then archs.first
+ else :universal
+ end
+ end
+
+ def universal?
+ arch == :universal
+ end
+
+ def i386?
+ arch == :i386
+ end
+
+ def x86_64?
+ arch == :x86_64
+ end
+
+ def ppc7400?
+ arch == :ppc7400
+ end
+
+ def ppc64?
+ arch == :ppc64
+ end
+
+ # @private
+ def dylib?
+ mach_data.any? { |m| m.fetch(:type) == :dylib }
+ end
+
+ # @private
+ def mach_o_executable?
+ mach_data.any? { |m| m.fetch(:type) == :executable }
+ end
+
+ # @private
+ def mach_o_bundle?
+ mach_data.any? { |m| m.fetch(:type) == :bundle }
+ end
end
diff --git a/Library/Homebrew/os/mac/pathname.rb b/Library/Homebrew/os/mac/pathname.rb
index b76c4333a..9b65d7ac0 100644
--- a/Library/Homebrew/os/mac/pathname.rb
+++ b/Library/Homebrew/os/mac/pathname.rb
@@ -1,13 +1,5 @@
-require "os/mac/shared_mach"
+require "os/mac/mach"
class Pathname
- if !ENV["HOMEBREW_NO_RUBY_MACHO"]
- require "os/mac/ruby_mach"
- include RubyMachO
- else
- require "os/mac/cctools_mach"
- include CctoolsMachO
- end
-
- include SharedMachO
+ include MachO
end
diff --git a/Library/Homebrew/os/mac/ruby_keg.rb b/Library/Homebrew/os/mac/ruby_keg.rb
deleted file mode 100644
index e476b174f..000000000
--- a/Library/Homebrew/os/mac/ruby_keg.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-require "vendor/macho/macho"
-
-module RubyKeg
- def change_dylib_id(id, file)
- @require_install_name_tool = true
- puts "Changing dylib ID of #{file}\n from #{file.dylib_id}\n to #{id}" if ARGV.debug?
- MachO::Tools.change_dylib_id(file, id, strict: false)
- rescue MachO::MachOError
- onoe <<-EOS.undent
- Failed changing dylib ID of #{file}
- from #{file.dylib_id}
- to #{id}
- EOS
- raise
- end
-
- def change_install_name(old, new, file)
- @require_install_name_tool = true
- puts "Changing install name in #{file}\n from #{old}\n to #{new}" if ARGV.debug?
- MachO::Tools.change_install_name(file, old, new, strict: false)
- rescue MachO::MachOError
- onoe <<-EOS.undent
- Failed changing install name in #{file}
- from #{old}
- to #{new}
- EOS
- raise
- end
-
- def require_install_name_tool?
- !!@require_install_name_tool
- end
-end
diff --git a/Library/Homebrew/os/mac/shared_mach.rb b/Library/Homebrew/os/mac/shared_mach.rb
deleted file mode 100644
index aa8baa92e..000000000
--- a/Library/Homebrew/os/mac/shared_mach.rb
+++ /dev/null
@@ -1,50 +0,0 @@
-require "os/mac/architecture_list"
-
-module SharedMachO
- def archs
- mach_data.map { |m| m.fetch :arch }.extend(ArchitectureListExtension)
- end
-
- def arch
- case archs.length
- when 0 then :dunno
- when 1 then archs.first
- else :universal
- end
- end
-
- def universal?
- arch == :universal
- end
-
- def i386?
- arch == :i386
- end
-
- def x86_64?
- arch == :x86_64
- end
-
- def ppc7400?
- arch == :ppc7400
- end
-
- def ppc64?
- arch == :ppc64
- end
-
- # @private
- def dylib?
- mach_data.any? { |m| m.fetch(:type) == :dylib }
- end
-
- # @private
- def mach_o_executable?
- mach_data.any? { |m| m.fetch(:type) == :executable }
- end
-
- # @private
- def mach_o_bundle?
- mach_data.any? { |m| m.fetch(:type) == :bundle }
- end
-end
diff --git a/Library/Homebrew/os/mac/xcode.rb b/Library/Homebrew/os/mac/xcode.rb
index f487a6997..3aab9bf52 100644
--- a/Library/Homebrew/os/mac/xcode.rb
+++ b/Library/Homebrew/os/mac/xcode.rb
@@ -15,7 +15,7 @@ module OS
when "10.8" then "5.1.1"
when "10.9" then "6.2"
when "10.10" then "7.2.1"
- when "10.11" then "7.3.1"
+ when "10.11" then "8.0"
when "10.12" then "8.0"
else
# Default to newest known version of Xcode for unreleased macOS versions.
@@ -193,6 +193,9 @@ module OS
end
def latest_version
+ # As of Xcode 8 CLT releases are no longer in sync with Xcode releases
+ # on the older supported platform for that Xcode release, i.e there's no
+ # CLT package for 10.11 that contains the Clang version from Xcode 8.
case MacOS.version
when "10.12" then "800.0.38"
when "10.11" then "703.0.31"
@@ -206,9 +209,9 @@ module OS
def outdated?
if MacOS.version >= :mavericks
- version = `#{MAVERICKS_PKG_PATH}/usr/bin/clang --version`
+ version = Utils.popen_read("#{MAVERICKS_PKG_PATH}/usr/bin/clang --version")
else
- version = `/usr/bin/clang --version`
+ version = Utils.popen_read("/usr/bin/clang --version")
end
version = version[/clang-(\d+\.\d+\.\d+(\.\d+)?)/, 1] || "0"
version < latest_version
diff --git a/Library/Homebrew/readall.rb b/Library/Homebrew/readall.rb
index 61222e015..3dd7075ec 100644
--- a/Library/Homebrew/readall.rb
+++ b/Library/Homebrew/readall.rb
@@ -1,7 +1,6 @@
require "formula"
require "tap"
require "thread"
-require "readall"
module Readall
class << self
diff --git a/Library/Homebrew/sandbox.rb b/Library/Homebrew/sandbox.rb
index 9392b7122..a7fc99d4a 100644
--- a/Library/Homebrew/sandbox.rb
+++ b/Library/Homebrew/sandbox.rb
@@ -3,8 +3,12 @@ require "tempfile"
class Sandbox
SANDBOX_EXEC = "/usr/bin/sandbox-exec".freeze
- SANDBOXED_TAPS = [
- "homebrew/core",
+ SANDBOXED_TAPS = %w[
+ homebrew/core
+ homebrew/dupes
+ homebrew/fuse
+ homebrew/devel-only
+ homebrew/tex
].freeze
def self.available?
@@ -73,7 +77,7 @@ class Sandbox
# Xcode projects expect access to certain cache/archive dirs.
def allow_write_xcode
- allow_write_path "/Users/#{ENV["USER"]}/Library/Developer/Xcode/DerivedData/"
+ allow_write_path "/Users/#{ENV["USER"]}/Library/Developer"
end
def allow_write_log(formula)
diff --git a/Library/Homebrew/tab.rb b/Library/Homebrew/tab.rb
index 53338a035..12b23cc73 100644
--- a/Library/Homebrew/tab.rb
+++ b/Library/Homebrew/tab.rb
@@ -30,6 +30,10 @@ class Tab < OpenStruct
"HEAD" => HOMEBREW_REPOSITORY.git_head,
"compiler" => compiler,
"stdlib" => stdlib,
+ "runtime_dependencies" => formula.runtime_dependencies.map do |dep|
+ f = dep.to_formula
+ { "full_name" => f.full_name, "version" => f.version.to_s }
+ end,
"source" => {
"path" => formula.specified_path.to_s,
"tap" => formula.tap ? formula.tap.name : nil,
@@ -56,6 +60,7 @@ class Tab < OpenStruct
def self.from_file_content(content, path)
attributes = Utils::JSON.load(content)
attributes["tabfile"] = path
+ attributes["runtime_dependencies"] ||= []
attributes["source_modified_time"] ||= 0
attributes["source"] ||= {}
@@ -172,6 +177,7 @@ class Tab < OpenStruct
"HEAD" => nil,
"stdlib" => nil,
"compiler" => DevelopmentTools.default_compiler,
+ "runtime_dependencies" => [],
"source" => {
"path" => nil,
"tap" => nil,
@@ -303,6 +309,7 @@ class Tab < OpenStruct
"HEAD" => self.HEAD,
"stdlib" => (stdlib.to_s if stdlib),
"compiler" => (compiler.to_s if compiler),
+ "runtime_dependencies" => runtime_dependencies,
"source" => source,
}
diff --git a/Library/Homebrew/test/fixtures/receipt.json b/Library/Homebrew/test/fixtures/receipt.json
index 585a4e27d..62672bfa9 100644
--- a/Library/Homebrew/test/fixtures/receipt.json
+++ b/Library/Homebrew/test/fixtures/receipt.json
@@ -14,6 +14,12 @@
"alias_path": "/usr/local/Library/Taps/homebrew/homebrew-core/Aliases/test-formula",
"stdlib": "libcxx",
"compiler": "clang",
+ "runtime_dependencies": [
+ {
+ "full_name": "foo",
+ "version": "1.0"
+ }
+ ],
"source": {
"path": "/usr/local/Library/Taps/hombrew/homebrew-core/Formula/foo.rb",
"tap": "homebrew/core",
diff --git a/Library/Homebrew/test/test_bash.rb b/Library/Homebrew/test/test_bash.rb
index e965aaf21..ff418c787 100644
--- a/Library/Homebrew/test/test_bash.rb
+++ b/Library/Homebrew/test/test_bash.rb
@@ -19,7 +19,7 @@ class BashTests < Homebrew::TestCase
end
def test_bash_completion
- script = HOMEBREW_LIBRARY_PATH.parent.parent/"etc/bash_completion.d/brew"
+ script = HOMEBREW_LIBRARY_PATH.parent.parent/"completions/bash/brew"
assert_valid_bash_syntax script
end
diff --git a/Library/Homebrew/test/test_formula.rb b/Library/Homebrew/test/test_formula.rb
index dcb3e3349..9207f8ead 100644
--- a/Library/Homebrew/test/test_formula.rb
+++ b/Library/Homebrew/test/test_formula.rb
@@ -638,6 +638,27 @@ class FormulaTests < Homebrew::TestCase
f1.test_fixtures("foo")
end
+ def test_dependencies
+ stub_formula_loader formula("f1") { url "f1-1.0" }
+ stub_formula_loader formula("f2") { url "f2-1.0" }
+
+ f3 = formula("f3") do
+ url "f3-1.0"
+ depends_on "f1" => :build
+ depends_on "f2"
+ end
+ stub_formula_loader f3
+
+ f4 = formula("f4") do
+ url "f4-1.0"
+ depends_on "f3"
+ end
+
+ assert_equal %w[f3], f4.deps.map(&:name)
+ assert_equal %w[f1 f2 f3], f4.recursive_dependencies.map(&:name)
+ assert_equal %w[f2 f3], f4.runtime_dependencies.map(&:name)
+ end
+
def test_to_hash
f1 = formula("foo") do
url "foo-1.0"
diff --git a/Library/Homebrew/test/test_tab.rb b/Library/Homebrew/test/test_tab.rb
index 2efaee983..18d0f49b1 100644
--- a/Library/Homebrew/test/test_tab.rb
+++ b/Library/Homebrew/test/test_tab.rb
@@ -16,6 +16,7 @@ class TabTests < Homebrew::TestCase
"HEAD" => TEST_SHA1,
"compiler" => "clang",
"stdlib" => "libcxx",
+ "runtime_dependencies" => [],
"source" => {
"tap" => "homebrew/core",
"path" => nil,
@@ -40,6 +41,7 @@ class TabTests < Homebrew::TestCase
assert_nil tab.tap
assert_nil tab.time
assert_nil tab.HEAD
+ assert_empty tab.runtime_dependencies
assert_nil tab.stable_version
assert_nil tab.devel_version
assert_nil tab.head_version
@@ -95,12 +97,14 @@ class TabTests < Homebrew::TestCase
assert_equal TEST_SHA1, tab.HEAD
assert_equal :clang, tab.cxxstdlib.compiler
assert_equal :libcxx, tab.cxxstdlib.type
+ assert_empty tab.runtime_dependencies
end
def test_from_file
path = Pathname.new(TEST_DIRECTORY).join("fixtures", "receipt.json")
tab = Tab.from_file(path)
source_path = "/usr/local/Library/Taps/hombrew/homebrew-core/Formula/foo.rb"
+ runtime_dependencies = [{ "full_name" => "foo", "version" => "1.0" }]
assert_equal @used.sort, tab.used_options.sort
assert_equal @unused.sort, tab.unused_options.sort
@@ -115,6 +119,7 @@ class TabTests < Homebrew::TestCase
assert_equal TEST_SHA1, tab.HEAD
assert_equal :clang, tab.cxxstdlib.compiler
assert_equal :libcxx, tab.cxxstdlib.type
+ assert_equal runtime_dependencies, tab.runtime_dependencies
assert_equal "2.14", tab.stable_version.to_s
assert_equal "2.15", tab.devel_version.to_s
assert_equal "HEAD-0000000", tab.head_version.to_s
@@ -122,11 +127,32 @@ class TabTests < Homebrew::TestCase
end
def test_create
- f = formula { url "foo-1.0" }
+ f = formula do
+ url "foo-1.0"
+ depends_on "bar"
+ depends_on "user/repo/from_tap"
+ depends_on "baz" => :build
+ end
+
+ tap = Tap.new("user", "repo")
+ from_tap = formula("from_tap", tap.path/"Formula/from_tap.rb") do
+ url "from_tap-1.0"
+ end
+ stub_formula_loader from_tap
+
+ stub_formula_loader formula("bar") { url "bar-2.0" }
+ stub_formula_loader formula("baz") { url "baz-3.0" }
+
compiler = DevelopmentTools.default_compiler
stdlib = :libcxx
tab = Tab.create(f, compiler, stdlib)
+ runtime_dependencies = [
+ { "full_name" => "bar", "version" => "2.0" },
+ { "full_name" => "user/repo/from_tap", "version" => "1.0" },
+ ]
+
+ assert_equal runtime_dependencies, tab.runtime_dependencies
assert_equal f.path.to_s, tab.source["path"]
end
@@ -167,6 +193,7 @@ class TabTests < Homebrew::TestCase
assert_equal @tab.HEAD, tab.HEAD
assert_equal @tab.compiler, tab.compiler
assert_equal @tab.stdlib, tab.stdlib
+ assert_equal @tab.runtime_dependencies, tab.runtime_dependencies
assert_equal @tab.stable_version, tab.stable_version
assert_equal @tab.devel_version, tab.devel_version
assert_equal @tab.head_version, tab.head_version
diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb
index 676badf82..2b4f9422b 100644
--- a/Library/Homebrew/test/testing_env.rb
+++ b/Library/Homebrew/test/testing_env.rb
@@ -125,7 +125,7 @@ module Homebrew
# Use a stubbed {Formulary::FormulaLoader} to make a given formula be found
# when loading from {Formulary} with `ref`.
- def stub_formula_loader(formula, ref = formula.name)
+ def stub_formula_loader(formula, ref = formula.full_name)
loader = mock
loader.stubs(:get_formula).returns(formula)
Formulary.stubs(:loader_for).with(ref).returns(loader)
diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb
index cda67a8c6..be629f1df 100644
--- a/Library/Homebrew/utils.rb
+++ b/Library/Homebrew/utils.rb
@@ -248,15 +248,6 @@ module Homebrew
_system(cmd, *args)
end
- def self.homebrew_version_string
- if pretty_revision = HOMEBREW_REPOSITORY.git_short_head
- last_commit = HOMEBREW_REPOSITORY.git_last_commit_date
- "#{HOMEBREW_VERSION} (git revision #{pretty_revision}; last commit #{last_commit})"
- else
- "#{HOMEBREW_VERSION} (no git repository)"
- end
- end
-
def self.core_tap_version_string
require "tap"
tap = CoreTap.instance
@@ -270,17 +261,24 @@ module Homebrew
end
def self.install_gem_setup_path!(name, version = nil, executable = name)
- require "rubygems"
+ # Respect user's preferences for where gems should be installed.
+ ENV["GEM_HOME"] = ENV["GEM_OLD_HOME"].to_s
+ ENV["GEM_HOME"] = Gem.user_dir if ENV["GEM_HOME"].empty?
+ ENV["GEM_PATH"] = ENV["GEM_OLD_PATH"] unless ENV["GEM_OLD_PATH"].to_s.empty?
+
+ # Make rubygems notice env changes.
+ Gem.clear_paths
+ Gem::Specification.reset
# Add Gem binary directory and (if missing) Ruby binary directory to PATH.
path = ENV["PATH"].split(File::PATH_SEPARATOR)
path.unshift(RUBY_BIN) if which("ruby") != RUBY_PATH
- path.unshift("#{Gem.user_dir}/bin")
+ path.unshift("#{Gem.dir}/bin")
ENV["PATH"] = path.join(File::PATH_SEPARATOR)
if Gem::Specification.find_all_by_name(name, version).empty?
ohai "Installing or updating '#{name}' gem"
- install_args = %W[--no-ri --no-rdoc --user-install #{name}]
+ install_args = %W[--no-ri --no-rdoc #{name}]
install_args << "--version" << version if version
# Do `gem install [...]` without having to spawn a separate process or
@@ -598,8 +596,11 @@ def link_src_dst_dirs(src_dir, dst_dir, command, link_dir: false)
src_paths = link_dir ? [src_dir] : src_dir.find
src_paths.each do |src|
next if src.directory? && !link_dir
- dst = dst_dir.parent/src.relative_path_from(src_dir.parent)
- next if dst.symlink? && src == dst.resolved_path
+ dst = dst_dir/src.relative_path_from(src_dir)
+ if dst.symlink?
+ next if src == dst.resolved_path
+ dst.unlink
+ end
if dst.exist?
conflicts << dst
next
diff --git a/Library/Homebrew/utils/analytics.rb b/Library/Homebrew/utils/analytics.rb
index e176f0566..9066cce73 100644
--- a/Library/Homebrew/utils/analytics.rb
+++ b/Library/Homebrew/utils/analytics.rb
@@ -35,7 +35,7 @@ module Utils
end
# Send analytics. Don't send or store any personally identifiable information.
- # https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Analytics.md
+ # https://github.com/Homebrew/brew/blob/master/docs/Analytics.md
# https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide
# https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters
if ENV["HOMEBREW_ANALYTICS_DEBUG"]
diff --git a/Library/Homebrew/utils/analytics.sh b/Library/Homebrew/utils/analytics.sh
index 0bc58c0be..24839709e 100644
--- a/Library/Homebrew/utils/analytics.sh
+++ b/Library/Homebrew/utils/analytics.sh
@@ -104,7 +104,7 @@ report-analytics-screenview-command() {
)
# Send analytics. Don't send or store any personally identifiable information.
- # https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Analytics.md
+ # https://github.com/Homebrew/brew/blob/master/docs/Analytics.md
# https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide#screenView
# https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters
if [[ -z "$HOMEBREW_ANALYTICS_DEBUG" ]]
diff --git a/README.md b/README.md
index 98733271b..ef7232040 100644
--- a/README.md
+++ b/README.md
@@ -13,21 +13,21 @@ cd "$(brew --repo)" && git fetch && git reset --hard origin/master && brew updat
3. Or use `brew search --desc <keyword>` to browse packages from the command line.
## More Documentation
-`brew help`, `man brew` or check [our documentation](https://github.com/Homebrew/brew/tree/master/share/doc/homebrew#readme).
+`brew help`, `man brew` or check [our documentation](https://github.com/Homebrew/brew/tree/master/docs#readme).
## Troubleshooting
First, please run `brew update` and `brew doctor`.
-Second, read the [Troubleshooting Checklist](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Troubleshooting.md#troubleshooting).
+Second, read the [Troubleshooting Checklist](https://github.com/Homebrew/brew/blob/master/docs/Troubleshooting.md#troubleshooting).
**If you don't read these it will take us far longer to help you with your problem.**
## Contributing
-We'd love you to contribute to Homebrew. First, please read our [Contribution Guide](https://github.com/Homebrew/brew/blob/master/.github/CONTRIBUTING.md) and [Code of Conduct](https://github.com/Homebrew/brew/blob/master/CODEOFCONDUCT.md#code-of-conduct).
+We'd love you to contribute to Homebrew. First, please read our [Contribution Guide](https://github.com/Homebrew/brew/blob/master/CONTRIBUTING.md) and [Code of Conduct](https://github.com/Homebrew/brew/blob/master/CODEOFCONDUCT.md#code-of-conduct).
We explicitly welcome contributions from people who have never contributed to open-source before: we were all beginners once! We can help build on a partially working pull request with the aim of getting it merged. We are also actively seeking to diversify our contributors and especially welcome contributions from women from all backgrounds and people of colour.
-A good starting point for contributing is running `brew audit` (or `brew audit --strict`) with some of the packages you use (e.g. `brew audit wget` if you use `wget`) and then read through the warnings, try to fix them until `brew audit` shows no results and [submit a pull request](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md). If no formulae you use have warnings you can run `brew audit` without arguments to have it run on all packages and pick one. Good luck!
+A good starting point for contributing is running `brew audit` (or `brew audit --strict`) with some of the packages you use (e.g. `brew audit wget` if you use `wget`) and then read through the warnings, try to fix them until `brew audit` shows no results and [submit a pull request](https://github.com/Homebrew/brew/blob/master/docs/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md). If no formulae you use have warnings you can run `brew audit` without arguments to have it run on all packages and pick one. Good luck!
## Security
Please report security issues to security@brew.sh.
@@ -38,7 +38,9 @@ This is our PGP key which is valid until May 24, 2017.
* Full key: https://keybase.io/homebrew/key.asc
## Who Are You?
-Homebrew's current maintainers are [Misty De Meo](https://github.com/mistydemeo), [Andrew Janke](https://github.com/apjanke), [Xu Cheng](https://github.com/xu-cheng), [Tomasz Pajor](https://github.com/nijikon), [Mike McQuaid](https://github.com/mikemcquaid), [Baptiste Fontaine](https://github.com/bfontaine), [Brett Koonce](https://github.com/asparagui), [ilovezfs](https://github.com/ilovezfs), [Martin Afanasjew](https://github.com/UniqMartin), [Dominyk Tiller](https://github.com/DomT4), [Tim Smith](https://github.com/tdsmith) and [Alex Dunn](https://github.com/dunn).
+Homebrew's lead maintainer is [Mike McQuaid](https://github.com/mikemcquaid).
+
+Homebrew's current maintainers are [Misty De Meo](https://github.com/mistydemeo), [Andrew Janke](https://github.com/apjanke), [Xu Cheng](https://github.com/xu-cheng), [Tomasz Pajor](https://github.com/nijikon), [Baptiste Fontaine](https://github.com/bfontaine), [Zhiming Wang](https://github.com/zmwangx), [Brett Koonce](https://github.com/asparagui), [ilovezfs](https://github.com/ilovezfs), [Martin Afanasjew](https://github.com/UniqMartin), [Uladzislau Shablinski](https://github.com/vladshablinsky), [Dominyk Tiller](https://github.com/DomT4), [Tim Smith](https://github.com/tdsmith) and [Alex Dunn](https://github.com/dunn).
Former maintainers with significant contributions include [Jack Nagel](https://github.com/jacknagel), [Adam Vandenberg](https://github.com/adamv) and Homebrew's creator: [Max Howell](https://github.com/mxcl).
@@ -61,7 +63,7 @@ Homebrew is a member of the [Software Freedom Conservancy](http://sfconservancy.
- Donate with Flattr or PayPal Giving Fund: coming soon.
## Sponsors
-Our CI infrastructure was paid for by [our Kickstarter supporters](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Kickstarter-Supporters.md).
+Our CI infrastructure was paid for by [our Kickstarter supporters](https://github.com/Homebrew/brew/blob/master/docs/Kickstarter-Supporters.md).
Our CI infrastructure is hosted by [The Positive Internet Company](http://www.positive-internet.com).
diff --git a/etc/bash_completion.d/brew b/completions/bash/brew
index 67c4c6a3d..67c4c6a3d 100644
--- a/etc/bash_completion.d/brew
+++ b/completions/bash/brew
diff --git a/share/zsh/site-functions/_brew b/completions/zsh/_brew
index fdb381d9e..fdb381d9e 100644
--- a/share/zsh/site-functions/_brew
+++ b/completions/zsh/_brew
diff --git a/share/zsh/site-functions/_brew_cask b/completions/zsh/_brew_cask
index fb969ffe4..fb969ffe4 100644
--- a/share/zsh/site-functions/_brew_cask
+++ b/completions/zsh/_brew_cask
diff --git a/share/doc/homebrew/Acceptable-Formulae.md b/docs/Acceptable-Formulae.md
index 15e800336..15e800336 100644
--- a/share/doc/homebrew/Acceptable-Formulae.md
+++ b/docs/Acceptable-Formulae.md
diff --git a/share/doc/homebrew/Analytics.md b/docs/Analytics.md
index 83386b3ee..83386b3ee 100644
--- a/share/doc/homebrew/Analytics.md
+++ b/docs/Analytics.md
diff --git a/share/doc/homebrew/Bottles.md b/docs/Bottles.md
index 196b36e1f..196b36e1f 100644
--- a/share/doc/homebrew/Bottles.md
+++ b/docs/Bottles.md
diff --git a/share/doc/homebrew/Brew-Test-Bot-For-Core-Contributors.md b/docs/Brew-Test-Bot-For-Core-Contributors.md
index 8e264ea7e..8e264ea7e 100644
--- a/share/doc/homebrew/Brew-Test-Bot-For-Core-Contributors.md
+++ b/docs/Brew-Test-Bot-For-Core-Contributors.md
diff --git a/share/doc/homebrew/Brew-Test-Bot.md b/docs/Brew-Test-Bot.md
index 0a5f76bda..0a5f76bda 100644
--- a/share/doc/homebrew/Brew-Test-Bot.md
+++ b/docs/Brew-Test-Bot.md
diff --git a/share/doc/homebrew/C++-Standard-Libraries.md b/docs/C++-Standard-Libraries.md
index 0bb987def..0bb987def 100644
--- a/share/doc/homebrew/C++-Standard-Libraries.md
+++ b/docs/C++-Standard-Libraries.md
diff --git a/share/doc/homebrew/Checksum_Deprecation.md b/docs/Checksum_Deprecation.md
index d8ad81b85..d8ad81b85 100644
--- a/share/doc/homebrew/Checksum_Deprecation.md
+++ b/docs/Checksum_Deprecation.md
diff --git a/share/doc/homebrew/Common-Issues-for-Core-Contributors.md b/docs/Common-Issues-for-Core-Contributors.md
index b0bea8c39..b0bea8c39 100644
--- a/share/doc/homebrew/Common-Issues-for-Core-Contributors.md
+++ b/docs/Common-Issues-for-Core-Contributors.md
diff --git a/share/doc/homebrew/Common-Issues.md b/docs/Common-Issues.md
index 320ad6d89..14f2836c4 100644
--- a/share/doc/homebrew/Common-Issues.md
+++ b/docs/Common-Issues.md
@@ -76,7 +76,7 @@ When running `brew upgrade`, you see something like this:
$ brew upgrade
Error: undefined method `include?' for nil:NilClass
Please report this bug:
- https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Troubleshooting.md
+ https://github.com/Homebrew/brew/blob/master/docs/Troubleshooting.md
/usr/local/Library/Homebrew/formula.rb:393:in `canonical_name'
/usr/local/Library/Homebrew/formula.rb:425:in `factory'
/usr/local/Library/Contributions/examples/brew-upgrade.rb:7
diff --git a/share/doc/homebrew/Custom-GCC-and-cross-compilers.md b/docs/Custom-GCC-and-cross-compilers.md
index 1d662c158..1d662c158 100644
--- a/share/doc/homebrew/Custom-GCC-and-cross-compilers.md
+++ b/docs/Custom-GCC-and-cross-compilers.md
diff --git a/share/doc/homebrew/External-Commands.md b/docs/External-Commands.md
index 090b664cb..8fe6932b0 100644
--- a/share/doc/homebrew/External-Commands.md
+++ b/docs/External-Commands.md
@@ -81,4 +81,4 @@ These commands have been contributed by Homebrew users but are not included in t
> ```
## SEE ALSO
-Homebrew Docs: <https://github.com/Homebrew/brew/tree/master/share/doc/homebrew>
+Homebrew Docs: <https://github.com/Homebrew/brew/tree/master/docs>
diff --git a/share/doc/homebrew/FAQ.md b/docs/FAQ.md
index 2f6d4f9ea..f13703bdd 100644
--- a/share/doc/homebrew/FAQ.md
+++ b/docs/FAQ.md
@@ -80,7 +80,7 @@ including how to set this across reboots. If you’re pre-Mountain Lion,
alternative](https://developer.apple.com/legacy/library/qa/qa1067/_index.html).
### How do I contribute to Homebrew?
-Read [CONTRIBUTING.md](/.github/CONTRIBUTING.md).
+Read [CONTRIBUTING.md](/CONTRIBUTING.md).
### Why do you compile everything?
Homebrew provides pre-compiled versions for many formulae. These
diff --git a/share/doc/homebrew/Formula-Cookbook.md b/docs/Formula-Cookbook.md
index 876a6645f..a4fd21c57 100644
--- a/share/doc/homebrew/Formula-Cookbook.md
+++ b/docs/Formula-Cookbook.md
@@ -34,7 +34,7 @@ Before submitting a new formula make sure your package:
* has a stable, tagged version (i.e. not just a GitHub repository with no versions). See [Interesting-Taps-&-Forks](Interesting-Taps-&-Forks.md) for where pre-release versions belong.
* passes all `brew audit --new-formula $FORMULA` tests.
-Before submitting a new formula make sure you read over our [contribution guidelines](https://github.com/Homebrew/brew/blob/master/.github/CONTRIBUTING.md).
+Before submitting a new formula make sure you read over our [contribution guidelines](https://github.com/Homebrew/brew/blob/master/CONTRIBUTING.md).
## Grab the URL
@@ -350,7 +350,7 @@ If you have already forked Homebrew on GitHub, then you can manually push (just
git push https://github.com/myname/homebrew-core/ <what-you-called-your-branch>
```
-Now, please [open a pull request](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md#how-to-open-a-homebrew-pull-request-and-get-it-merged) for your changes.
+Now, please [open a pull request](https://github.com/Homebrew/brew/blob/master/docs/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md#how-to-open-a-homebrew-pull-request-and-get-it-merged) for your changes.
* One formula per commit; one commit per formula
* Keep merge commits out of the pull request
diff --git a/share/doc/homebrew/Gems,-Eggs-and-Perl-Modules.md b/docs/Gems,-Eggs-and-Perl-Modules.md
index dfbdc224f..dfbdc224f 100644
--- a/share/doc/homebrew/Gems,-Eggs-and-Perl-Modules.md
+++ b/docs/Gems,-Eggs-and-Perl-Modules.md
diff --git a/share/doc/homebrew/Homebrew-and-Python.md b/docs/Homebrew-and-Python.md
index 5b8676dbc..5b8676dbc 100644
--- a/share/doc/homebrew/Homebrew-and-Python.md
+++ b/docs/Homebrew-and-Python.md
diff --git a/share/doc/homebrew/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md b/docs/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md
index 03d3a00fa..03d3a00fa 100644
--- a/share/doc/homebrew/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md
+++ b/docs/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md
diff --git a/share/doc/homebrew/How-to-Create-and-Maintain-a-Tap.md b/docs/How-to-Create-and-Maintain-a-Tap.md
index ff7de8029..ff7de8029 100644
--- a/share/doc/homebrew/How-to-Create-and-Maintain-a-Tap.md
+++ b/docs/How-to-Create-and-Maintain-a-Tap.md
diff --git a/share/doc/homebrew/How-to-build-software-outside-Homebrew-with-Homebrew-keg-only-dependencies.md b/docs/How-to-build-software-outside-Homebrew-with-Homebrew-keg-only-dependencies.md
index f71c75164..f71c75164 100644
--- a/share/doc/homebrew/How-to-build-software-outside-Homebrew-with-Homebrew-keg-only-dependencies.md
+++ b/docs/How-to-build-software-outside-Homebrew-with-Homebrew-keg-only-dependencies.md
diff --git a/share/doc/homebrew/Installation.md b/docs/Installation.md
index be9f7ca91..8ee1891cf 100644
--- a/share/doc/homebrew/Installation.md
+++ b/docs/Installation.md
@@ -10,7 +10,7 @@ it does it too. And you have to confirm everything it will do before it starts.
## Requirements
* An Intel CPU <sup>[1](#1)</sup>
-* OS X 10.9 or higher <sup>[2](#2)</sup>
+* OS X 10.10 or higher <sup>[2](#2)</sup>
* Command Line Tools for Xcode: `xcode-select --install`,
https://developer.apple.com/downloads or
[Xcode](https://itunes.apple.com/us/app/xcode/id497799835) <sup>[3](#3)</sup>
@@ -42,7 +42,7 @@ you can assume you will have trouble if you don’t conform. Also, you can find
PowerPC and Tiger branches from other users in the fork network. See
[Interesting Taps & Forks](Interesting-Taps-&-Forks.md).
-<a name="2"><sup>2</sup></a> 10.9 or higher is recommended. 10.5 - 10.8 are
+<a name="2"><sup>2</sup></a> 10.10 or higher is recommended. 10.5 - 10.8 are
supported on a best-effort basis. For 10.4 and 10.5, see
[Tigerbrew](https://github.com/mistydemeo/tigerbrew).
diff --git a/share/doc/homebrew/Interesting-Taps-&-Forks.md b/docs/Interesting-Taps-&-Forks.md
index d23277b15..d23277b15 100644
--- a/share/doc/homebrew/Interesting-Taps-&-Forks.md
+++ b/docs/Interesting-Taps-&-Forks.md
diff --git a/share/doc/homebrew/Kickstarter-Supporters.md b/docs/Kickstarter-Supporters.md
index 01f0fcc16..01f0fcc16 100644
--- a/share/doc/homebrew/Kickstarter-Supporters.md
+++ b/docs/Kickstarter-Supporters.md
diff --git a/share/doc/homebrew/Maintainer-Guidelines.md b/docs/Maintainer-Guidelines.md
index d83118642..d83118642 100644
--- a/share/doc/homebrew/Maintainer-Guidelines.md
+++ b/docs/Maintainer-Guidelines.md
diff --git a/share/doc/homebrew/Maintainers-Avoiding-Burnout.md b/docs/Maintainers-Avoiding-Burnout.md
index f3ba3e346..f3ba3e346 100644
--- a/share/doc/homebrew/Maintainers-Avoiding-Burnout.md
+++ b/docs/Maintainers-Avoiding-Burnout.md
diff --git a/share/doc/homebrew/Migrating-A-Formula-To-A-Tap.md b/docs/Migrating-A-Formula-To-A-Tap.md
index 7bc984f84..7bc984f84 100644
--- a/share/doc/homebrew/Migrating-A-Formula-To-A-Tap.md
+++ b/docs/Migrating-A-Formula-To-A-Tap.md
diff --git a/share/doc/homebrew/New-Maintainer-Checklist.md b/docs/New-Maintainer-Checklist.md
index c59e1c341..2bdff0202 100644
--- a/share/doc/homebrew/New-Maintainer-Checklist.md
+++ b/docs/New-Maintainer-Checklist.md
@@ -25,8 +25,8 @@ A few requests:
- still create your branches on your fork rather than in the main repository
- if still in doubt please ask for help and we'll help you out - these are
probably worth a read:
- - https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Brew-Test-Bot-For-Core-Contributors.md
- - https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Maintainer-Guidelines.md
+ - https://github.com/Homebrew/brew/blob/master/docs/Brew-Test-Bot-For-Core-Contributors.md
+ - https://github.com/Homebrew/brew/blob/master/docs/Maintainer-Guidelines.md
- possibly everything else in the documentation
How does that sound?
diff --git a/share/doc/homebrew/Node-for-Formula-Authors.md b/docs/Node-for-Formula-Authors.md
index 642a0f067..c78668a58 100644
--- a/share/doc/homebrew/Node-for-Formula-Authors.md
+++ b/docs/Node-for-Formula-Authors.md
@@ -82,7 +82,7 @@ In your formula's `install` method, do any installation steps which need to be d
system "npm", "install", *Language::Node.local_npm_install_args
```
-This will install all of your Node modules dependencies to your local build path. You can now continue with your build steps and take care of the installation into the Homebrew `prefix` by your own, following the [general Homebrew formula instructions](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Formula-Cookbook.md).
+This will install all of your Node modules dependencies to your local build path. You can now continue with your build steps and take care of the installation into the Homebrew `prefix` by your own, following the [general Homebrew formula instructions](https://github.com/Homebrew/brew/blob/master/docs/Formula-Cookbook.md).
# Example
diff --git a/share/doc/homebrew/Prose-Style-Guidelines.md b/docs/Prose-Style-Guidelines.md
index 8c4f1d1f0..1d8e2b0fc 100644
--- a/share/doc/homebrew/Prose-Style-Guidelines.md
+++ b/docs/Prose-Style-Guidelines.md
@@ -1,6 +1,6 @@
# Prose Style Guidelines
-This is a set of style and usage guidelines for Homebrew's prose documentation aimed at users, contributors, and maintainers (as opposed to executable computer code). It applies to documents like those in `share/doc/homebrew` in the `Homebrew/brew` repo, announcement emails, and other communications with the Homebrew community.
+This is a set of style and usage guidelines for Homebrew's prose documentation aimed at users, contributors, and maintainers (as opposed to executable computer code). It applies to documents like those in `docs` in the `Homebrew/brew` repo, announcement emails, and other communications with the Homebrew community.
This does not apply to any Ruby or other computer code. You can use it to inform technical documentation extracted from computer code, like embedded man pages, but it's just a suggestion there.
diff --git a/share/doc/homebrew/Python-for-Formula-Authors.md b/docs/Python-for-Formula-Authors.md
index 716a3b359..716a3b359 100644
--- a/share/doc/homebrew/Python-for-Formula-Authors.md
+++ b/docs/Python-for-Formula-Authors.md
diff --git a/share/doc/homebrew/Querying-Brew.md b/docs/Querying-Brew.md
index 84a2ba4eb..84a2ba4eb 100644
--- a/share/doc/homebrew/Querying-Brew.md
+++ b/docs/Querying-Brew.md
diff --git a/share/doc/homebrew/README.md b/docs/README.md
index 4e95db81b..ac9dbcd79 100644
--- a/share/doc/homebrew/README.md
+++ b/docs/README.md
@@ -7,8 +7,9 @@ Homebrew installs the stuff you need that Apple didn’t.
- [Gems, Eggs and Perl Modules](Gems,-Eggs-and-Perl-Modules.md)
- [Homebrew and Python](Homebrew-and-Python.md)
-Please note: Homebrew is not 1.0 yet. Generally it works well, but when
-it doesn’t we’d hope you report the bug.
+Please note: Homebrew generally works well, but when it doesn’t we’d hope you
+report the bug.
+
## Troubleshooting
First, please run `brew update` (twice) and `brew doctor`.
@@ -21,7 +22,7 @@ However! Fixing build issues is easier than you think: try
`brew edit $FORMULA` and see how you fare.
## Contributing
-Read [CONTRIBUTING.md](/.github/CONTRIBUTING.md).
+Read [CONTRIBUTING.md](/CONTRIBUTING.md).
### Community Forums
- [@MacHomebrew](https://twitter.com/MacHomebrew)
diff --git a/share/doc/homebrew/Rename-A-Formula.md b/docs/Rename-A-Formula.md
index efc7b8b11..efc7b8b11 100644
--- a/share/doc/homebrew/Rename-A-Formula.md
+++ b/docs/Rename-A-Formula.md
diff --git a/share/doc/homebrew/Tips-N'-Tricks.md b/docs/Tips-N'-Tricks.md
index e97f740ed..d3ed83fd2 100644
--- a/share/doc/homebrew/Tips-N'-Tricks.md
+++ b/docs/Tips-N'-Tricks.md
@@ -6,7 +6,7 @@ The preferred and supported method of installing specific versions of
formulae is to use the
[homebrew/versions](https://github.com/Homebrew/homebrew-versions)
tap. If the version you’re looking for isn’t available, consider [opening a
-pull request](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md)!
+pull request](https://github.com/Homebrew/brew/blob/master/docs/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md)!
### Installing directly from pull-requests
diff --git a/share/doc/homebrew/Troubleshooting.md b/docs/Troubleshooting.md
index 4fc77d6cd..4fc77d6cd 100644
--- a/share/doc/homebrew/Troubleshooting.md
+++ b/docs/Troubleshooting.md
diff --git a/share/doc/homebrew/Xcode.md b/docs/Xcode.md
index 98c5c6347..7697a9c55 100644
--- a/share/doc/homebrew/Xcode.md
+++ b/docs/Xcode.md
@@ -10,7 +10,7 @@ Tools available for your platform:
10.8 | 5.1.1 | April 2014
10.9 | 6.2 | 6.2
10.10 | 7.2.1 | 7.2
- 10.11 | 7.3.1 | 7.3
+ 10.11 | 8.0 | 7.3
10.12 | 8.0 | 8.0
diff --git a/share/doc/homebrew/brew-tap.md b/docs/brew-tap.md
index 624a83f33..624a83f33 100644
--- a/share/doc/homebrew/brew-tap.md
+++ b/docs/brew-tap.md
diff --git a/share/doc/homebrew/brew.1.html b/docs/brew.1.html
index 6948b3f93..c7b9de125 100644
--- a/share/doc/homebrew/brew.1.html
+++ b/docs/brew.1.html
@@ -151,7 +151,7 @@ for <var>version</var> is <code>v1</code>.</p>
information on all installed formulae.</p>
<p>See the docs for examples of using the JSON:
-<a href="https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Querying-Brew.md" data-bare-link="true">https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Querying-Brew.md</a></p></dd>
+<a href="https://github.com/Homebrew/brew/blob/master/docs/Querying-Brew.md" data-bare-link="true">https://github.com/Homebrew/brew/blob/master/docs/Querying-Brew.md</a></p></dd>
<dt><code>install</code> [<code>--debug</code>] [<code>--env=</code><var>std</var>|<var>super</var>] [<code>--ignore-dependencies</code>] [<code>--only-dependencies</code>] [<code>--cc=</code><var>compiler</var>] [<code>--build-from-source</code>] [<code>--devel</code>|<code>--HEAD</code>] [<code>--keep-tmp</code>] <var>formula</var></dt><dd><p>Install <var>formula</var>.</p>
<p><var>formula</var> is usually the name of the formula to install, but it can be specified
@@ -297,18 +297,14 @@ Homebrew build logic to help your <code>./configure &amp;&amp; make &amp;&amp; m
or even your <code>gem install</code> succeed. Especially handy if you run Homebrew
in an Xcode-only configuration since it adds tools like <code>make</code> to your <code>PATH</code>
which otherwise build-systems would not find.</p></dd>
-<dt><code>style</code> [<code>--fix</code>] [<code>--display-cop-names</code>] [<var>formulae</var>|<var>files</var>]</dt><dd><p>Check formulae or files for conformance to Homebrew style guidelines.</p>
-
-<p><var>formulae</var> is a list of formula names.</p>
-
-<p><var>files</var> is a list of file names.</p>
+<dt><code>style</code> [<code>--fix</code>] [<code>--display-cop-names</code>] [<var>files</var>|<var>taps</var>|<var>formulae</var>]</dt><dd><p>Check formulae or files for conformance to Homebrew style guidelines.</p>
<p><var>formulae</var> and <var>files</var> may not be combined. If both are omitted, style will run
style checks on the whole Homebrew <code>Library</code>, including core code and all
formulae.</p>
-<p>If <code>--fix</code> is passed and <code>HOMEBREW_DEVELOPER</code> is set, style violations
-will be automatically fixed using RuboCop's <code>--auto-correct</code> feature.</p>
+<p>If <code>--fix</code> is passed, style violations will be automatically fixed using
+RuboCop's <code>--auto-correct</code> feature.</p>
<p>If <code>--display-cop-names</code> is passed, the RuboCop cop name for each violation
is included in the output.</p>
@@ -348,7 +344,7 @@ for <var>version</var> is <code>v1</code>.</p>
<p>Pass <code>--installed</code> to get information on installed taps.</p>
<p>See the docs for examples of using the JSON:
-<a href="https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Querying-Brew.md" data-bare-link="true">https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Querying-Brew.md</a></p></dd>
+<a href="https://github.com/Homebrew/brew/blob/master/docs/Querying-Brew.md" data-bare-link="true">https://github.com/Homebrew/brew/blob/master/docs/Querying-Brew.md</a></p></dd>
<dt><code>tap-pin</code> <var>tap</var></dt><dd><p>Pin <var>tap</var>, prioritizing its formulae over core when formula names are supplied
by the user. See also <code>tap-unpin</code>.</p></dd>
<dt><code>tap-unpin</code> <var>tap</var></dt><dd><p>Unpin <var>tap</var> so its formulae are no longer prioritized. See also <code>tap-pin</code>.</p></dd>
@@ -594,7 +590,7 @@ scripts that reside somewhere in the <code>PATH</code>, named <code>brew-</code>
to create your own commands without modifying Homebrew's internals.</p>
<p>Instructions for creating your own commands can be found in the docs:
-<a href="https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/External-Commands.md" data-bare-link="true">https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/External-Commands.md</a></p>
+<a href="https://github.com/Homebrew/brew/blob/master/docs/External-Commands.md" data-bare-link="true">https://github.com/Homebrew/brew/blob/master/docs/External-Commands.md</a></p>
<h2 id="SPECIFYING-FORMULAE">SPECIFYING FORMULAE</h2>
@@ -673,7 +669,7 @@ Homebrew uses the GitHub API for features such as <code>brew search</code>.</p>
the number of parallel jobs to run when building with <code>make</code>(1).</p>
<p><em>Default:</em> the number of available CPU cores.</p></dd>
-<dt><code>HOMEBREW_NO_ANALYTICS</code></dt><dd><p>If set, Homebrew will not send analytics. See: <a href="https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Analytics.md#analytics" data-bare-link="true">https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Analytics.md#analytics</a></p></dd>
+<dt><code>HOMEBREW_NO_ANALYTICS</code></dt><dd><p>If set, Homebrew will not send analytics. See: <a href="https://github.com/Homebrew/brew/blob/master/docs/Analytics.md#analytics" data-bare-link="true">https://github.com/Homebrew/brew/blob/master/docs/Analytics.md#analytics</a></p></dd>
<dt><code>HOMEBREW_NO_AUTO_UPDATE</code></dt><dd><p>If set, Homebrew will not auto-update before running <code>brew install</code>,
<code>brew upgrade</code> or <code>brew tap</code>.</p></dd>
<dt><code>HOMEBREW_NO_EMOJI</code></dt><dd><p>If set, Homebrew will not print the <code>HOMEBREW_INSTALL_BADGE</code> on a
@@ -725,13 +721,15 @@ your shell profile, or you can use it before a brew command:</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
-<p>Homebrew Documentation: <a href="https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/" data-bare-link="true">https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/</a></p>
+<p>Homebrew Documentation: <a href="https://github.com/Homebrew/brew/blob/master/docs/" data-bare-link="true">https://github.com/Homebrew/brew/blob/master/docs/</a></p>
<p><code>git</code>(1), <code>git-log</code>(1)</p>
<h2 id="AUTHORS">AUTHORS</h2>
-<p>Homebrew's current maintainers are Misty De Meo, Andrew Janke, Xu Cheng, Tomasz Pajor, Mike McQuaid, Baptiste Fontaine, Brett Koonce, ilovezfs, Martin Afanasjew, Dominyk Tiller, Tim Smith and Alex Dunn.</p>
+<p>Homebrew's lead maintainer is Mike McQuaid.</p>
+
+<p>Homebrew's current maintainers are Misty De Meo, Andrew Janke, Xu Cheng, Tomasz Pajor, Baptiste Fontaine, Zhiming Wang, Brett Koonce, ilovezfs, Martin Afanasjew, Uladzislau Shablinski, Dominyk Tiller, Tim Smith and Alex Dunn.</p>
<p>Former maintainers with significant contributions include Jack Nagel, Adam Vandenberg and Homebrew's creator: Max Howell.</p>
diff --git a/share/doc/homebrew/images/analytics.png b/docs/images/analytics.png
index d13725d15..d13725d15 100644
--- a/share/doc/homebrew/images/analytics.png
+++ b/docs/images/analytics.png
Binary files differ
diff --git a/share/doc/homebrew/images/brew-test-bot-failed-jenkins.png b/docs/images/brew-test-bot-failed-jenkins.png
index bdfa8205f..bdfa8205f 100644
--- a/share/doc/homebrew/images/brew-test-bot-failed-jenkins.png
+++ b/docs/images/brew-test-bot-failed-jenkins.png
Binary files differ
diff --git a/share/doc/homebrew/images/brew-test-bot-failed-pr.png b/docs/images/brew-test-bot-failed-pr.png
index 2487ac446..2487ac446 100644
--- a/share/doc/homebrew/images/brew-test-bot-failed-pr.png
+++ b/docs/images/brew-test-bot-failed-pr.png
Binary files differ
diff --git a/share/doc/homebrew/images/brew-test-bot-failed-test.png b/docs/images/brew-test-bot-failed-test.png
index 0820910e7..0820910e7 100644
--- a/share/doc/homebrew/images/brew-test-bot-failed-test.png
+++ b/docs/images/brew-test-bot-failed-test.png
Binary files differ
diff --git a/share/doc/homebrew/images/brew-test-bot-passed-jenkins.png b/docs/images/brew-test-bot-passed-jenkins.png
index be0467581..be0467581 100644
--- a/share/doc/homebrew/images/brew-test-bot-passed-jenkins.png
+++ b/docs/images/brew-test-bot-passed-jenkins.png
Binary files differ
diff --git a/share/doc/homebrew/images/brew-test-bot-passed-pr.png b/docs/images/brew-test-bot-passed-pr.png
index 06acd5880..06acd5880 100644
--- a/share/doc/homebrew/images/brew-test-bot-passed-pr.png
+++ b/docs/images/brew-test-bot-passed-pr.png
Binary files differ
diff --git a/share/doc/homebrew/images/brew-test-bot-triggered-pr.png b/docs/images/brew-test-bot-triggered-pr.png
index 3643dcdbb..3643dcdbb 100644
--- a/share/doc/homebrew/images/brew-test-bot-triggered-pr.png
+++ b/docs/images/brew-test-bot-triggered-pr.png
Binary files differ
diff --git a/share/man/man1/brew-cask.1 b/manpages/brew-cask.1
index dd2bc133c..b447c6285 100644
--- a/share/man/man1/brew-cask.1
+++ b/manpages/brew-cask.1
@@ -18,11 +18,11 @@ Homebrew\-Cask works robustly enough that we welcome new users, but the project
.SH "FREQUENTLY USED COMMANDS"
.
.TP
-\fBinstall [\-\-force] [\-\-skip\-cask\-deps] [\-\-require\-sha]\fR \fItoken\fR [ \fItoken\fR \.\.\. ]
+\fBinstall\fR [\-\-force] [\-\-skip\-cask\-deps] [\-\-require\-sha] \fItoken\fR [ \fItoken\fR \.\.\. ]
Install Cask identified by \fItoken\fR\.
.
.TP
-\fBuninstall [\-\-force]\fR \fItoken\fR [ \fItoken\fR \.\.\. ]
+\fBuninstall\fR [\-\-force] \fItoken\fR [ \fItoken\fR \.\.\. ]
Uninstall Cask identified by \fItoken\fR\.
.
.TP
@@ -74,41 +74,31 @@ With no arguments, display the project page \fIhttp://caskroom\.io\fR\.
Display information about the given Cask\.
.
.TP
-\fBinstall [\-\-force] [\-\-skip\-cask\-deps] [\-\-require\-sha]\fR \fItoken\fR [ \fItoken\fR \.\.\. ]
+\fBinstall\fR [\-\-force] [\-\-skip\-cask\-deps] [\-\-require\-sha] \fItoken\fR [ \fItoken\fR \.\.\. ]
Install the given Cask\. With \fB\-\-force\fR, re\-install even if the Cask appears to be already present\. With \fB\-\-skip\-cask\-deps\fR, skip any Cask dependencies\. \fB\-\-require\-sha\fR will abort installation if the Cask does not have a checksum defined\.
.
.IP
\fItoken\fR is usually the ID of a Cask as returned by \fBbrew cask search\fR, but see \fIOTHER WAYS TO SPECIFY A CASK\fR for variations\.
.
.TP
-\fBlist\fR or \fBls\fR [\-1 | \-l] [ \fItoken\fR \.\.\. ]
-Without any arguments, list all installed Casks\. With \fB\-1\fR, always format the output in a single column\. With \fB\-l\fR, give a more detailed listing\.
+\fBlist\fR or \fBls\fR [\-1] [\-\-versions] [ \fItoken\fR \.\.\. ]
+Without any arguments, list all installed Casks\. With \fB\-1\fR, always format the output in a single column\. With \fB\-\-versions\fR, show all installed versions\.
.
.IP
If \fItoken\fR is given, summarize the staged files associated with the given Cask\.
.
.TP
-\fBsearch\fR or \fB\-S\fR
-Display all Casks available for install\.
-.
-.TP
-\fBsearch\fR or \fB\-S\fR \fItext\fR | /\fIregexp\fR/
-Perform a substring search of known Cask tokens for \fItext\fR\. If the text is delimited by slashes, it is interpreted as a Ruby regular expression\.
+\fBsearch\fR or \fB\-S\fR [\fItext\fR | /\fIregexp\fR/]
+Without argument, display all Casks available for install, otherwise perform a substring search of known Cask tokens for \fItext\fR or, if the text is delimited by slashes (/\fIregexp\fR/), it is interpreted as a Ruby regular expression\.
.
.TP
\fBstyle\fR [\-\-fix] [ \fItoken\fR \.\.\. ]
Check the given Casks for correct style using RuboCop Cask \fIhttps://github\.com/caskroom/rubocop\-cask\fR\. If no tokens are given on the command line, all Casks are checked\. With \fB\-\-fix\fR, auto\-correct any style errors if possible\.
.
.TP
-\fBuninstall [\-\-force]\fR or \fBrm\fR or \fBremove\fR \fItoken\fR [ \fItoken\fR \.\.\. ]
+\fBuninstall\fR or \fBrm\fR or \fBremove\fR [\-\-force] \fItoken\fR [ \fItoken\fR \.\.\. ]
Uninstall the given Cask\. With \fB\-\-force\fR, uninstall even if the Cask does not appear to be present\.
.
-.IP
-Note that \fBuninstall \-\-force\fR is currently imperfect\. It will follow the \fBuninstall\fR instructions from \fInewest\fR Cask definition, even if the given Cask has changed since you installed it\. The result is that \fBuninstall \-\-force\fR will always succeed in removing relevant files under \fB<Caskroom_path>\fR, but will sometimes fail to remove relevant installed files outside of it\. This issue is being addressed\.
-.
-.IP
-\fBuninstall\fR without \fB\-\-force\fR is also imperfect\. It may be unable to perform an \fBuninstall\fR operation if the given Cask has changed since you installed it\. This issue is being addressed\.
-.
.TP
\fBupdate\fR
For convenience\. \fBbrew cask update\fR is a synonym for \fBbrew update\fR\.
diff --git a/share/man/man1/brew.1 b/manpages/brew.1
index 3cd37e64d..25b1b80b7 100644
--- a/share/man/man1/brew.1
+++ b/manpages/brew.1
@@ -213,7 +213,7 @@ Print a JSON representation of \fIformulae\fR\. Currently the only accepted valu
Pass \fB\-\-all\fR to get information on all formulae, or \fB\-\-installed\fR to get information on all installed formulae\.
.
.IP
-See the docs for examples of using the JSON: \fIhttps://github\.com/Homebrew/brew/blob/master/share/doc/homebrew/Querying\-Brew\.md\fR
+See the docs for examples of using the JSON: \fIhttps://github\.com/Homebrew/brew/blob/master/docs/Querying\-Brew\.md\fR
.
.TP
\fBinstall\fR [\fB\-\-debug\fR] [\fB\-\-env=\fR\fIstd\fR|\fIsuper\fR] [\fB\-\-ignore\-dependencies\fR] [\fB\-\-only\-dependencies\fR] [\fB\-\-cc=\fR\fIcompiler\fR] [\fB\-\-build\-from\-source\fR] [\fB\-\-devel\fR|\fB\-\-HEAD\fR] [\fB\-\-keep\-tmp\fR] \fIformula\fR
@@ -403,20 +403,14 @@ Search for \fItext\fR in the given package manager\'s list\.
Instantiate a Homebrew build environment\. Uses our years\-battle\-hardened Homebrew build logic to help your \fB\./configure && make && make install\fR or even your \fBgem install\fR succeed\. Especially handy if you run Homebrew in an Xcode\-only configuration since it adds tools like \fBmake\fR to your \fBPATH\fR which otherwise build\-systems would not find\.
.
.TP
-\fBstyle\fR [\fB\-\-fix\fR] [\fB\-\-display\-cop\-names\fR] [\fIformulae\fR|\fIfiles\fR]
+\fBstyle\fR [\fB\-\-fix\fR] [\fB\-\-display\-cop\-names\fR] [\fIfiles\fR|\fItaps\fR|\fIformulae\fR]
Check formulae or files for conformance to Homebrew style guidelines\.
.
.IP
-\fIformulae\fR is a list of formula names\.
-.
-.IP
-\fIfiles\fR is a list of file names\.
-.
-.IP
\fIformulae\fR and \fIfiles\fR may not be combined\. If both are omitted, style will run style checks on the whole Homebrew \fBLibrary\fR, including core code and all formulae\.
.
.IP
-If \fB\-\-fix\fR is passed and \fBHOMEBREW_DEVELOPER\fR is set, style violations will be automatically fixed using RuboCop\'s \fB\-\-auto\-correct\fR feature\.
+If \fB\-\-fix\fR is passed, style violations will be automatically fixed using RuboCop\'s \fB\-\-auto\-correct\fR feature\.
.
.IP
If \fB\-\-display\-cop\-names\fR is passed, the RuboCop cop name for each violation is included in the output\.
@@ -479,7 +473,7 @@ Print a JSON representation of \fItaps\fR\. Currently the only accepted value fo
Pass \fB\-\-installed\fR to get information on installed taps\.
.
.IP
-See the docs for examples of using the JSON: \fIhttps://github\.com/Homebrew/brew/blob/master/share/doc/homebrew/Querying\-Brew\.md\fR
+See the docs for examples of using the JSON: \fIhttps://github\.com/Homebrew/brew/blob/master/docs/Querying\-Brew\.md\fR
.
.TP
\fBtap\-pin\fR \fItap\fR
@@ -796,7 +790,7 @@ If \fB\-\-keep\-tmp\fR is passed, retain the temporary directory containing the
Homebrew, like \fBgit\fR(1), supports external commands\. These are executable scripts that reside somewhere in the \fBPATH\fR, named \fBbrew\-\fR\fIcmdname\fR or \fBbrew\-\fR\fIcmdname\fR\fB\.rb\fR, which can be invoked like \fBbrew\fR \fIcmdname\fR\. This allows you to create your own commands without modifying Homebrew\'s internals\.
.
.P
-Instructions for creating your own commands can be found in the docs: \fIhttps://github\.com/Homebrew/brew/blob/master/share/doc/homebrew/External\-Commands\.md\fR
+Instructions for creating your own commands can be found in the docs: \fIhttps://github\.com/Homebrew/brew/blob/master/docs/External\-Commands\.md\fR
.
.SH "SPECIFYING FORMULAE"
Many Homebrew commands accept one or more \fIformula\fR arguments\. These arguments can take several different forms:
@@ -915,7 +909,7 @@ If set, instructs Homebrew to use the value of \fBHOMEBREW_MAKE_JOBS\fR as the n
.
.TP
\fBHOMEBREW_NO_ANALYTICS\fR
-If set, Homebrew will not send analytics\. See: \fIhttps://github\.com/Homebrew/brew/blob/master/share/doc/homebrew/Analytics\.md#analytics\fR
+If set, Homebrew will not send analytics\. See: \fIhttps://github\.com/Homebrew/brew/blob/master/docs/Analytics\.md#analytics\fR
.
.TP
\fBHOMEBREW_NO_AUTO_UPDATE\fR
@@ -995,13 +989,16 @@ http_proxy=http://<user>:<password>@<host>:<port> brew install foo
.IP "" 0
.
.SH "SEE ALSO"
-Homebrew Documentation: \fIhttps://github\.com/Homebrew/brew/blob/master/share/doc/homebrew/\fR
+Homebrew Documentation: \fIhttps://github\.com/Homebrew/brew/blob/master/docs/\fR
.
.P
\fBgit\fR(1), \fBgit\-log\fR(1)
.
.SH "AUTHORS"
-Homebrew\'s current maintainers are Misty De Meo, Andrew Janke, Xu Cheng, Tomasz Pajor, Mike McQuaid, Baptiste Fontaine, Brett Koonce, ilovezfs, Martin Afanasjew, Dominyk Tiller, Tim Smith and Alex Dunn\.
+Homebrew\'s lead maintainer is Mike McQuaid\.
+.
+.P
+Homebrew\'s current maintainers are Misty De Meo, Andrew Janke, Xu Cheng, Tomasz Pajor, Baptiste Fontaine, Zhiming Wang, Brett Koonce, ilovezfs, Martin Afanasjew, Uladzislau Shablinski, Dominyk Tiller, Tim Smith and Alex Dunn\.
.
.P
Former maintainers with significant contributions include Jack Nagel, Adam Vandenberg and Homebrew\'s creator: Max Howell\.