From e74444a6851881e2cfea37b76cfb16ba97af2fcc Mon Sep 17 00:00:00 2001 From: dvzrv Date: Sun, 7 Aug 2022 21:34:25 +0000 Subject: [PATCH] Vendor enable the gnupg systemd sockets instead of manually symlinking them to /etc/systemd/system/ in the .install file. git-svn-id: file:///srv/repos/svn-packages/svn@452400 eb2447ed-0c53-47e4-bac8-5bc4a241df78 --- trunk/PKGBUILD | 10 ++++++++++ trunk/gnupg.install | 38 ++++++++++++-------------------------- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/trunk/PKGBUILD b/trunk/PKGBUILD index 1071e21a3d0e..8ebb390ece6a 100644 --- a/trunk/PKGBUILD +++ b/trunk/PKGBUILD @@ -1,3 +1,4 @@ +# Maintainer: David Runge # Maintainer: Levente Polyak # Maintainer: Lukas Fleischer # Contributor: Gaetan Bisson @@ -80,6 +81,10 @@ check() { } package() { + local units=({dirmngr,gpg-agent{,-{browser,extra,ssh}}}.socket) + local socket_target_dir="$pkgdir/usr/lib/systemd/user/sockets.target.wants/" + local unit + cd "${srcdir}/${pkgname}-${pkgver}" make DESTDIR="${pkgdir}" install ln -s gpg "${pkgdir}"/usr/bin/gpg2 @@ -87,6 +92,11 @@ package() { install -Dm 644 doc/examples/systemd-user/*.* -t "${pkgdir}/usr/lib/systemd/user" install -Dm 644 COPYING.{CC0,other} -t "${pkgdir}/usr/share/licenses/$pkgname/" + + install -vdm 755 "$socket_target_dir" + for unit in "${units[@]}"; do + ln -sv "../$unit" "$socket_target_dir$unit" + done } # vim: ts=2 sw=2 et: diff --git a/trunk/gnupg.install b/trunk/gnupg.install index d6a07ec9f41e..71c1b4aa35d1 100644 --- a/trunk/gnupg.install +++ b/trunk/gnupg.install @@ -1,31 +1,17 @@ -_global_units() { - _units=(dirmngr.socket gpg-agent.socket gpg-agent-{browser,extra,ssh}.socket) - _dir=/etc/systemd/user/sockets.target.wants - - case $1 in - enable) - mkdir -p $_dir - for _u in "${_units[@]}"; do - ln -sf /usr/lib/systemd/user/$_u $_dir/$_u - done - ;; - disable) - for _u in "${_units[@]}"; do - rm -f $_dir/$_u - done - rmdir -p --ignore-fail-on-non-empty $_dir - ;; - esac -} - post_install() { - # See FS#42798 and FS#47371 + # run dirmngr once to create /root/.gnupg + # https://bugs.archlinux.org/task/47371 + # https://bugs.archlinux.org/task/42798 dirmngr /dev/null - - # Let systemd supervise daemons by default - _global_units enable } -pre_remove() { - _global_units disable +post_upgrade() { + local unit + + if (( $(vercmp "$2" '2.2.36-2') < 0)); then + for unit in {dirmngr,gpg-agent{,-{browser,extra,ssh}}}.socket; do + rm -f "/etc/systemd/user/sockets.target.wants/$unit" + done + printf "NOTE: GnuPG's systemd sockets are now enabled in the vendor location /usr/lib/systemd/user/!\n" + fi }