diff options
Diffstat (limited to 'abs')
-rw-r--r-- | abs/extra/git/PKGBUILD | 71 | ||||
-rw-r--r-- | abs/extra/git/git-daemon@.service | 4 | ||||
-rw-r--r-- | abs/extra/git/git-sysusers.conf | 1 | ||||
-rw-r--r-- | abs/extra/git/git.install | 23 |
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 } |