[arch-commits] Commit in git/trunk (PKGBUILD git-sysusers.conf git.install)

Christian Hesse eworm at archlinux.org
Wed Dec 13 09:55:59 UTC 2017


    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 at .service
-        git-daemon.socket)
+        'git-daemon at .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 at .service "$pkgdir"/usr/lib/systemd/system/git-daemon at .service
-  install -D -m 644 "$srcdir"/git-daemon.socket "$pkgdir"/usr/lib/systemd/system/git-daemon.socket
+  install -D -m 0644 "$srcdir"/git-daemon at .service "$pkgdir"/usr/lib/systemd/system/git-daemon at .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
 }



More information about the arch-commits mailing list