diff --git a/Library/Homebrew/cmd/vendor-install.sh b/Library/Homebrew/cmd/vendor-install.sh index 90a33938248bf7dfbbbf157c4655cd6918b3b5de..ca64789bced5d878c36e23b7499d0b4e0d3ed242 100644 --- a/Library/Homebrew/cmd/vendor-install.sh +++ b/Library/Homebrew/cmd/vendor-install.sh @@ -8,6 +8,7 @@ source "$HOMEBREW_LIBRARY/Homebrew/utils/lock.sh" VENDOR_DIR="$HOMEBREW_LIBRARY/Homebrew/vendor" +# Built from https://github.com/Homebrew/homebrew-portable. if [[ -n "$HOMEBREW_OSX" ]] then if [[ "$HOMEBREW_PROCESSOR" = "Intel" ]] @@ -185,7 +186,10 @@ homebrew-vendor-install() { if [[ -z "$VENDOR_URL" || -z "$VENDOR_SHA" ]] then - odie "Cannot find a vendored version of $VENDOR_NAME." + odie <<-EOS +Cannot find a vendored version of $VENDOR_NAME for your $HOMEBREW_PROCESSOR +processor on $HOMEBREW_PRODUCT! +EOS fi VENDOR_VERSION="$(<"$VENDOR_DIR/portable-$VENDOR_NAME-version")" diff --git a/Library/Homebrew/manpages/brew.1.md.erb b/Library/Homebrew/manpages/brew.1.md.erb index 65344f8d0fda6bc82a3bb860eb809553617d82d2..1c15ecc369c66b0b763817ff95ad786c5f071fb0 100644 --- a/Library/Homebrew/manpages/brew.1.md.erb +++ b/Library/Homebrew/manpages/brew.1.md.erb @@ -156,6 +156,10 @@ can take several different forms: directories. TextMate can handle this correctly in project mode, but many editors will do strange things in this case. + * `HOMEBREW_FORCE_VENDOR_RUBY`: + If set, Homebrew will always use its vendored, relocatable Ruby 2.0 version + even if the system version of Ruby is >=2.0. + * `HOMEBREW_GITHUB_API_TOKEN`: A personal access token for the GitHub API, which you can create at <https://github.com/settings/tokens>. If set, GitHub will allow you a diff --git a/Library/Homebrew/utils/ruby.sh b/Library/Homebrew/utils/ruby.sh index 98fd34c1b44e7d015740c28380d0dd9a06a58d05..81bc16835f06fd65396255d22f3239d0c6465cfd 100644 --- a/Library/Homebrew/utils/ruby.sh +++ b/Library/Homebrew/utils/ruby.sh @@ -1,33 +1,4 @@ -original-setup-ruby-path() { - if [[ -z "$HOMEBREW_DEVELOPER" ]] - then - unset HOMEBREW_RUBY_PATH - fi - - if [[ -z "$HOMEBREW_RUBY_PATH" ]] - then - if [[ -n "$HOMEBREW_OSX" ]] - then - HOMEBREW_RUBY_PATH="/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby" - else - HOMEBREW_RUBY_PATH="$(which ruby)" - if [[ -z "$HOMEBREW_RUBY_PATH" ]] - then - odie "No Ruby found, cannot proceed." - fi - fi - fi - - export HOMEBREW_RUBY_PATH -} - setup-ruby-path() { - if [[ -z "$HOMEBREW_USE_VENDOR_RUBY" && -z "$HOMEBREW_FORCE_VENDOR_RUBY" ]] - then - original-setup-ruby-path - return - fi - local vendor_dir local vendor_ruby_current_version local vendor_ruby_path diff --git a/share/doc/homebrew/Common-Issues.md b/share/doc/homebrew/Common-Issues.md index 1efc1679312013f028809417cb0bb1475e75e881..70da9934561066b32d5f79814a20c838cc03e11c 100644 --- a/share/doc/homebrew/Common-Issues.md +++ b/share/doc/homebrew/Common-Issues.md @@ -38,7 +38,7 @@ invalid multibyte escape: /^\037\235/ In the past, Homebrew assumed that `/usr/bin/ruby` was Ruby 1.8. On OS X 10.9, it is now Ruby 2.0. There are various incompatibilities between the two versions, so if you upgrade to OS X 10.9 while using a sufficiently old version of Homebrew, you will encounter errors. -The incompatibilities have been addressed in more recent versions of Homebrew, and it does not make assumptions about `/usr/bin/ruby`, instead it uses the executable inside OS X's Ruby 1.8 framework. +The incompatibilities have been addressed in more recent versions of Homebrew, and it does not make assumptions about `/usr/bin/ruby`, instead it uses the executable inside OS X's Ruby framework or a vendored Ruby. To recover from this situation, do the following: diff --git a/share/doc/homebrew/brew.1.html b/share/doc/homebrew/brew.1.html index 5369cfba280a3ce70971dfee8f318984307caac2..5f6d4ef5f4f5247a4e46be533e9e690372a4a47e 100644 --- a/share/doc/homebrew/brew.1.html +++ b/share/doc/homebrew/brew.1.html @@ -561,6 +561,8 @@ several formulae in the same directory.</p> <p><em>Note:</em> <code>brew edit</code> will open all of Homebrew as discontinuous files and directories. TextMate can handle this correctly in project mode, but many editors will do strange things in this case.</p></dd> +<dt><code>HOMEBREW_FORCE_VENDOR_RUBY</code></dt><dd><p>If set, Homebrew will always use its vendored, relocatable Ruby 2.0 version +even if the system version of Ruby is >=2.0.</p></dd> <dt><code>HOMEBREW_GITHUB_API_TOKEN</code></dt><dd><p>A personal access token for the GitHub API, which you can create at <a href="https://github.com/settings/tokens" data-bare-link="true">https://github.com/settings/tokens</a>. If set, GitHub will allow you a greater number of API requests. See diff --git a/share/man/man1/brew.1 b/share/man/man1/brew.1 index 557bf0a33e89da0db31feb974a26c4f854e89321..5b32ba898788ed244c9538982b14af720b78ca15 100644 --- a/share/man/man1/brew.1 +++ b/share/man/man1/brew.1 @@ -771,6 +771,10 @@ If set, Homebrew will use this editor when editing a single formula, or several \fINote:\fR \fBbrew edit\fR will open all of Homebrew as discontinuous files and directories\. TextMate can handle this correctly in project mode, but many editors will do strange things in this case\. . .TP +\fBHOMEBREW_FORCE_VENDOR_RUBY\fR +If set, Homebrew will always use its vendored, relocatable Ruby 2\.0 version even if the system version of Ruby is >=2\.0\. +. +.TP \fBHOMEBREW_GITHUB_API_TOKEN\fR A personal access token for the GitHub API, which you can create at \fIhttps://github\.com/settings/tokens\fR\. If set, GitHub will allow you a greater number of API requests\. See \fIhttps://developer\.github\.com/v3/#rate\-limiting\fR for more information\. Homebrew uses the GitHub API for features such as \fBbrew search\fR\. .