Created
February 16, 2014 15:29
-
-
Save sushihangover/9036063 to your computer and use it in GitHub Desktop.
Homebrew Git 1.9.0 update | http://sushihangover.github.io/homebrew-git-1-dot-9-0-release/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'formula' | |
class Git < Formula | |
homepage 'http://git-scm.com' | |
url 'https://git-core.googlecode.com/files/git-1.9.0.tar.gz' | |
sha1 'e60667fc16e5a5f1cde46616b0458cc802707743' | |
head 'https://github.com/git/git.git' | |
bottle do | |
sha1 "582a276b608de17888da01922648522bf7a9c11a" => :mavericks | |
sha1 "f308b293aa5664b65c57c3b206b892537397d3b9" => :mountain_lion | |
sha1 "fa5f896b766bb103804800abde58e25579cf58a7" => :lion | |
end | |
option 'with-blk-sha1', 'Compile with the block-optimized SHA1 implementation' | |
option 'without-completions', 'Disable bash/zsh completions from "contrib" directory' | |
option 'with-brewed-openssl', "Build with Homebrew OpenSSL instead of the system version" | |
option 'with-brewed-curl', "Use Homebrew's version of cURL library" | |
option 'with-persistent-https', 'Build git-remote-persistent-https from "contrib" directory' | |
depends_on 'pcre' => :optional | |
depends_on 'gettext' => :optional | |
depends_on 'openssl' if build.with? 'brewed-openssl' | |
depends_on 'curl' if build.with? 'brewed-curl' | |
depends_on 'go' => :build if build.with? 'persistent-https' | |
resource 'man' do | |
url 'http://git-core.googlecode.com/files/git-manpages-1.9.0.tar.gz' | |
sha1 'cff590c92b4d1c8a143c078473140b653cc5d56a' | |
end | |
resource 'html' do | |
url 'http://git-core.googlecode.com/files/git-htmldocs-1.9.0.tar.gz' | |
sha1 '65eb3f411f4699695c7081a7c716cabb9ce23d75' | |
end | |
def patches | |
if MacOS.version >= :mavericks and not build.head? | |
# Allow using PERLLIB_EXTRA to find Subversion Perl bindings location | |
# in the CLT/Xcode. Should be included in Git 1.8.6. | |
# https://git.kernel.org/cgit/git/git.git/commit/?h=next&id=07981d | |
# https://git.kernel.org/cgit/git/git.git/commit/?h=next&id=0386dd | |
#['https://git.kernel.org/cgit/git/git.git/patch/?id=07981d', | |
# 'https://git.kernel.org/cgit/git/git.git/patch/?id=0386dd'] | |
end | |
end | |
def install | |
# If these things are installed, tell Git build system to not use them | |
ENV['NO_FINK'] = '1' | |
ENV['NO_DARWIN_PORTS'] = '1' | |
ENV['V'] = '1' # build verbosely | |
ENV['NO_R_TO_GCC_LINKER'] = '1' # pass arguments to LD correctly | |
ENV['PYTHON_PATH'] = which 'python' | |
ENV['PERL_PATH'] = which 'perl' | |
if MacOS.version >= :mavericks and MacOS.dev_tools_prefix | |
ENV['PERLLIB_EXTRA'] = "#{MacOS.dev_tools_prefix}/Library/Perl/5.16/darwin-thread-multi-2level" | |
end | |
unless quiet_system ENV['PERL_PATH'], '-e', 'use ExtUtils::MakeMaker' | |
ENV['NO_PERL_MAKEMAKER'] = '1' | |
end | |
ENV['BLK_SHA1'] = '1' if build.with? 'blk-sha1' | |
if build.with? 'pcre' | |
ENV['USE_LIBPCRE'] = '1' | |
ENV['LIBPCREDIR'] = Formula.factory('pcre').opt_prefix | |
end | |
ENV['NO_GETTEXT'] = '1' unless build.with? 'gettext' | |
system "make", "prefix=#{prefix}", | |
"sysconfdir=#{etc}", | |
"CC=#{ENV.cc}", | |
"CFLAGS=#{ENV.cflags}", | |
"LDFLAGS=#{ENV.ldflags}", | |
"install" | |
bin.install Dir["contrib/remote-helpers/git-remote-{hg,bzr}"] | |
# Install the OS X keychain credential helper | |
cd 'contrib/credential/osxkeychain' do | |
system "make", "CC=#{ENV.cc}", | |
"CFLAGS=#{ENV.cflags}", | |
"LDFLAGS=#{ENV.ldflags}" | |
bin.install 'git-credential-osxkeychain' | |
system "make", "clean" | |
end | |
# Install git-subtree | |
cd 'contrib/subtree' do | |
system "make", "CC=#{ENV.cc}", | |
"CFLAGS=#{ENV.cflags}", | |
"LDFLAGS=#{ENV.ldflags}" | |
bin.install 'git-subtree' | |
end | |
if build.with? 'persistent-https' | |
cd 'contrib/persistent-https' do | |
system "make" | |
bin.install 'git-remote-persistent-http', | |
'git-remote-persistent-https', | |
'git-remote-persistent-https--proxy' | |
end | |
end | |
unless build.without? 'completions' | |
# install the completion script first because it is inside 'contrib' | |
bash_completion.install 'contrib/completion/git-completion.bash' | |
bash_completion.install 'contrib/completion/git-prompt.sh' | |
zsh_completion.install 'contrib/completion/git-completion.zsh' => '_git' | |
cp "#{bash_completion}/git-completion.bash", zsh_completion | |
end | |
(share+'git-core').install 'contrib' | |
# We could build the manpages ourselves, but the build process depends | |
# on many other packages, and is somewhat crazy, this way is easier. | |
man.install resource('man') | |
(share+'doc/git-doc').install resource('html') | |
# Make html docs world-readable; check if this is still needed at 1.8.6 | |
chmod 0644, Dir["#{share}/doc/git-doc/**/*.{html,txt}"] | |
end | |
def caveats; <<-EOS.undent | |
The OS X keychain credential helper has been installed to: | |
#{HOMEBREW_PREFIX}/bin/git-credential-osxkeychain | |
The 'contrib' directory has been installed to: | |
#{HOMEBREW_PREFIX}/share/git-core/contrib | |
EOS | |
end | |
test do | |
HOMEBREW_REPOSITORY.cd do | |
assert_equal 'bin/brew', `#{bin}/git ls-files -- bin`.strip | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment