summaryrefslogtreecommitdiffstats
path: root/abs/extra/git
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra/git')
-rw-r--r--abs/extra/git/PKGBUILD71
-rw-r--r--abs/extra/git/git-daemon@.service4
-rw-r--r--abs/extra/git/git-sysusers.conf1
-rw-r--r--abs/extra/git/git.install23
4 files changed, 67 insertions, 32 deletions
diff --git a/abs/extra/git/PKGBUILD b/abs/extra/git/PKGBUILD
index c762f95..024b137 100644
--- a/abs/extra/git/PKGBUILD
+++ b/abs/extra/git/PKGBUILD
@@ -1,14 +1,16 @@
# $Id$
+# Maintainer: Christian Hesse <mail@eworm.de>
# Maintainer: Dan McGee <dan@archlinux.org>
pkgname=git
-pkgver=2.5.3
+pkgver=2.16.2
pkgrel=1
pkgdesc="the fast distributed version control system"
-arch=(i686 x86_64)
+arch=(x86_64)
url="http://git-scm.com/"
license=('GPL2')
-depends=('curl' 'expat>=2.0' 'perl-error' 'perl>=5.14.0' 'openssl' 'pcre')
+depends=('curl' 'expat>=2.0' 'perl-error' 'perl>=5.14.0' 'openssl' 'pcre2'
+ 'grep' 'shadow')
makedepends=('python2' 'emacs' 'libgnome-keyring' 'xmlto' 'asciidoc')
optdepends=('tk: gitk and git gui'
'perl-libwww: git svn'
@@ -16,40 +18,43 @@ optdepends=('tk: gitk and git gui'
'perl-mime-tools: git send-email'
'perl-net-smtp-ssl: git send-email TLS support'
'perl-authen-sasl: git send-email TLS support'
+ 'perl-mediawiki-api: git mediawiki support'
+ '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'
'subversion: git svn'
- 'cvsps2: git cvsimport'
'gnome-keyring: GNOME keyring credential helper')
replaces=('git-core')
provides=('git-core')
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"
-}
+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'
+ 'SKIP'
+ '14c0b67cfe116b430645c19d8c4759419657e6809dfa28f438c33a005245ad91'
+ 'ac4c90d62c44926e6d30d18d97767efc901076d4e0283ed812a349aece72f203'
+ '595794856bfa6087c33826640ae7b5447832233844f36dfedc18646d47154730')
build() {
export PYTHON_PATH='/usr/bin/python2'
cd "$srcdir/$pkgname-$pkgver"
make prefix=/usr gitexecdir=/usr/lib/git-core \
CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
- USE_LIBPCRE=1 \
+ USE_LIBPCRE2=1 \
NO_CROSS_DIRECTORY_HARDLINKS=1 \
MAN_BOLD_LITERAL=1 \
all doc
make -C contrib/emacs prefix=/usr
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
}
check() {
@@ -58,9 +63,13 @@ check() {
local jobs
jobs=$(expr "$MAKEFLAGS" : '.*\(-j[0-9]*\).*') || true
mkdir -p /dev/shm/git-test
+ # explicitly specify SHELL to avoid a test failure in t/t9903-bash-prompt.sh
+ # 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_LIBPCRE=1 \
+ USE_LIBPCRE2=1 \
NO_CROSS_DIRECTORY_HARDLINKS=1 \
MAN_BOLD_LITERAL=1 \
NO_SVN_TESTS=y \
@@ -75,41 +84,53 @@ package() {
cd "$srcdir/$pkgname-$pkgver"
make prefix=/usr gitexecdir=/usr/lib/git-core \
CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
- USE_LIBPCRE=1 \
+ USE_LIBPCRE2=1 \
NO_CROSS_DIRECTORY_HARDLINKS=1 \
MAN_BOLD_LITERAL=1 \
INSTALLDIRS=vendor DESTDIR="$pkgdir" install install-doc
# bash completion
mkdir -p "$pkgdir"/usr/share/bash-completion/completions/
- install -m644 ./contrib/completion/git-completion.bash "$pkgdir"/usr/share/bash-completion/completions/git
+ install -m 0644 ./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
+ 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
- install -m755 contrib/credential/gnome-keyring/git-credential-gnome-keyring \
+ 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
+ # libsecret credentials helper
+ install -m 0755 contrib/credential/libsecret/git-credential-libsecret \
+ "$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
+ # mediawiki installation
+ make -C contrib/mw-to-git prefix=/usr gitexecdir=/usr/lib/git-core 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/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
+ # 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
# 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
+ install -D -m 0644 "$srcdir"/git-daemon@.service "$pkgdir"/usr/lib/systemd/system/git-daemon@.service
+ install -D -m 0644 "$srcdir"/git-daemon.socket "$pkgdir"/usr/lib/systemd/system/git-daemon.socket
+
+ # sysusers file
+ install -D -m 0644 "$srcdir"/git-sysusers.conf "$pkgdir"/usr/lib/sysusers.d/git.conf
}
diff --git a/abs/extra/git/git-daemon@.service b/abs/extra/git/git-daemon@.service
index 55ca714..70e0dca 100644
--- a/abs/extra/git/git-daemon@.service
+++ b/abs/extra/git/git-daemon@.service
@@ -8,3 +8,7 @@ ExecStart=-/usr/lib/git-core/git-daemon --inetd --export-all --base-path=/srv/gi
StandardInput=socket
StandardOutput=inherit
StandardError=journal
+ProtectSystem=full
+ProtectHome=on
+PrivateDevices=on
+NoNewPrivileges=on
diff --git a/abs/extra/git/git-sysusers.conf b/abs/extra/git/git-sysusers.conf
new file mode 100644
index 0000000..2141c70
--- /dev/null
+++ b/abs/extra/git/git-sysusers.conf
@@ -0,0 +1 @@
+u git - "git daemon user" /
diff --git a/abs/extra/git/git.install b/abs/extra/git/git.install
index 064eda0..24bc5d7 100644
--- a/abs/extra/git/git.install
+++ b/abs/extra/git/git.install
@@ -1,12 +1,21 @@
+#!/bin/sh
+
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
+ # make git-shell a valid shell
+ 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
}
-post_upgrade() {
- post_install $1
+# do not modify user settings (shell) in post-upgrade function!
+
+post_remove() {
+ sed -i -r '/^\/usr\/bin\/git-shell$/d' etc/shells
}