Date: Wednesday, December 13, 2017 @ 09:55:59 Author: eworm Revision: 312218
upgpkg: git 2.15.1-2 Switch to systemd-sysusers for user creation, we still need to change the shell, though. Added: git/trunk/git-sysusers.conf Modified: git/trunk/PKGBUILD git/trunk/git.install -------------------+ PKGBUILD | 25 +++++++++++++++---------- git-sysusers.conf | 1 + git.install | 18 +++++++++--------- 3 files changed, 25 insertions(+), 19 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2017-12-13 09:39:02 UTC (rev 312217) +++ PKGBUILD 2017-12-13 09:55:59 UTC (rev 312218) @@ -4,7 +4,7 @@ pkgname=git pkgver=2.15.1 -pkgrel=1 +pkgrel=2 pkgdesc="the fast distributed version control system" arch=(x86_64) url="http://git-scm.com/" @@ -30,12 +30,14 @@ 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-daemon@.service' + 'git-daemon.socket' + 'git-sysusers.conf') sha256sums=('999c90fd7d45066992cdb87dda35bdff6dfc1d01496118ea718dfb866da4045c' 'SKIP' '14c0b67cfe116b430645c19d8c4759419657e6809dfa28f438c33a005245ad91' - 'ac4c90d62c44926e6d30d18d97767efc901076d4e0283ed812a349aece72f203') + 'ac4c90d62c44926e6d30d18d97767efc901076d4e0283ed812a349aece72f203' + '595794856bfa6087c33826640ae7b5447832233844f36dfedc18646d47154730') build() { export PYTHON_PATH='/usr/bin/python2' @@ -89,18 +91,18 @@ # 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 -m755 contrib/credential/libsecret/git-credential-libsecret \ + 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 @@ -126,6 +128,9 @@ 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 } Added: git-sysusers.conf =================================================================== --- git-sysusers.conf (rev 0) +++ git-sysusers.conf 2017-12-13 09:55:59 UTC (rev 312218) @@ -0,0 +1 @@ +u git - "git daemon user" / Modified: git.install =================================================================== --- git.install 2017-12-13 09:39:02 UTC (rev 312217) +++ git.install 2017-12-13 09:55:59 UTC (rev 312218) @@ -1,21 +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 /usr/bin/git-shell git - fi + # make git-shell a valid shell if ! grep -qe '^/usr/bin/git-shell$' etc/shells; then echo '/usr/bin/git-shell' >> etc/shells fi -} -post_upgrade() { - post_install $1 + # 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! + post_remove() { sed -i -r '/^\/usr\/bin\/git-shell$/d' etc/shells }