diff options
Diffstat (limited to 'Library')
| -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 |
3 files changed, 18 insertions, 8 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 |
