From 59386a777a8fc6edcb252ac24f74d1e680647db5 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 21 Sep 2015 20:37:19 +0000
Subject: git: update to 2.5.3

---
 abs/extra/git/ChangeLog           |  57 ---------------------
 abs/extra/git/PKGBUILD            | 104 ++++++++++++++++++++------------------
 abs/extra/git/git-daemon          |  70 -------------------------
 abs/extra/git/git-daemon.conf     |   5 --
 abs/extra/git/git-daemon.socket   |   9 ++++
 abs/extra/git/git-daemon@.service |  10 ++++
 abs/extra/git/git.install         |  12 +++++
 7 files changed, 87 insertions(+), 180 deletions(-)
 delete mode 100644 abs/extra/git/ChangeLog
 delete mode 100644 abs/extra/git/git-daemon
 delete mode 100644 abs/extra/git/git-daemon.conf
 create mode 100644 abs/extra/git/git-daemon.socket
 create mode 100644 abs/extra/git/git-daemon@.service
 create mode 100644 abs/extra/git/git.install

diff --git a/abs/extra/git/ChangeLog b/abs/extra/git/ChangeLog
deleted file mode 100644
index f0c1523..0000000
--- a/abs/extra/git/ChangeLog
+++ /dev/null
@@ -1,57 +0,0 @@
-Simple version bumps are omitted from the following ChangeLog.
-
-2011-08-16 Dan McGee <dan@archlinux.org>
-	Version 1.7.6.1-1
-	* Enable USE_LIBPCRE for `git grep -P` usage
-
-2011-05-05 Dan McGee <dan@archlinux.org>
-	Version 1.7.5.1-1
-	* Byte compile emacs files (FS#20874)
-	* Respect CFLAGS/LDFLAGS (FS#23963)
-
-2011-04-27 Dan McGee <dan@archlinux.org>
-	Version 1.7.5-1
-	* Add missing optdepends for git send-email (FS#20923)
-
-2011-01-05 Dan McGee <dan@archlinux.org>
-	Version 1.7.3.5-1
-	* More flexible git-daemon RC scripts (FS#20575)
-
-2010-10-01 Allan McRae <allan@archlinux.org>
-	Version 1.7.3.1-2
-	* Python 2/3 rebuild
-
-2010-06-29 Dan McGee <dan@archlinux.org>
-	Version 1.7.1.1-1
-	* Add emacs completion files (FS#17968)
-	* Add git-daemon RC scripts (FS#19291)
-
-2009-06-05 Dan McGee <dan@archlinux.org>
-	Version 1.6.3.2-1
-	* Remove gitweb from /usr/share; it needs customization to be helpful
-	* Add NO_CROSS_DIRECTORY_HARDLINKS option to build (FS#13683)
-
-2008-09-14 Dan McGee <dan@archlinux.org>
-	Version 1.6.0.2-1
-	* Moved optional depends from install file to optdepends array
-
-2008-06-15 Dan McGee <dan@archlinux.org>
-	Version 1.5.6-1
-	* Removed 'cpio' dependency, clone is now a builtin and no longer needs it
-
-2008-02-02 Dan McGee <dan@archlinux.org>
-	Version 1.5.4-1
-	* Upstream version 1.5.4
-	* Enable pthreads support in pack-objects. To use, set the pack.threads
-	  git config option. Read manpages of pack-objects and config for more
-	  details.
-	* Changelog added (with entries going back a bit).
-
-2008-01-28 Kevin Piche <kevin@archlinux.org>
-	Version 1.5.3.7-2
-	* Updated for new perl policy (vendor dirs)
-	* Change license to GPL2
-
-2007-11-01 Eric Belanger <eric@archlinux.org>
-	Version 1.5.3.5-2
-	* Fix Perl module location
diff --git a/abs/extra/git/PKGBUILD b/abs/extra/git/PKGBUILD
index 75be079..c762f95 100644
--- a/abs/extra/git/PKGBUILD
+++ b/abs/extra/git/PKGBUILD
@@ -1,13 +1,15 @@
+# $Id$
+# Maintainer: Dan McGee <dan@archlinux.org>
 
 pkgname=git
-pkgver=1.7.11.4
+pkgver=2.5.3
 pkgrel=1
 pkgdesc="the fast distributed version control system"
 arch=(i686 x86_64)
 url="http://git-scm.com/"
 license=('GPL2')
 depends=('curl' 'expat>=2.0' 'perl-error' 'perl>=5.14.0' 'openssl' 'pcre')
-makedepends=('python2' 'emacs')
+makedepends=('python2' 'emacs' 'libgnome-keyring' 'xmlto' 'asciidoc')
 optdepends=('tk: gitk and git gui'
             'perl-libwww: git svn'
             'perl-term-readkey: git svn'
@@ -16,15 +18,24 @@ optdepends=('tk: gitk and git gui'
             'perl-authen-sasl: git send-email TLS support'
             'python2: various helper scripts'
             'subversion: git svn'
-            'cvsps: git cvsimport')
+            'cvsps2: git cvsimport'
+            'gnome-keyring: GNOME keyring credential helper')
 replaces=('git-core')
 provides=('git-core')
-backup=('etc/conf.d/git-daemon.conf')
-source=("http://git-core.googlecode.com/files/git-$pkgver.tar.gz"
-        "http://git-core.googlecode.com/files/git-manpages-$pkgver.tar.gz"
-        git-daemon
-        git-daemon.conf)
-changelog=ChangeLog
+install=git.install
+source=("https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.xz"
+        "https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.sign"
+        git-daemon@.service
+        git-daemon.socket)
+md5sums=('e69b41f2d0a93f3d3dc5eb19196e4e5c'
+         'SKIP'
+         '042524f942785772d7bd52a1f02fe5ae'
+         'f67869315c2cc112e076f0c73f248002')
+validpgpkeys=('96E07AF25771955980DAD10020D04E5A713660A7') # Junio C Hamano
+
+prepare() {
+  cd "$srcdir/$pkgname-$pkgver"
+}
 
 build() {
   export PYTHON_PATH='/usr/bin/python2'
@@ -33,30 +44,32 @@ build() {
     CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
     USE_LIBPCRE=1 \
     NO_CROSS_DIRECTORY_HARDLINKS=1 \
-    all
+    MAN_BOLD_LITERAL=1 \
+    all doc
 
-  cd contrib/emacs
-  make prefix=/usr
+  make -C contrib/emacs prefix=/usr
+  make -C contrib/credential/gnome-keyring
+  make -C contrib/subtree prefix=/usr gitexecdir=/usr/lib/git-core all doc
 }
 
 check() {
   export PYTHON_PATH='/usr/bin/python2'
   cd "$srcdir/$pkgname-$pkgver"
   local jobs
-  jobs=$(expr "$MAKEFLAGS" : '.*\(-j[0-9]*\).*')
+  jobs=$(expr "$MAKEFLAGS" : '.*\(-j[0-9]*\).*') || true
+  mkdir -p /dev/shm/git-test
   make prefix=/usr gitexecdir=/usr/lib/git-core \
     CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
     USE_LIBPCRE=1 \
     NO_CROSS_DIRECTORY_HARDLINKS=1 \
+    MAN_BOLD_LITERAL=1 \
     NO_SVN_TESTS=y \
     DEFAULT_TEST_TARGET=prove \
     GIT_PROVE_OPTS="$jobs -Q" \
-    GIT_TEST_OPTS="--root=/dev/shm/" \
+    GIT_TEST_OPTS="--root=/dev/shm/git-test" \
     test
 }
 
-
-
 package() {
   export PYTHON_PATH='/usr/bin/python2'
   cd "$srcdir/$pkgname-$pkgver"
@@ -64,44 +77,39 @@ package() {
     CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
     USE_LIBPCRE=1 \
     NO_CROSS_DIRECTORY_HARDLINKS=1 \
-    INSTALLDIRS=vendor DESTDIR="$pkgdir" install
+    MAN_BOLD_LITERAL=1 \
+    INSTALLDIRS=vendor DESTDIR="$pkgdir" install install-doc
 
   # bash completion
-  # until this is fixed, no point in loading it dynamically:
-  # http://git.661346.n2.nabble.com/bash-completion-now-loads-completions-dynamically-so-git-ps1-is-not-defined-when-you-open-a-shell-td7415323.html
-  #mkdir -p "$pkgdir"/usr/share/bash-completion/completions/
-  #install -m644 ./contrib/completion/git-completion.bash "$pkgdir"/usr/share/bash-completion/completions/git
-  mkdir -p "$pkgdir"/etc/bash_completion.d/
-  install -m644 ./contrib/completion/git-completion.bash "$pkgdir"/etc/bash_completion.d/git
-  # more contrib stuff
-  cp -a ./contrib $pkgdir/usr/share/git/
+  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
+  # emacs
+  make -C contrib/emacs prefix=/usr DESTDIR="$pkgdir" install
+  # gnome credentials helper
+  install -m755 contrib/credential/gnome-keyring/git-credential-gnome-keyring \
+      "$pkgdir"/usr/lib/git-core/git-credential-gnome-keyring
+  make -C contrib/credential/gnome-keyring clean
+  # subtree installation
+  make -C contrib/subtree prefix=/usr gitexecdir=/usr/lib/git-core DESTDIR="$pkgdir" install install-doc
+  # 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|' \
+  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
-
-  # emacs interface
-  cd contrib/emacs
-  make prefix=/usr DESTDIR="$pkgdir" install
-
-  # how 'bout some manpages?
-  for mansect in man1 man5 man7; do
-    for manpage in "$srcdir"/$mansect/*; do
-      install -D -m644 $manpage "$pkgdir"/usr/share/man/$mansect/$(basename $manpage)
-    done
-  done
+    "$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.
   rm -rf "$pkgdir"/usr/lib/perl5
 
-  # git daemon script
-  install -D -m755 "$srcdir"/git-daemon "$pkgdir"/etc/rc.d/git-daemon
-  install -D -m644 "$srcdir"/git-daemon.conf "$pkgdir"/etc/conf.d/git-daemon.conf
+  # git-daemon via systemd socket activation
+  install -D -m 644 "$srcdir"/git-daemon@.service "$pkgdir"/usr/lib/systemd/system/git-daemon@.service
+  install -D -m 644 "$srcdir"/git-daemon.socket "$pkgdir"/usr/lib/systemd/system/git-daemon.socket
 }
-
-md5sums=('21c7100cddee8579233a924111e829ab'
-         '397af842126a5099968238ab946580a5'
-         '8e2648910fd5dd4f1c41d3c7fa9e9156'
-         '2e42bf97779a1c6411d89043334c9e78')
-
diff --git a/abs/extra/git/git-daemon b/abs/extra/git/git-daemon
deleted file mode 100644
index 21ba73e..0000000
--- a/abs/extra/git/git-daemon
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/bash
-
-daemon_bin="/usr/lib/git-core/git-daemon"
-daemon_name=$(basename $daemon_bin)
-PIDF="/var/run/$daemon_name.pid"
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/conf.d/$daemon_name.conf
-
-get_pid() {
-	pidof -o %PPID $daemon_name
-}
-
-case "$1" in
-  start)
-    stat_busy "Starting $daemon_name daemon"
-
-    PID=$(get_pid)
-    if [ -z "$PID" ]; then
-      [ -f $PIDF ] && rm -f $PIDF
-      # RUN
-      $daemon_bin --pid-file=$PIDF $GIT_DAEMON_ARGS
-      #
-      if [ $? -gt 0 ]; then
-        stat_fail
-        exit 1
-      else
-        echo $(get_pid) > $PIDF
-        add_daemon $daemon_name
-        stat_done
-      fi
-    else
-      stat_fail
-      exit 1
-    fi
-    ;;
-
-  stop)
-    stat_busy "Stopping $daemon_name daemon"
-    PID=$(get_pid)
-    # KILL
-    [ ! -z "$PID" ] && kill $PID &> /dev/null
-    #
-    if [ $? -gt 0 ]; then
-      stat_fail
-      exit 1
-    else
-      rm -f $PIDF &> /dev/null
-      rm_daemon $daemon_name
-      stat_done
-    fi
-    ;;
-
-  restart)
-    $0 stop
-    sleep 3
-    $0 start
-    ;;
-
-  status)
-    stat_busy "Checking $daemon_name status";
-    ck_status $daemon_name
-    ;;
-
-  *)
-    echo "usage: $0 {start|stop|restart|status}"
-esac
-
-exit 0
diff --git a/abs/extra/git/git-daemon.conf b/abs/extra/git/git-daemon.conf
deleted file mode 100644
index 3f9a120..0000000
--- a/abs/extra/git/git-daemon.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-# path to git repositories served
-GIT_REPO="/srv/git/"
-# see `man git-daemon` for all available options
-# $GIT_REPO will be present twice in most configs
-GIT_DAEMON_ARGS="--detach --syslog --verbose --base-path=$GIT_REPO $GIT_REPO"
diff --git a/abs/extra/git/git-daemon.socket b/abs/extra/git/git-daemon.socket
new file mode 100644
index 0000000..58ed2f1
--- /dev/null
+++ b/abs/extra/git/git-daemon.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=Git Daemon Socket
+
+[Socket]
+ListenStream=9418
+Accept=true
+
+[Install]
+WantedBy=sockets.target
diff --git a/abs/extra/git/git-daemon@.service b/abs/extra/git/git-daemon@.service
new file mode 100644
index 0000000..55ca714
--- /dev/null
+++ b/abs/extra/git/git-daemon@.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Git Daemon Instance
+
+[Service]
+User=git
+# The '-' is to ignore non-zero exit statuses
+ExecStart=-/usr/lib/git-core/git-daemon --inetd --export-all --base-path=/srv/git
+StandardInput=socket
+StandardOutput=inherit
+StandardError=journal
diff --git a/abs/extra/git/git.install b/abs/extra/git/git.install
new file mode 100644
index 0000000..064eda0
--- /dev/null
+++ b/abs/extra/git/git.install
@@ -0,0 +1,12 @@
+post_install() {
+  if ! getent group git >/dev/null; then
+    groupadd --system git 
+  fi
+  if ! getent passwd git >/dev/null; then
+    useradd --system -c 'git daemon user' -g git -d / -s /bin/bash git 
+  fi
+}
+
+post_upgrade() {
+  post_install $1
+}
-- 
cgit v0.12

