From ac10c6a6816b0746d18122a070f6a9c2641443ba Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sun, 15 Nov 2020 20:10:09 +0000
Subject: git: 2.29.2

---
 abs/extra/git/PKGBUILD          | 110 +++++++++++++++++++---------------------
 abs/extra/git/git-sysusers.conf |   2 +-
 abs/extra/git/git.install       |   7 ---
 3 files changed, 52 insertions(+), 67 deletions(-)

diff --git a/abs/extra/git/PKGBUILD b/abs/extra/git/PKGBUILD
index 024b137..724fc29 100644
--- a/abs/extra/git/PKGBUILD
+++ b/abs/extra/git/PKGBUILD
@@ -1,20 +1,19 @@
-# $Id$
 # Maintainer: Christian Hesse <mail@eworm.de>
 # Maintainer: Dan McGee <dan@archlinux.org>
 
 pkgname=git
-pkgver=2.16.2
+pkgver=2.29.2
 pkgrel=1
-pkgdesc="the fast distributed version control system"
-arch=(x86_64)
-url="http://git-scm.com/"
+pkgdesc='the fast distributed version control system'
+arch=('x86_64')
+url='https://git-scm.com/'
 license=('GPL2')
-depends=('curl' 'expat>=2.0' 'perl-error' 'perl>=5.14.0' 'openssl' 'pcre2'
-         'grep' 'shadow')
-makedepends=('python2' 'emacs' 'libgnome-keyring' 'xmlto' 'asciidoc')
+depends=('curl' 'expat' 'perl' 'perl-error' 'perl-mailtools'
+         'openssl' 'pcre2' 'grep' 'shadow')
+makedepends=('python' 'libgnome-keyring' 'xmlto' 'asciidoc')
 optdepends=('tk: gitk and git gui'
             'perl-libwww: git svn'
-            'perl-term-readkey: git svn'
+            'perl-term-readkey: git svn and interactive.singlekey setting'
             'perl-mime-tools: git send-email'
             'perl-net-smtp-ssl: git send-email TLS support'
             'perl-authen-sasl: git send-email TLS support'
@@ -22,44 +21,55 @@ optdepends=('tk: gitk and git gui'
             'perl-datetime-format-iso8601: git mediawiki support'
             'perl-lwp-protocol-https: git mediawiki https support'
             'perl-cgi: gitweb (web interface) support'
-            'python2: various helper scripts'
+            'python: git svn & git p4'
             'subversion: git svn'
-            'gnome-keyring: GNOME keyring credential helper')
-replaces=('git-core')
-provides=('git-core')
+            'org.freedesktop.secrets: keyring credential helper'
+            'libsecret: libsecret credential helper')
 install=git.install
 validpgpkeys=('96E07AF25771955980DAD10020D04E5A713660A7') # Junio C Hamano
 source=("https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar."{xz,sign}
         'git-daemon@.service'
         'git-daemon.socket'
         'git-sysusers.conf')
-sha256sums=('5560578bd21468d98637f41515c165d32f69caff0838b8989dee5ce10022c717'
+sha256sums=('f2fc436ebe657821a1360bcd1e5f4896049610082419143d60f6fa13c2f607c1'
             'SKIP'
             '14c0b67cfe116b430645c19d8c4759419657e6809dfa28f438c33a005245ad91'
             'ac4c90d62c44926e6d30d18d97767efc901076d4e0283ed812a349aece72f203'
-            '595794856bfa6087c33826640ae7b5447832233844f36dfedc18646d47154730')
+            '7630e8245526ad80f703fac9900a1328588c503ce32b37b9f8811674fcda4a45')
+
+_make_paths=(
+  prefix='/usr'
+  gitexecdir='/usr/lib/git-core'
+  perllibdir="$(/usr/bin/perl -MConfig -wle 'print $Config{installvendorlib}')"
+)
+
+_make_options=(
+  CFLAGS="$CFLAGS"
+  LDFLAGS="$LDFLAGS"
+  INSTALL_SYMLINKS=1
+  MAN_BOLD_LITERAL=1
+  NO_PERL_CPAN_FALLBACKS=1
+  USE_LIBPCRE2=1
+)
 
 build() {
-  export PYTHON_PATH='/usr/bin/python2'
   cd "$srcdir/$pkgname-$pkgver"
-  make prefix=/usr gitexecdir=/usr/lib/git-core \
-    CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
-    USE_LIBPCRE2=1 \
-    NO_CROSS_DIRECTORY_HARDLINKS=1 \
-    MAN_BOLD_LITERAL=1 \
-    all doc
 
-  make -C contrib/emacs prefix=/usr
+  make \
+    "${_make_paths[@]}" \
+    "${_make_options[@]}" \
+    all man
+
   make -C contrib/credential/gnome-keyring
   make -C contrib/credential/libsecret
-  make -C contrib/subtree prefix=/usr gitexecdir=/usr/lib/git-core all doc
-  make -C contrib/mw-to-git prefix=/usr all
-  make -C contrib/diff-highlight prefix=/usr
+  make -C contrib/subtree "${_make_paths[@]}" all man
+  make -C contrib/mw-to-git "${_make_paths[@]}" all
+  make -C contrib/diff-highlight "${_make_paths[@]}"
 }
 
 check() {
-  export PYTHON_PATH='/usr/bin/python2'
   cd "$srcdir/$pkgname-$pkgver"
+
   local jobs
   jobs=$(expr "$MAKEFLAGS" : '.*\(-j[0-9]*\).*') || true
   mkdir -p /dev/shm/git-test
@@ -67,11 +77,9 @@ check() {
   # which is caused by 'git rebase' trying to use builduser's SHELL inside the
   # build chroot (i.e.: /usr/bin/nologin)
   SHELL=/bin/sh \
-  make prefix=/usr gitexecdir=/usr/lib/git-core \
-    CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
-    USE_LIBPCRE2=1 \
-    NO_CROSS_DIRECTORY_HARDLINKS=1 \
-    MAN_BOLD_LITERAL=1 \
+  make \
+    "${_make_paths[@]}" \
+    "${_make_options[@]}" \
     NO_SVN_TESTS=y \
     DEFAULT_TEST_TARGET=prove \
     GIT_PROVE_OPTS="$jobs -Q" \
@@ -80,14 +88,13 @@ check() {
 }
 
 package() {
-  export PYTHON_PATH='/usr/bin/python2'
   cd "$srcdir/$pkgname-$pkgver"
-  make prefix=/usr gitexecdir=/usr/lib/git-core \
-    CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
-    USE_LIBPCRE2=1 \
-    NO_CROSS_DIRECTORY_HARDLINKS=1 \
-    MAN_BOLD_LITERAL=1 \
-    INSTALLDIRS=vendor DESTDIR="$pkgdir" install install-doc
+  
+  make \
+    "${_make_paths[@]}" \
+    "${_make_options[@]}" \
+    DESTDIR="$pkgdir" \
+    install install-man
 
   # bash completion
   mkdir -p "$pkgdir"/usr/share/bash-completion/completions/
@@ -95,9 +102,8 @@ package() {
   # fancy git prompt
   mkdir -p "$pkgdir"/usr/share/git/
   install -m 0644 ./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
+  # gnome credentials helper (deprecated, but we will keep it as long there is no extra cost)
+  # https://gitlab.gnome.org/GNOME/libgnome-keyring/commit/6a5adea4aec93
   install -m 0755 contrib/credential/gnome-keyring/git-credential-gnome-keyring \
       "$pkgdir"/usr/lib/git-core/git-credential-gnome-keyring
   make -C contrib/credential/gnome-keyring clean
@@ -106,26 +112,12 @@ package() {
       "$pkgdir"/usr/lib/git-core/git-credential-libsecret
   make -C contrib/credential/libsecret clean
   # subtree installation
-  make -C contrib/subtree prefix=/usr gitexecdir=/usr/lib/git-core DESTDIR="$pkgdir" install install-doc
+  make -C contrib/subtree "${_make_paths[@]}" DESTDIR="$pkgdir" install install-man
   # mediawiki installation
-  make -C contrib/mw-to-git prefix=/usr gitexecdir=/usr/lib/git-core DESTDIR="$pkgdir" install
+  make -C contrib/mw-to-git "${_make_paths[@]}" DESTDIR="$pkgdir" install
   # the rest of the contrib stuff
   find contrib/ -name '.gitignore' -delete
-  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/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
-
-  # perl modules from contrib/ install to site dir... move to vendor
-  mv "$pkgdir"/usr/share/perl5/site_perl/Git/* "$pkgdir"/usr/share/perl5/vendor_perl/Git/
-  rm -rf "$pkgdir"/usr/share/perl5/site_perl
-  # remove perllocal.pod, .packlist, and empty directories.
-  rm -rf "$pkgdir"/usr/lib/perl5
+  cp -a ./contrib/* "$pkgdir"/usr/share/git/
 
   # git-daemon via systemd socket activation
   install -D -m 0644 "$srcdir"/git-daemon@.service "$pkgdir"/usr/lib/systemd/system/git-daemon@.service
diff --git a/abs/extra/git/git-sysusers.conf b/abs/extra/git/git-sysusers.conf
index 2141c70..8189065 100644
--- a/abs/extra/git/git-sysusers.conf
+++ b/abs/extra/git/git-sysusers.conf
@@ -1 +1 @@
-u git - "git daemon user" /
+u git - "git daemon user" / /usr/bin/git-shell
diff --git a/abs/extra/git/git.install b/abs/extra/git/git.install
index 24bc5d7..453050d 100644
--- a/abs/extra/git/git.install
+++ b/abs/extra/git/git.install
@@ -5,13 +5,6 @@ post_install() {
   if ! grep -qe '^/usr/bin/git-shell$' etc/shells; then
     echo '/usr/bin/git-shell' >> etc/shells
   fi
-
-  # make sure the user exists...
-  systemd-sysusers git.conf
-
-  # ... and change the shell. This is done only once in post-install
-  # function, so an administrative change is persistent.
-  chsh --shell /usr/bin/git-shell git > /dev/null
 }
 
 # do not modify user settings (shell) in post-upgrade function!
-- 
cgit v0.12