# Maintainer: Alexey Pavlov <alexpux@gmail.com>

pkgname=git
pkgver=2.4.3
pkgrel=1
pkgdesc="The fast distributed version control system"
arch=('i686' 'x86_64')
url="http://git-scm.com/"
license=('GPL2')
groups=('VCS')
depends=('curl'
         'expat>=2.0'
         #'info'
         'libpcre'
         'vim'
         'openssh'
         'openssl'
         'perl-Error'
         'perl>=5.14.0'
         'perl-Authen-SASL'
         'perl-libwww'
         'perl-MIME-tools'
         'perl-Net-SMTP-SSL'
         'perl-TermReadKey')
makedepends=('asciidoc'
             'docbook-xml'
             'docbook-xsl'
             #'docbook2x'
             'less'
             'libcurl-devel'
             'pcre-devel'
             #'python2'
             'rsync'
             #'texinfo'
             'xmlto')
optdepends=(#'tk: gitk and git gui'
            'python2: various helper scripts'
            'subversion: git svn'
            #'cvsps: git cvsimport'
            )
#install=git.install
replaces=('git-core')
provides=('git-core')
source=("${pkgname}-${pkgver}.tar.gz"::https://github.com/git/git/archive/v${pkgver}.tar.gz
        1.7.9-cygwin.patch
        git-1.9.0-manifest-msys2.patch
        git-1.8.4-msys2.patch
        git-2.3.5-mingw-pwd.patch)
md5sums=('b666e79a7accf0e3efbcc7093c27e4c1'
         'c33c9dfa2944a0de9151a7af7a63a27b'
         'f5975b367aa0979006bb07b297ef081b'
         '9f9170a30dfb7643df4948cdae5bb864'
         '18381075d8c134d8c4b03c9a566f40f0')

prepare() {
  cd "$srcdir/$pkgname-$pkgver"

  rm -f compat/win32/git.manifest compat/win32/resource.rc
  patch -p2 -i ${srcdir}/1.7.9-cygwin.patch
  patch -p1 -i ${srcdir}/git-1.9.0-manifest-msys2.patch
  patch -p1 -i ${srcdir}/git-1.8.4-msys2.patch
  patch -p2 -i ${srcdir}/git-2.3.5-mingw-pwd.patch

  local _arch=
  if [ "${CARCH}" == 'x86_64' ]; then
    _arch='amd64'
  elif [ "${CARCH}" == 'i686' ]; then
    _arch='x86'
  fi
  sed -e "s|@ARCH@|${_arch}|g" -i compat/win32/git.manifest

  make configure
}

build() {
  export PYTHON_PATH='/usr/bin/python2'
  cd "$srcdir/$pkgname-$pkgver"

  ./configure --build=${CHOST} \
    --prefix=/usr \
    --sysconfdir=/etc \
    --libexecdir=/usr/lib \
    --with-libpcre \
    --with-editor=vim \
    --htmldir=/usr/share/doc/git/html \
    --mandir=/usr/share/man

  make INSTALLDIRS=vendor all
  make -j1 man
  #make -j1 info
  make -C contrib/subtree prefix=/usr all
}

check() {
  export PYTHON_PATH='/usr/bin/python2'
  cd "$srcdir/$pkgname-$pkgver"
  local jobs
  jobs=$(expr "$MAKEFLAGS" : '.*\(-j[0-9]*\).*')
  mkdir -p /tmp/git-test
  # We used to use this, but silly git regressions:
  #GIT_TEST_OPTS="--root=/dev/shm/" \
  # http://comments.gmane.org/gmane.comp.version-control.git/202020
  make \
    NO_SVN_TESTS=y \
    DEFAULT_TEST_TARGET=prove \
    GIT_PROVE_OPTS="$jobs -Q" \
    GIT_TEST_OPTS="--root=/tmp/git-test" \
    test
}

package() {
  export PYTHON_PATH='/usr/bin/python2'
  cd "$srcdir/$pkgname-$pkgver"
  make INSTALLDIRS=vendor DESTDIR="$pkgdir" install
  make INSTALLDIRS=vendor DESTDIR="$pkgdir" install-man
  #make INSTALLDIRS=vendor DESTDIR="$pkgdir" install-info

  # bash completion
  mkdir -p "$pkgdir"/usr/share/bash-completion/completions/
  install -m644 ./contrib/completion/git-completion.bash "$pkgdir"/usr/share/bash-completion/completions/git
  # fancy git prompt
  mkdir -p "$pkgdir"/usr/share/git/
  install -m644 ./contrib/completion/git-prompt.sh "$pkgdir"/usr/share/git/git-prompt.sh
  # subtree installation
  sed "s|libexec/git-core|lib/git-core|" -i contrib/subtree/Makefile
  make -C contrib/subtree prefix=/usr DESTDIR="$pkgdir" install

  # the rest of the contrib stuff
  cp -a ./contrib/* $pkgdir/usr/share/git/

  # scripts are for python 2.x
  sed -i 's|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|' \
    $(find "$pkgdir" -name '*.py') \
    "$pkgdir"/usr/lib/git-core/git-p4 \
    "$pkgdir"/usr/share/git/gitview/gitview \
    "$pkgdir"/usr/share/git/remote-helpers/git-remote-bzr \
    "$pkgdir"/usr/share/git/remote-helpers/git-remote-hg
  sed -i 's|#![ ]*/usr/bin/python$|#!/usr/bin/python2|' \
    "$pkgdir"/usr/share/git/svn-fe/svnrdump_sim.py

  # remove perllocal.pod, .packlist, and empty directories.
  find $pkgdir/usr/lib/perl5 -name *.pod -delete
  find $pkgdir/usr/lib/perl5 -name .packlist -delete
}
