From 7af4622b0f06d0f505f4e57ea4f65b6e8626e2cc Mon Sep 17 00:00:00 2001 From: Misty De Meo Date: Sat, 19 May 2012 19:57:56 -0500 Subject: [PATCH] Replace /usr/bin/ruby with full Framework path Rationale: some users insist on replacing the /usr/bin/ruby symlink to point to another ruby on their system, which may break homebrew. Use the full Framework path instead, which is less likely to be tampered with. This also reorganizes the brew --config checks to reflect the different path. Fixes Homebrew/homebrew#12009. Closes Homebrew/homebrew#12333. Signed-off-by: Misty De Meo --- Library/Contributions/brew_bash_completion.sh | 2 +- Library/Contributions/cmds/brew-server | 2 +- Library/Contributions/install_homebrew.rb | 2 +- Library/Homebrew/build.rb | 2 +- Library/Homebrew/cmd/--config.rb | 6 +----- Library/Homebrew/formula_installer.rb | 2 +- bin/brew | 2 +- 7 files changed, 7 insertions(+), 11 deletions(-) diff --git a/Library/Contributions/brew_bash_completion.sh b/Library/Contributions/brew_bash_completion.sh index 6261f7749a..0e573f3098 100644 --- a/Library/Contributions/brew_bash_completion.sh +++ b/Library/Contributions/brew_bash_completion.sh @@ -95,7 +95,7 @@ __brew_complete_tapped () __brew_complete_taps () { if [[ -z "$__brew_cached_taps" ]]; then - __brew_cached_taps="$(/usr/bin/ruby -e ' + __brew_cached_taps="$(/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -e ' require "open-uri" require "yaml" diff --git a/Library/Contributions/cmds/brew-server b/Library/Contributions/cmds/brew-server index bcc15c257e..fe81ea64c6 100755 --- a/Library/Contributions/cmds/brew-server +++ b/Library/Contributions/cmds/brew-server @@ -1,4 +1,4 @@ -#!/usr/bin/ruby +#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby ## brew server: Run a local webserver for browsing available and installed brews. # Note: this external command is ruby, but set up as a shell script, so that it gets exec'd. diff --git a/Library/Contributions/install_homebrew.rb b/Library/Contributions/install_homebrew.rb index 32099946f2..3cf4f2f1cc 100644 --- a/Library/Contributions/install_homebrew.rb +++ b/Library/Contributions/install_homebrew.rb @@ -1,4 +1,4 @@ -#!/usr/bin/ruby +#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby # This script installs to /usr/local only. To install elsewhere you can just # untar https://github.com/mxcl/homebrew/tarball/master anywhere you like. diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb index f72633ffac..9ba49ba3f9 100755 --- a/Library/Homebrew/build.rb +++ b/Library/Homebrew/build.rb @@ -1,4 +1,4 @@ -#!/usr/bin/ruby +#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby # This script is called by formula_installer as a separate instance. # Rationale: Formula can use __END__, Formula can change ENV diff --git a/Library/Homebrew/cmd/--config.rb b/Library/Homebrew/cmd/--config.rb index abe247cadb..5fb455d23d 100644 --- a/Library/Homebrew/cmd/--config.rb +++ b/Library/Homebrew/cmd/--config.rb @@ -91,10 +91,7 @@ module Homebrew extend self puts hardware puts "MacOS: #{MACOS_FULL_VERSION}-#{kernel}" puts "Xcode: #{xcode_version}" - puts "/usr/bin/ruby: #{RUBY_VERSION}-#{RUBY_PATCHLEVEL}" if RUBY_VERSION.to_f != 1.8 - - ruby = Pathname.new("/usr/bin/ruby") - puts "/usr/bin/ruby => #{ruby.realpath}" unless ruby.realpath.to_s =~ %r{^/System} + puts "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby:\n #{RUBY_VERSION}-#{RUBY_PATCHLEVEL}" if RUBY_VERSION.to_f != 1.8 ponk = macports_or_fink_installed? puts "MacPorts/Fink: #{ponk}" if ponk @@ -119,7 +116,6 @@ module Homebrew extend self MacPorts or Fink? #{macports_or_fink_installed?} X11: #{describe_x11} System Ruby: #{RUBY_VERSION}-#{RUBY_PATCHLEVEL} - /usr/bin/ruby => #{real_path("/usr/bin/ruby")} Which Perl: #{describe_perl} Which Python: #{describe_python} Which Ruby: #{describe_ruby} diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 2e57be44a0..338bd4771a 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -195,7 +195,7 @@ class FormulaInstaller begin read.close exec '/usr/bin/nice', - '/usr/bin/ruby', + '/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby', '-I', Pathname.new(__FILE__).dirname, '-rbuild', '--', diff --git a/bin/brew b/bin/brew index ac713539c4..51e019e1c0 100755 --- a/bin/brew +++ b/bin/brew @@ -1,4 +1,4 @@ -#!/usr/bin/ruby +#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby # -*- coding: utf-8 -*- HOMEBREW_BREW_FILE = ENV['HOMEBREW_BREW_FILE'] = File.expand_path(__FILE__)