<commit_before>require 'formula'

def build_java?;   build.include? "java";   end
def build_perl?;   build.include? "perl";   end
def build_python?; build.include? "python"; end
def build_ruby?;   build.include? "ruby";   end
def with_unicode_path?; build.include? "unicode-path"; end

class Subversion < Formula
  homepage 'http://subversion.apache.org/'
  url 'http://www.apache.org/dyn/closer.cgi?path=subversion/subversion-1.7.9.tar.bz2'
  sha1 '453757bae78a800997559f2232483ab99238ec1e'

  option :universal
  option 'java', 'Build Java bindings'
  option 'perl', 'Build Perl bindings'
  option 'python', 'Build Python bindings'
  option 'ruby', 'Build Ruby bindings'
  option 'unicode-path', 'Include support for OS X UTF-8-MAC filename'

  depends_on 'pkg-config' => :build

  # Always build against Homebrew versions instead of system versions for consistency.
  depends_on 'neon'
  depends_on 'sqlite'
  depends_on 'serf'

  # Building Ruby bindings requires libtool
  depends_on :libtool if build_ruby?

  def patches
    ps = []

    # Patch for Subversion handling of OS X UTF-8-MAC filename.
    if with_unicode_path?
      ps << "https://raw.github.com/gist/3044094/1648c28f6133bcbb68b76b42669b0dc237c02dba/patch-path.c.diff"
    end

    # Patch to prevent '-arch ppc' from being pulled in from Perl's $Config{ccflags}
    if build_perl?
      ps << DATA
    end

    unless ps.empty?
      { :p0 => ps }
    end
  end

  # When building Perl, Python or Ruby bindings, need to use a compiler that
  # recognizes GCC-style switches, since that's what the system languages
  # were compiled against.
  fails_with :clang do
    build 318
    cause "core.c:1: error: bad value (native) for -march= switch"
  end if build_perl? or build_python? or build_ruby?

  def apr_bin
    superbin or "/usr/bin"
  end

  def install
    # We had weird issues with "make" apparently hanging on first run:
    # https://github.com/mxcl/homebrew/issues/13226
    ENV.deparallelize

    if build_java?
      unless build.universal?
        opoo "A non-Universal Java build was requested."
        puts "To use Java bindings with various Java IDEs, you might need a universal build:"
        puts "  brew install subversion --universal --java"
      end

      unless (ENV["JAVA_HOME"] or "").empty?
        opoo "JAVA_HOME is set. Try unsetting it if JNI headers cannot be found."
      end<commit_msg>subversion: building bindings triggers user paths<commit_after>require 'formula'

def build_java?;   build.include? "java";   end
def build_perl?;   build.include? "perl";   end
def build_python?; build.include? "python"; end
def build_ruby?;   build.include? "ruby";   end
def with_unicode_path?; build.include? "unicode-path"; end

def find_interpreters?
  build_perl? || build_python? || build_ruby?
end

class Subversion < Formula
  homepage 'http://subversion.apache.org/'
  url 'http://www.apache.org/dyn/closer.cgi?path=subversion/subversion-1.7.9.tar.bz2'
  sha1 '453757bae78a800997559f2232483ab99238ec1e'

  option :universal
  option 'java', 'Build Java bindings'
  option 'perl', 'Build Perl bindings'
  option 'python', 'Build Python bindings'
  option 'ruby', 'Build Ruby bindings'
  option 'unicode-path', 'Include support for OS X UTF-8-MAC filename'

  depends_on 'pkg-config' => :build

  # Always build against Homebrew versions instead of system versions for consistency.
  depends_on 'neon'
  depends_on 'sqlite'
  depends_on 'serf'

  # Building Ruby bindings requires libtool
  depends_on :libtool if build_ruby?

  # If building bindings, allow non-system interpreters
  env :userpaths if find_interpreters?

  def patches
    ps = []

    # Patch for Subversion handling of OS X UTF-8-MAC filename.
    if with_unicode_path?
      ps << "https://raw.github.com/gist/3044094/1648c28f6133bcbb68b76b42669b0dc237c02dba/patch-path.c.diff"
    end

    # Patch to prevent '-arch ppc' from being pulled in from Perl's $Config{ccflags}
    if build_perl?
      ps << DATA
    end

    unless ps.empty?
      { :p0 => ps }
    end
  end

  # When building Perl, Python or Ruby bindings, need to use a compiler that
  # recognizes GCC-style switches, since that's what the system languages
  # were compiled against.
  fails_with :clang do
    build 318
    cause "core.c:1: error: bad value (native) for -march= switch"
  end if find_interpreters?

  def apr_bin
    superbin or "/usr/bin"
  end

  def install
    # We had weird issues with "make" apparently hanging on first run:
    # https://github.com/mxcl/homebrew/issues/13226
    ENV.deparallelize

    if build_java?
      unless build.universal?
        opoo "A non-Universal Java build was requested."
        puts "To use Java bindings with various Java IDEs, you might need a universal build:"
        puts "  brew install subversion --universal --java"
      end

      unless (ENV["JAVA_HOME"] or "").empty?
        opoo "JAVA_HOME is set. Try unsetting it if JNI headers cannot be found."
      end
{'fraction_non_alphanumeric': 0.09483624673498091, 'fraction_numerical': 0.031746031746031744, 'mean_word_length': 3.336236933797909, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 7, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3490097', 'n_tokens_mistral': 1750, 'n_tokens_neox': 1582, 'n_words': 526}