diff options
| author | Adam Vandenberg | 2010-05-01 14:06:23 -0700 |
|---|---|---|
| committer | Adam Vandenberg | 2010-07-03 21:48:37 -0700 |
| commit | 773c2c8c9eca11d59eb42ab61d3cc8c4739fab59 (patch) | |
| tree | 316f789b59b78517786b0ed339d28c7ce15a0b62 | |
| parent | eacfd17af9bfaac27a17675a1e65fddbacf7296d (diff) | |
| download | homebrew-773c2c8c9eca11d59eb42ab61d3cc8c4739fab59.tar.bz2 | |
Allow user to override temp folder with HOMEBREW_TEMP
| -rw-r--r-- | Library/Contributions/manpages/brew.1.md | 9 | ||||
| -rw-r--r-- | Library/Homebrew/brew_doctor.rb | 10 | ||||
| -rw-r--r-- | Library/Homebrew/formula.rb | 7 | ||||
| -rw-r--r-- | share/man/man1/brew.1 | 9 |
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\. . |
