diff options
| author | Zhiming Wang | 2016-08-26 10:17:59 +0800 |
|---|---|---|
| committer | Zhiming Wang | 2016-08-26 12:39:27 +0800 |
| commit | e82347b233d0f80e916cc096445d8be79b06e551 (patch) | |
| tree | e1fadafc9e753b5a53868686f937a0e3082643fa /Library/Homebrew | |
| parent | c39f0baa2169c2c65fd6aca2f33fac6e31899855 (diff) | |
| download | brew-e82347b233d0f80e916cc096445d8be79b06e551.tar.bz2 | |
Restrict TMPDIR etc. changes to install, post_install and test
See discussion in Homebrew/brew#800.
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/build.rb | 9 | ||||
| -rw-r--r-- | Library/Homebrew/config.rb | 5 | ||||
| -rw-r--r-- | Library/Homebrew/formula.rb | 14 |
3 files changed, 23 insertions, 5 deletions
diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb index 8915e948c..a015f158c 100644 --- a/Library/Homebrew/build.rb +++ b/Library/Homebrew/build.rb @@ -103,6 +103,11 @@ class Build end end + old_tmpdir = ENV["TMPDIR"] + old_temp = ENV["TEMP"] + old_tmp = ENV["TMP"] + ENV["TMPDIR"] = ENV["TEMP"] = ENV["TMP"] = HOMEBREW_TEMP + formula.extend(Debrew::Formula) if ARGV.debug? formula.brew do |_formula, staging| @@ -139,6 +144,10 @@ class Build formula.prefix.install_metafiles formula.libexec if formula.libexec.exist? end end + ensure + ENV["TMPDIR"] = old_tmpdir + ENV["TEMP"] = old_temp + ENV["TMP"] = old_tmp end def detect_stdlibs(compiler) diff --git a/Library/Homebrew/config.rb b/Library/Homebrew/config.rb index 9a49eb4f4..cef615365 100644 --- a/Library/Homebrew/config.rb +++ b/Library/Homebrew/config.rb @@ -35,11 +35,6 @@ HOMEBREW_LOGS = Pathname.new(ENV["HOMEBREW_LOGS"] || "~/Library/Logs/Homebrew/") # Must use /tmp instead of $TMPDIR because long paths break Unix domain sockets HOMEBREW_TEMP = Pathname.new(ENV.fetch("HOMEBREW_TEMP", "/tmp")) -# Set common tmpdir environment variables to HOMEBREW_TEMP -ENV["TMPDIR"] = HOMEBREW_TEMP -ENV["TEMP"] = HOMEBREW_TEMP -ENV["TMP"] = HOMEBREW_TEMP - unless defined? HOMEBREW_LIBRARY_PATH # Root of the Homebrew code base HOMEBREW_LIBRARY_PATH = Pathname.new(__FILE__).realpath.parent diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index ac6093880..a57d51a01 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -888,11 +888,18 @@ class Formula def run_post_install build = self.build self.build = Tab.for_formula(self) + old_tmpdir = ENV["TMPDIR"] + old_temp = ENV["TEMP"] + old_tmp = ENV["TMP"] + ENV["TMPDIR"] = ENV["TEMP"] = ENV["TMP"] = HOMEBREW_TEMP with_logging("post_install") do post_install end ensure self.build = build + ENV["TMPDIR"] = old_tmpdir + ENV["TEMP"] = old_temp + ENV["TMP"] = old_tmp end # Tell the user about any caveats regarding this package. @@ -1411,7 +1418,11 @@ class Formula def run_test old_home = ENV["HOME"] old_curl_home = ENV["CURL_HOME"] + old_tmpdir = ENV["TMPDIR"] + old_temp = ENV["TEMP"] + old_tmp = ENV["TMP"] ENV["CURL_HOME"] = old_curl_home || old_home + ENV["TMPDIR"] = ENV["TEMP"] = ENV["TMP"] = HOMEBREW_TEMP mktemp("#{name}-test") do |staging| staging.retain! if ARGV.keep_tmp? @testpath = staging.tmpdir @@ -1430,6 +1441,9 @@ class Formula @testpath = nil ENV["HOME"] = old_home ENV["CURL_HOME"] = old_curl_home + ENV["TMPDIR"] = old_tmpdir + ENV["TEMP"] = old_temp + ENV["TMP"] = old_tmp end # @private |
