diff options
| -rw-r--r-- | Library/Contributions/manpages/brew.1.md | 6 | ||||
| -rw-r--r-- | Library/Formula/mplayer.rb | 14 | ||||
| -rw-r--r-- | Library/Homebrew/download_strategy.rb | 27 | ||||
| -rw-r--r-- | Library/Homebrew/utils.rb | 2 | ||||
| -rw-r--r-- | share/man/man1/brew.1 | 7 | 
5 files changed, 39 insertions, 17 deletions
diff --git a/Library/Contributions/manpages/brew.1.md b/Library/Contributions/manpages/brew.1.md index b5184d055..b33c8c320 100644 --- a/Library/Contributions/manpages/brew.1.md +++ b/Library/Contributions/manpages/brew.1.md @@ -163,6 +163,12 @@ didn't include with OS X.      If set, instructs Homebrew to always assume `--verbose` when running      commands. +  * HOMEBREW\_SVN: +    When exporting from Subversion, Homebrew will use `HOMEBREW_SVN` if set, +    a Homebrew-built Subversion if installed, or the system-provided binary. + +    Set this to force Homebrew to use a particular svn binary. +  ## SEE ALSO   Homebrew Wiki: http://wiki.github.com/mxcl/homebrew/ diff --git a/Library/Formula/mplayer.rb b/Library/Formula/mplayer.rb index 37d273c9e..59406431c 100644 --- a/Library/Formula/mplayer.rb +++ b/Library/Formula/mplayer.rb @@ -2,14 +2,12 @@ require 'formula'  class Mplayer <Formula    homepage 'http://www.mplayerhq.hu/' -  head 'svn://svn.mplayerhq.hu/mplayer/trunk' +  # http://github.com/mxcl/homebrew/issues/issue/87 +  head 'svn://svn.mplayerhq.hu/mplayer/trunk', :using => StrictSubversionDownloadStrategy    depends_on 'pkg-config' => :recommended    depends_on 'yasm' => :optional -  # http://github.com/mxcl/homebrew/issues/#issue/87 -  depends_on :subversion if MACOS_VERSION < 10.6 -    def install      # Do not use pipes, per bug report      # http://github.com/mxcl/homebrew/issues#issue/622 @@ -30,11 +28,3 @@ class Mplayer <Formula      system "make install"    end  end - -if MACOS_VERSION < 10.6 -  class SubversionDownloadStrategy -    def svn -      Formula.factory('subversion').bin+'svn' -    end -  end -end diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index 3ec36cb54..75ae64c1e 100644 --- a/Library/Homebrew/download_strategy.rb +++ b/Library/Homebrew/download_strategy.rb @@ -198,11 +198,30 @@ class SubversionDownloadStrategy <AbstractDownloadStrategy      quiet_safe_system *args    end -  # Override this method in a DownloadStrategy to force the use of a non- -  # system svn binary. mplayer.rb uses this to require a svn new enough to -  # understand its externals. +  # Try HOMEBREW_SVN, a Homebrew-built svn, and finally the OS X system svn. +  # Not all features are available in the 10.5 system-provided svn.    def svn -    '/usr/bin/svn' +    return ENV['HOMEBREW_SVN'] if ENV['HOMEBREW_SVN'] +    return "#{HOMEBREW_PREFIX}/bin/svn" if File.exist? "#{HOMEBREW_PREFIX}/bin/svn" +    return '/usr/bin/svn' +  end +end + +# Require a newer version of Subversion than 1.4.x (Leopard-provided version) +class StrictSubversionDownloadStrategy <SubversionDownloadStrategy +  def svn +    exe = super +    `#{exe} --version` =~ /version (\d+\.\d+(\.\d+)*)/ +    svn_version = $1 +    version_tuple=svn_version.split(".").collect {|v|Integer(v)} + +    if version_tuple[0] == 1 and version_tuple[1] <= 4 +      onoe "Detected Subversion (#{exe}, version #{svn_version}) is too old." +      puts "Subversion 1.4.x will not export externals correctly for this formula." +      puts "You must either `brew install subversion` or set HOMEBREW_SVN to the path" +      puts "of a newer svn binary." +    end +    return exe    end  end diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index 1de969939..d6170c323 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -255,7 +255,7 @@ def dump_build_env env    puts "\"--use-llvm\" was specified" if ARGV.include? '--use-llvm'    %w[ CC CXX LD CFLAGS CXXFLAGS CPPFLAGS LDFLAGS MACOSX_DEPLOYMENT_TARGET MAKEFLAGS PKG_CONFIG_PATH -      HOMEBREW_DEBUG HOMEBREW_VERBOSE HOMEBREW_USE_LLVM ].each do |k| +      HOMEBREW_DEBUG HOMEBREW_VERBOSE HOMEBREW_USE_LLVM HOMEBREW_SVN ].each do |k|      value = env[k]      puts "#{k}: #{value}" if value    end diff --git a/share/man/man1/brew.1 b/share/man/man1/brew.1 index e286e430c..83b0be1db 100644 --- a/share/man/man1/brew.1 +++ b/share/man/man1/brew.1 @@ -178,6 +178,13 @@ If set, instructs Homebrew to use the LLVM front\-ends to the GCC compilers\.  HOMEBREW_VERBOSE  If set, instructs Homebrew to always assume \fB\-\-verbose\fR when running commands\.  . +.TP +HOMEBREW_SVN +When exporting from Subversion, Homebrew will use \fBHOMEBREW_SVN\fR if set, a Homebrew\-built Subversion if installed, or the system\-provided binary\. +. +.IP +Set this to force Homebrew to use a particular svn binary\. +.  .SH "SEE ALSO"  Homebrew Wiki: http://wiki\.github\.com/mxcl/homebrew/  .  | 
