[Dev] [PATCH] pacman-4.2.1-2.parabola2: convert cron job to systemd timer

Daniel Milewski niitotantei at riseup.net
Wed Jul 29 15:41:43 GMT 2015


cronie dependency introduced with pacman-4.2.1-2.parabola1 makes it
impossible to use other cron implementations. This week I saw a user on
#parabola which couldn't update his system because cronie conflicts
with cron. Instead of imposing a specific cron implementation I think
it'd be better to use a systemd timer. Timers are already used by other
packages like logrotate and man-db.

---
 libre/pacman/PKGBUILD               | 14 +++++++++-----
 libre/pacman/pacman-keyring.service |  6 ++++++
 libre/pacman/pacman-keyring.timer   | 11 +++++++++++
 libre/pacman/refresh-pacman-keys    |  3 ---
 4 files changed, 26 insertions(+), 8 deletions(-)
 create mode 100644 libre/pacman/pacman-keyring.service
 create mode 100644 libre/pacman/pacman-keyring.timer
 delete mode 100644 libre/pacman/refresh-pacman-keys

diff --git a/libre/pacman/PKGBUILD b/libre/pacman/PKGBUILD
index 4fba510..c4cf748 100644
--- a/libre/pacman/PKGBUILD
+++ b/libre/pacman/PKGBUILD
@@ -6,10 +6,11 @@
 # Contributor: Márcio Silva <coadde at parabola.nu>
 # Contributor: Nicolás Reynolds <fauno at kiwwwi.com.ar>
 # Contributor: Luke Shumaker <lukeshu at sbcglobal.net>
+# Contributor: Daniel Milewski <niitotantei at riseup.net>
 
 pkgname=pacman
 pkgver=4.2.1
-pkgrel=2.parabola1
+pkgrel=2.parabola2
 pkgdesc="A library-based package manager with dependency support"
 arch=('i686' 'x86_64')
 url="http://www.archlinux.org/pacman/"
@@ -17,7 +18,7 @@ license=('GPL')
 groups=('base' 'base-devel')
 depends=('bash' 'glibc' 'libarchive>=3.1.2' 'curl>=7.39.0'
          'gpgme' 'pacman-mirrorlist' 'archlinux-keyring'
-         'parabola-keyring' 'ca-certificates-cacert' 'cronie')
+         'parabola-keyring' 'ca-certificates-cacert')
 makedepends=('asciidoc')   # roundup patch alters docs
 checkdepends=('python2' 'fakechroot')
 provides=("$pkgname-contrib")
@@ -29,7 +30,8 @@ source=(https://sources.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz{,.sig
         ensure-matching-database-and-package-version.patch
         $pkgname.conf.{i686,x86_64}
         makepkg.conf
-        refresh-$pkgname-keys
+        $pkgname-keyring.service
+        $pkgname-keyring.timer
         makepkg-pkgrel-4.patch)
 md5sums=('2a596fc8f723e99660c0869a74afcf47'
          'SKIP'
@@ -37,7 +39,8 @@ md5sums=('2a596fc8f723e99660c0869a74afcf47'
          '9c1454e48b2216b23f931e04d6dab1ee'
          '7279d086428df483fd60c33f7c88cf3e'
          'ce525a9af50f1d9b824806d2e5a4f0c8'
-         '093f0779ac55ae781ba028ad74b95f84'
+         '11a5fac02651041e44d65d66c3538030'
+         '7fb448e0d2b5b22da5ddc0040378efb0'
          '0ee98dc38ff80ba127772f5104e18e46')
 validpgpkeys=('6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD')  # Allan McRae <allan at archlinux.org>
 
@@ -108,5 +111,6 @@ package() {
 
   install -Dm644 contrib/PKGBUILD.vim "$pkgdir/usr/share/vim/vimfiles/syntax/PKGBUILD.vim"
 
-  install -Dm755 "$srcdir/refresh-pacman-keys" "$pkgdir/etc/cron.weekly/refresh-pacman-keys"
+  install -Dm644 "$srcdir/pacman-keyring.service" "$pkgdir/usr/lib/systemd/system/pacman-keyring.service"
+  install -Dm644 "$srcdir/pacman-keyring.timer" "$pkgdir/usr/lib/systemd/system/pacman-keyring.timer"
 }
diff --git a/libre/pacman/pacman-keyring.service b/libre/pacman/pacman-keyring.service
new file mode 100644
index 0000000..e090734
--- /dev/null
+++ b/libre/pacman/pacman-keyring.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=Refresh pacman keyring
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/pacman-key --refresh-keys
diff --git a/libre/pacman/pacman-keyring.timer b/libre/pacman/pacman-keyring.timer
new file mode 100644
index 0000000..137ef7c
--- /dev/null
+++ b/libre/pacman/pacman-keyring.timer
@@ -0,0 +1,11 @@
+[Unit]
+Description=Refresh pacman keyring once a week
+Documentation=man:pacman-key
+
+[Timer]
+OnCalendar=weekly
+AccuracySec=1h
+Persistent=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/libre/pacman/refresh-pacman-keys b/libre/pacman/refresh-pacman-keys
deleted file mode 100644
index e96dc34..0000000
--- a/libre/pacman/refresh-pacman-keys
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-pacman-key --refresh-keys

-- 
Daniel Milewski
GPG key ID: 8D43A4A1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <https://lists.parabola.nu/pipermail/dev/attachments/20150729/c6126067/attachment.sig>


More information about the Dev mailing list