aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Vandenberg2010-05-01 14:06:23 -0700
committerAdam Vandenberg2010-07-03 21:48:37 -0700
commit773c2c8c9eca11d59eb42ab61d3cc8c4739fab59 (patch)
tree316f789b59b78517786b0ed339d28c7ce15a0b62
parenteacfd17af9bfaac27a17675a1e65fddbacf7296d (diff)
downloadhomebrew-773c2c8c9eca11d59eb42ab61d3cc8c4739fab59.tar.bz2
Allow user to override temp folder with HOMEBREW_TEMP
-rw-r--r--Library/Contributions/manpages/brew.1.md9
-rw-r--r--Library/Homebrew/brew_doctor.rb10
-rw-r--r--Library/Homebrew/formula.rb7
-rw-r--r--share/man/man1/brew.19
4 files changed, 26 insertions, 9 deletions
diff --git a/Library/Contributions/manpages/brew.1.md b/Library/Contributions/manpages/brew.1.md
index cf4fec4a3..b5184d055 100644
--- a/Library/Contributions/manpages/brew.1.md
+++ b/Library/Contributions/manpages/brew.1.md
@@ -146,6 +146,15 @@ didn't include with OS X.
* HOMEBREW\_DEBUG:
If set, instructs Homebrew to always assume `--debug` when running commands.
+ * HOMEBREW\_TEMP:
+ If set, instructs Homebrew to use `HOMEBREW_TEMP` as the temporary folder
+ for building packages. This may be needed if your system temp folder and
+ Homebrew Prefix are on different volumes, as OS X has trouble moving
+ symlinks across volumes when the target does not yet exist.
+
+ This issue typically occurs when using FileVault (or certain custom SSD
+ configurations.)
+
* HOMEBREW\_USE\_LLVM:
If set, instructs Homebrew to use the LLVM front-ends to the GCC compilers.
*NOTE*: Not all formulae will build correctly under LLVM.
diff --git a/Library/Homebrew/brew_doctor.rb b/Library/Homebrew/brew_doctor.rb
index e6202798c..c4daa06c4 100644
--- a/Library/Homebrew/brew_doctor.rb
+++ b/Library/Homebrew/brew_doctor.rb
@@ -353,17 +353,13 @@ def check_for_multiple_volumes
unless where_cellar == where_temp
puts <<-EOS.undent
- Your Cellar and TMP folders are on different volumes.
+ Your Cellar and /tmp folders are on different volumes.
Putting your Cellar and TMP folders on different volumes causes problems
for brews that install symlinks, such as Git.
- Please post the details of your setup to this existing issue, if the comments
- there don't already capture them:
- http://github.com/mxcl/homebrew/issues/issue/1238
-
- A work-around is available in this branch:
- http://github.com/adamv/homebrew/tree/temp
+ You should set the "HOMEBREW_TEMP" environmental variable to a suitable
+ folder on the same volume as your Cellar.
EOS
end
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 7f8b5ebc5..325ec8408 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -347,7 +347,12 @@ private
# I used /tmp rather than mktemp -td because that generates a directory
# name with exotic characters like + in it, and these break badly written
# scripts that don't escape strings before trying to regexp them :(
- tmp=Pathname.new `/usr/bin/mktemp -d /tmp/homebrew-#{name}-#{version}-XXXX`.strip
+
+ # If the user has FileVault enabled, then we can't mv symlinks from the
+ # /tmp volume to the other volume. So we let the user override the tmp
+ # prefix if they need to.
+ tmp_prefix = ENV['HOMEBREW_TEMP'] || '/tmp'
+ tmp=Pathname.new `/usr/bin/mktemp -d #{tmp_prefix}/homebrew-#{name}-#{version}-XXXX`.strip
raise "Couldn't create build sandbox" if not tmp.directory? or $? != 0
begin
wd=Dir.pwd
diff --git a/share/man/man1/brew.1 b/share/man/man1/brew.1
index 7c4ff5c14..e286e430c 100644
--- a/share/man/man1/brew.1
+++ b/share/man/man1/brew.1
@@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
-.TH "BREW" "1" "June 2010" "Homebrew" "brew"
+.TH "BREW" "1" "July 2010" "Homebrew" "brew"
.
.SH "NAME"
\fBbrew\fR \- The missing package manager for OS X
@@ -161,6 +161,13 @@ HOMEBREW_DEBUG
If set, instructs Homebrew to always assume \fB\-\-debug\fR when running commands\.
.
.TP
+HOMEBREW_TEMP
+If set, instructs Homebrew to use \fBHOMEBREW_TEMP\fR as the temporary folder for building packages\. This may be needed if your system temp folder and Homebrew Prefix are on different volumes, as OS X has trouble moving symlinks across volumes when the target does not yet exist\.
+.
+.IP
+This issue typically occurs when using FileVault (or certain custom SSD configurations\.)
+.
+.TP
HOMEBREW_USE_LLVM
If set, instructs Homebrew to use the LLVM front\-ends to the GCC compilers\.
.