diff options
author | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
---|---|---|
committer | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
commit | 415856bdd4f48ab4f2732996f0bae58595092bbe (patch) | |
tree | ede2018b591f6dfb477fe9341ba17b9bc000fab9 /core/dcron |
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'core/dcron')
-rw-r--r-- | core/dcron/PKGBUILD | 50 | ||||
-rw-r--r-- | core/dcron/dcron-logname.patch | 25 | ||||
-rw-r--r-- | core/dcron/dcron.conf.d | 4 | ||||
-rw-r--r-- | core/dcron/dcron.install | 10 | ||||
-rw-r--r-- | core/dcron/dcron.rc.d | 47 |
5 files changed, 136 insertions, 0 deletions
diff --git a/core/dcron/PKGBUILD b/core/dcron/PKGBUILD new file mode 100644 index 000000000..61999c950 --- /dev/null +++ b/core/dcron/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: Paul Mattal <paul.archlinux.org> + +pkgname=dcron +pkgver=4.4 +pkgrel=2 +pkgdesc="dillon's lightweight cron daemon" +arch=(i686 x86_64) +license=('GPL') +url="http://www.jimpryor.net/linux/dcron" +backup=(var/spool/cron/root etc/conf.d/crond) +depends=('glibc') +provides=('cron') +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 "$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/core/dcron/dcron-logname.patch b/core/dcron/dcron-logname.patch new file mode 100644 index 000000000..c37c5f45f --- /dev/null +++ b/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/core/dcron/dcron.conf.d b/core/dcron/dcron.conf.d new file mode 100644 index 000000000..763c71263 --- /dev/null +++ b/core/dcron/dcron.conf.d @@ -0,0 +1,4 @@ +# +# Parameters to be passed to crond +# +CROND_ARGS="-S -l info" diff --git a/core/dcron/dcron.install b/core/dcron/dcron.install new file mode 100644 index 000000000..ba08b3af1 --- /dev/null +++ b/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/core/dcron/dcron.rc.d b/core/dcron/dcron.rc.d new file mode 100644 index 000000000..b1a5770e6 --- /dev/null +++ b/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 |