summaryrefslogtreecommitdiffstats
path: root/abs
diff options
context:
space:
mode:
Diffstat (limited to 'abs')
-rw-r--r--abs/core/dcron/PKGBUILD72
-rw-r--r--abs/core/dcron/dcron-logname.patch25
-rw-r--r--abs/core/dcron/dcron.conf.d4
-rw-r--r--abs/core/dcron/dcron.install10
-rw-r--r--abs/core/dcron/dcron.rc.d47
5 files changed, 128 insertions, 30 deletions
diff --git a/abs/core/dcron/PKGBUILD b/abs/core/dcron/PKGBUILD
index e5a46d8..61999c9 100644
--- a/abs/core/dcron/PKGBUILD
+++ b/abs/core/dcron/PKGBUILD
@@ -1,38 +1,50 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: judd <jvinet@zeroflux.org>
+# Maintainer: Paul Mattal <paul.archlinux.org>
+
pkgname=dcron
-pkgver=3.2
-pkgrel=12
-pkgdesc="Dillon's Cron Daemon"
+pkgver=4.4
+pkgrel=2
+pkgdesc="dillon's lightweight cron daemon"
arch=(i686 x86_64)
license=('GPL')
-groups=('base')
-url="http://apollo.backplane.com/FreeSrc/"
-backup=(var/spool/cron/root)
+url="http://www.jimpryor.net/linux/dcron"
+backup=(var/spool/cron/root etc/conf.d/crond)
depends=('glibc')
provides=('cron')
-source=(http://apollo.backplane.com/FreeSrc/dcron32.tgz
- dcron-3.1.patch
- root.crontab
- crond
- crond.logrotate
- run-cron)
-md5sums=('c2c816deb389b4bfb00761f26afe3efd' '2f0c3f7497a12c8826c9be3f87843fcd'\
- '7fcc06b13708ebd667711b1fbf62ee6e' 'd7edac165ef19ebb9d0089bdc218b53a'\
- 'aeabcd5e4924d1a7593c8782d1068c86' '5ff0cdcb9ec99778938ac6ef26800327')
+groups=('base')
+source=("http://www.jimpryor.net/linux/releases/${pkgname}-${pkgver}.tar.gz"
+ 'dcron-logname.patch'
+ 'dcron.rc.d'
+ 'dcron.conf.d')
+md5sums=('02d848ba043a9df5bf2102a9f4bc04bd'
+ 'c6054421b48100f7a2a7a36e2d33c92a'
+ '73693cdd59df526e729cdec99c5ed8fb'
+ '5bfa07beb54d0beaf3f38225e4d5a9fa')
+optdepends=('smtp-server: sending cron job output via email')
+install=$pkgname.install
build() {
- cd $startdir/src/dcron
- patch -Np1 -i ../dcron-3.1.patch || return 1
- make || return 1
- install -D -m4755 crontab $startdir/pkg/usr/bin/crontab
- install -D -m755 crond $startdir/pkg/usr/sbin/crond
- install -D -m644 crontab.1 $startdir/pkg/usr/man/man1/crontab.1
- install -D -m644 crond.8 $startdir/pkg/usr/man/man8/crond.8
- mkdir -p $startdir/pkg/var/spool/cron $startdir/pkg/etc/cron.d
- mkdir -p $startdir/pkg/etc/{rc.d,cron.hourly,cron.daily,cron.weekly,cron.monthly}
- install -D -m0600 ../root.crontab $startdir/pkg/var/spool/cron/root
- install -D -m755 ../crond $startdir/pkg/etc/rc.d/crond
- install -D -m644 ../crond.logrotate $startdir/pkg/etc/logrotate.d/crond
- install -D -m755 ../run-cron $startdir/pkg/usr/sbin/run-cron
+ cd "$srcdir/${pkgname}-${pkgver}" || return 1
+
+ # patch to add LOGNAME environment variable
+ patch -p1 -i $srcdir/dcron-logname.patch || return 1
+
+ # by default, any member of group "users" can edit their own crontab
+ make \
+ PREFIX=/usr \
+ CRONTAB_GROUP=users \
+ CRONTABS=/var/spool/cron \
+ CRONSTAMPS=/var/spool/cronstamps \
+ || return 1
+ make DESTDIR="$pkgdir" install || return 1
+
+ # install standard configuration and scripts
+ install -d -m755 "$pkgdir/etc/cron."{hourly,daily,weekly,monthly} \
+ || return 1
+ install -D -m755 extra/run-cron "$pkgdir/usr/sbin/run-cron" || return 1
+ install -D -m0600 extra/root.crontab "$pkgdir/var/spool/cron/root" \
+ || return 1
+
+ # install Arch configuration and launch scripts
+ install -D -m755 "$srcdir/dcron.rc.d" "$pkgdir/etc/rc.d/crond" || return 1
+ install -D -m0644 "$srcdir/dcron.conf.d" "$pkgdir/etc/conf.d/crond" || return 1
}
diff --git a/abs/core/dcron/dcron-logname.patch b/abs/core/dcron/dcron-logname.patch
new file mode 100644
index 0000000..c37c5f4
--- /dev/null
+++ b/abs/core/dcron/dcron-logname.patch
@@ -0,0 +1,25 @@
+diff -aur dcron-4.4/chuser.c dcron-4.4.logname/chuser.c
+--- dcron-4.4/chuser.c 2010-02-15 11:18:13.111967483 +0100
++++ dcron-4.4.logname/chuser.c 2010-02-15 11:18:29.615531204 +0100
+@@ -25,6 +25,7 @@
+ return(-1);
+ }
+ setenv("USER", pas->pw_name, 1);
++ setenv("LOGNAME", pas->pw_name, 1);
+ setenv("HOME", pas->pw_dir, 1);
+ setenv("SHELL", "/bin/sh", 1);
+
+diff -aur dcron-4.4/crontab.1 dcron-4.4.logname/crontab.1
+--- dcron-4.4/crontab.1 2010-02-15 11:18:13.111967483 +0100
++++ dcron-4.4.logname/crontab.1 2010-02-15 11:19:48.295707950 +0100
+@@ -57,8 +57,8 @@
+ .PP
+ Nor does it do any special environment handling.
+ A shell script is better-suited to doing that than a cron daemon.
+-This cron daemon sets up only three environment variables: USER,
+-HOME, and SHELL.
++This cron daemon sets up only four environment variables: USER,
++LOGNAME, HOME, and SHELL.
+ .PP
+ Our crontab format is roughly similar to that used by vixiecron.
+ Individual fields may contain a time, a time range, a time range
diff --git a/abs/core/dcron/dcron.conf.d b/abs/core/dcron/dcron.conf.d
new file mode 100644
index 0000000..763c712
--- /dev/null
+++ b/abs/core/dcron/dcron.conf.d
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to crond
+#
+CROND_ARGS="-S -l info"
diff --git a/abs/core/dcron/dcron.install b/abs/core/dcron/dcron.install
new file mode 100644
index 0000000..ba08b3a
--- /dev/null
+++ b/abs/core/dcron/dcron.install
@@ -0,0 +1,10 @@
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ if [ "`vercmp $2 4.0`" -lt 0 ]
+ then
+ echo "Restart crond, since you're upgrading to the dcron 4.x series."
+ fi
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/dcron/dcron.rc.d b/abs/core/dcron/dcron.rc.d
new file mode 100644
index 0000000..b1a5770
--- /dev/null
+++ b/abs/core/dcron/dcron.rc.d
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/crond
+
+PID=$(pidof -o %PPID /usr/sbin/crond)
+case $1 in
+start)
+ stat_busy "Starting Cron Daemon"
+
+ # defaults to using syslog, and sendmail-ing cron output to local user
+ # to mail output to remote address instead, add "-m user@host"
+ # to CROND_ARGS in /etc/conf.d/crond
+ if [[ -z $PID ]] && /usr/sbin/crond $CROND_ARGS; then
+
+ PID=$(pidof -o %PPID /usr/sbin/crond)
+ echo "$PID" > /var/run/crond.pid
+ add_daemon crond
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+stop)
+ stat_busy "Stopping Cron Daemon"
+ if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
+ rm_daemon crond
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+restart)
+ $0 stop
+ $0 start
+ ;;
+
+*)
+ echo "Usage: $0 {start|stop|restart}" >&2
+ exit 1
+
+esac