1630 lines
49 KiB
Diff
1630 lines
49 KiB
Diff
--- anacron-2.3.orig/ChangeLog
|
|
+++ anacron-2.3/ChangeLog
|
|
@@ -1,3 +1,8 @@
|
|
+ Changes in Anacron 2.3.1
|
|
+ ------------------------
|
|
+* documentation no longer suggests adding local directories to the PATH
|
|
+
|
|
+
|
|
Changes in Anacron 2.3
|
|
----------------------
|
|
* anacron can now read an arbitrary anacrontab file, use the -t option
|
|
--- anacron-2.3.orig/README
|
|
+++ anacron-2.3/README
|
|
@@ -40,7 +40,7 @@
|
|
off for the night or for the weekend, these scripts rarely get run.
|
|
|
|
Anacron solves this problem. These jobs can simply be scheduled as
|
|
-Anacron-jobs with periods of 1, 7 and 30 days.
|
|
+Anacron-jobs with periods of 1, 7 and a special target called @monthly.
|
|
|
|
|
|
What Anacron is not ?
|
|
@@ -109,11 +109,11 @@
|
|
-----Cut
|
|
# /etc/anacrontab example
|
|
SHELL=/bin/sh
|
|
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
|
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
|
# format: period delay job-identifier command
|
|
1 5 cron.daily run-parts /etc/cron.daily
|
|
7 10 cron.weekly run-parts /etc/cron.weekly
|
|
-30 15 cron.monthly run-parts /etc/cron.monthly
|
|
+@monthly 15 cron.monthly run-parts /etc/cron.monthly
|
|
-----Cut
|
|
|
|
5. Put the command "anacron -s" somewhere in your boot-scripts.
|
|
--- anacron-2.3.orig/TODO
|
|
+++ anacron-2.3/TODO
|
|
@@ -1,6 +1,3 @@
|
|
-anacron runs jobs twice in a 31 day month
|
|
-add hostname to emails sent to admin
|
|
-allow user anacrontabs
|
|
make manpages match #defines automagically --> sed fu
|
|
full ANSI / POSIX compliance
|
|
code cleaning
|
|
--- anacron-2.3.orig/anacron.8
|
|
+++ anacron-2.3/anacron.8
|
|
@@ -1,13 +1,15 @@
|
|
-.TH ANACRON 8 2000-06-22 "Sean 'Shaleh' Perry" "Anacron Users' Manual"
|
|
+.TH ANACRON 8 2004-07-11 "Pascal Hakim" "Anacron Users' Manual"
|
|
.SH NAME
|
|
anacron \- runs commands periodically
|
|
.SH SYNOPSIS
|
|
.B anacron \fR[\fB-s\fR] [\fB-f\fR] [\fB-n\fR] [\fB-d\fR] [\fB-q\fR]
|
|
-[\fB-t anacrontab\fR] [\fIjob\fR] ...
|
|
+[\fB-t anacrontab\fR] [\fB-S spooldir\fR] [\fIjob\fR] ...
|
|
.br
|
|
-.B anacron -u [\fB-t anacrontab\fR] \fR[\fIjob\fR] ...
|
|
+.B anacron [\fB-S spooldir\fR] -u [\fB-t anacrontab\fR] \fR[\fIjob\fR] ...
|
|
.br
|
|
.B anacron \fR[\fB-V\fR|\fB-h\fR]
|
|
+.br
|
|
+.B anacron -T [\fB-t anacrontab\fR]
|
|
.SH DESCRIPTION
|
|
Anacron
|
|
can be used to execute commands periodically, with a
|
|
@@ -58,7 +60,10 @@
|
|
completely independent.
|
|
.PP
|
|
If a job generates any output on its standard output or standard error,
|
|
-the output is mailed to the user running Anacron (usually root).
|
|
+the output is mailed to the user running Anacron (usually root), or to
|
|
+the address contained by the MAILTO environment variable in the crontab, if such
|
|
+exists. If the LOGNAME environment variable is set, it will be used as From:
|
|
+field.
|
|
.PP
|
|
Informative messages about what Anacron is doing are sent to \fBsyslogd(8)\fR
|
|
under facility \fBcron\fR, priority \fBnotice\fR. Error messages are sent at
|
|
@@ -98,6 +103,15 @@
|
|
.B -t anacrontab
|
|
Use specified anacrontab, rather than the default
|
|
.TP
|
|
+.B -T
|
|
+Anacrontab testing. The configuration file will be tested for validity. If
|
|
+there is an error in the file, an error will be shown and anacron will
|
|
+return 1. Valid anacrontabs will return 0.
|
|
+.TP
|
|
+.B -S spooldir
|
|
+Use the specified spooldir to store timestamps in. This option is required for
|
|
+users who wish to run anacron themselves.
|
|
+.TP
|
|
.B -V
|
|
Print version information, and exit.
|
|
.TP
|
|
@@ -115,6 +129,8 @@
|
|
file. See
|
|
.B tzset(3)
|
|
for more information.
|
|
+
|
|
+Timestamp files are created in the spool directory for each job in anacrontab. These are never removed automatically by anacron, and should be removed by hand if a job is no longer being scheduled.
|
|
.SH FILES
|
|
.TP
|
|
.I /etc/anacrontab
|
|
@@ -144,4 +160,7 @@
|
|
The current implementation is a complete rewrite by Itai Tzur
|
|
<itzur@actcom.co.il>.
|
|
.PP
|
|
-The code base is currently maintained by Sean 'Shaleh' Perry <shaleh@(debian.org|valinux.com)>.
|
|
+The code base was maintained by Sean 'Shaleh' Perry <shaleh@(debian.org|valinux.com)>.
|
|
+.PP
|
|
+Since 2004, it is maintained by Pascal Hakim <pasc@(debian.org|redellipse.net)>.
|
|
+
|
|
--- anacron-2.3.orig/anacron.apm
|
|
+++ anacron-2.3/anacron.apm
|
|
@@ -0,0 +1,19 @@
|
|
+#! /bin/sh
|
|
+
|
|
+# This script makes anacron jobs start to run when the machine is
|
|
+# plugged into AC power, or woken up. For a laptop, these are the
|
|
+# closest parallels to turning on a desktop.
|
|
+
|
|
+# The /etc/init.d/anacron script now normally tries to avoid running
|
|
+# anacron unless on AC power, so as to avoid running down the battery.
|
|
+# (Things like the slocate updatedb cause a lot of IO.) Rather than
|
|
+# trying to second-guess which events reflect having or not having
|
|
+# power, we just try to run anacron every time and let it abort if
|
|
+# there's no AC. You'll see a message on the cron syslog facility
|
|
+# (typically /var/log/cron) if it does run.
|
|
+
|
|
+case "$1,$2" in
|
|
+change,power|resume,*)
|
|
+ /etc/init.d/anacron start >/dev/null
|
|
+ ;;
|
|
+esac
|
|
--- anacron-2.3.orig/anacrontab.5
|
|
+++ anacron-2.3/anacrontab.5
|
|
@@ -1,4 +1,4 @@
|
|
-.TH ANACRONTAB 5 1998-02-02 "Itai Tzur" "Anacron Users' Manual"
|
|
+.TH ANACRONTAB 5 2004-07-11 "Pascal Hakim" "Anacron Users' Manual"
|
|
.SH NAME
|
|
/etc/anacrontab \- configuration file for anacron
|
|
.SH DESCRIPTION
|
|
@@ -8,10 +8,13 @@
|
|
three kinds: job-description lines, environment
|
|
assignments, or empty lines.
|
|
.PP
|
|
-Job-description lines are of the form:
|
|
+Job-description lines are of one of these two forms:
|
|
.PP
|
|
period delay job-identifier command
|
|
.PP
|
|
+.PP
|
|
+ @period_name delay job-identify command
|
|
+.PP
|
|
The
|
|
.I period
|
|
is specified in days, the
|
|
@@ -22,7 +25,12 @@
|
|
the job in Anacron messages,
|
|
and as the name for the job's timestamp file. The
|
|
.I command
|
|
-can be any shell command.
|
|
+can be any shell command. The fields can be seperated by blank spaces or tabs.
|
|
+The
|
|
+.I period_name
|
|
+can only be set to monthly at the present time. This will ensure jobs
|
|
+are only run once a month, no matter the number of days in this month,
|
|
+or the previous month.
|
|
.PP
|
|
Environment assignment lines are of the form:
|
|
.PP
|
|
@@ -38,6 +46,8 @@
|
|
.PP
|
|
Empty lines are either blank lines, line containing white-space only, or
|
|
lines with white-space followed by a '#' followed by an arbitrary comment.
|
|
+.PP
|
|
+You can continue a line onto the next line by ending it with a '\'.
|
|
.SH "SEE ALSO"
|
|
.B anacron(8)
|
|
.PP
|
|
@@ -46,3 +56,5 @@
|
|
file.
|
|
.SH AUTHOR
|
|
Itai Tzur <itzur@actcom.co.il>
|
|
+.PP
|
|
+Currently maintained by Pascal Hakim <pasc@(debian.org|redellipse.net)>.
|
|
--- anacron-2.3.orig/debian/0anacron.daily
|
|
+++ anacron-2.3/debian/0anacron.daily
|
|
@@ -0,0 +1,12 @@
|
|
+#!/bin/sh
|
|
+#
|
|
+# anacron's cron script
|
|
+#
|
|
+# This script updates anacron time stamps. It is called through run-parts
|
|
+# either by anacron itself or by cron.
|
|
+#
|
|
+# The script is called "0anacron" to assure that it will be executed
|
|
+# _before_ all other scripts.
|
|
+
|
|
+test -x /usr/sbin/anacron || exit 0
|
|
+anacron -u cron.daily
|
|
--- anacron-2.3.orig/debian/0anacron.monthly
|
|
+++ anacron-2.3/debian/0anacron.monthly
|
|
@@ -0,0 +1,12 @@
|
|
+#!/bin/sh
|
|
+#
|
|
+# anacron's cron script
|
|
+#
|
|
+# This script updates anacron time stamps. It is called through run-parts
|
|
+# either by anacron itself or by cron.
|
|
+#
|
|
+# The script is called "0anacron" to assure that it will be executed
|
|
+# _before_ all other scripts.
|
|
+
|
|
+test -x /usr/sbin/anacron || exit 0
|
|
+anacron -u cron.monthly
|
|
--- anacron-2.3.orig/debian/0anacron.weekly
|
|
+++ anacron-2.3/debian/0anacron.weekly
|
|
@@ -0,0 +1,12 @@
|
|
+#!/bin/sh
|
|
+#
|
|
+# anacron's cron script
|
|
+#
|
|
+# This script updates anacron time stamps. It is called through run-parts
|
|
+# either by anacron itself or by cron.
|
|
+#
|
|
+# The script is called "0anacron" to assure that it will be executed
|
|
+# _before_ all other scripts.
|
|
+
|
|
+test -x /usr/sbin/anacron || exit 0
|
|
+anacron -u cron.weekly
|
|
--- anacron-2.3.orig/debian/compat
|
|
+++ anacron-2.3/debian/compat
|
|
@@ -0,0 +1 @@
|
|
+4
|
|
--- anacron-2.3.orig/debian/anacrontab
|
|
+++ anacron-2.3/debian/anacrontab
|
|
@@ -0,0 +1,12 @@
|
|
+# /etc/anacrontab: configuration file for anacron
|
|
+
|
|
+# See anacron(8) and anacrontab(5) for details.
|
|
+
|
|
+SHELL=/bin/sh
|
|
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
|
+
|
|
+# These replace cron's entries
|
|
+1 5 cron.daily nice run-parts --report /etc/cron.daily
|
|
+7 10 cron.weekly nice run-parts --report /etc/cron.weekly
|
|
+@monthly 15 cron.monthly nice run-parts --report /etc/cron.monthly
|
|
+
|
|
--- anacron-2.3.orig/debian/apm.d
|
|
+++ anacron-2.3/debian/apm.d
|
|
@@ -0,0 +1,19 @@
|
|
+#! /bin/sh
|
|
+
|
|
+# This script makes anacron jobs start to run when the machine is
|
|
+# plugged into AC power, or woken up. For a laptop, these are the
|
|
+# closest parallels to turning on a desktop.
|
|
+
|
|
+# The /etc/init.d/anacron script now normally tries to avoid running
|
|
+# anacron unless on AC power, so as to avoid running down the battery.
|
|
+# (Things like the slocate updatedb cause a lot of IO.) Rather than
|
|
+# trying to second-guess which events reflect having or not having
|
|
+# power, we just try to run anacron every time and let it abort if
|
|
+# there's no AC. You'll see a message on the cron syslog facility
|
|
+# (typically /var/log/cron) if it does run.
|
|
+
|
|
+case "$1,$2" in
|
|
+change,power|resume,*)
|
|
+ /usr/sbin/invoke-rc.d anacron start >/dev/null
|
|
+ ;;
|
|
+esac
|
|
--- anacron-2.3.orig/debian/init.d
|
|
+++ anacron-2.3/debian/init.d
|
|
@@ -0,0 +1,48 @@
|
|
+#! /bin/sh
|
|
+# /etc/init.d/anacron: start anacron
|
|
+#
|
|
+
|
|
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
|
+
|
|
+test -x /usr/sbin/anacron || exit 0
|
|
+
|
|
+. /lib/lsb/init-functions
|
|
+
|
|
+case "$1" in
|
|
+ start)
|
|
+ log_daemon_msg "Starting anac(h)ronistic cron" "anacron"
|
|
+ if test -x /usr/bin/on_ac_power
|
|
+ then
|
|
+ /usr/bin/on_ac_power >/dev/null
|
|
+ if test $? -eq 1
|
|
+ then
|
|
+ log_progress_msg "deferred while on battery power."
|
|
+ log_end_msg 0
|
|
+ exit 0
|
|
+ fi
|
|
+ fi
|
|
+
|
|
+ # on_ac_power doesn't exist, on_ac_power returns 0 (ac power being used)
|
|
+ # or on_ac_power returns 255 (undefined, desktop machine without APM)
|
|
+ start-stop-daemon --start --exec /usr/sbin/anacron -- -s
|
|
+ log_end_msg 0
|
|
+ ;;
|
|
+ restart|force-reload)
|
|
+ # nothing to do
|
|
+ :
|
|
+ ;;
|
|
+ stop)
|
|
+ log_daemon_msg "Stopping anac(h)ronistic cron" "anacron"
|
|
+ start-stop-daemon --stop --exec /usr/sbin/anacron --oknodo --quiet
|
|
+ log_end_msg 0
|
|
+ ;;
|
|
+ status)
|
|
+ exit 4
|
|
+ ;;
|
|
+ *)
|
|
+ echo "Usage: /etc/init.d/anacron {start|stop}"
|
|
+ exit 2
|
|
+ ;;
|
|
+esac
|
|
+
|
|
+exit 0
|
|
--- anacron-2.3.orig/debian/control
|
|
+++ anacron-2.3/debian/control
|
|
@@ -0,0 +1,27 @@
|
|
+Source: anacron
|
|
+Section: admin
|
|
+Priority: optional
|
|
+Build-Depends: debhelper (>= 4.0)
|
|
+Maintainer: Pascal Hakim <pasc@debian.org>
|
|
+Standards-Version: 3.7.2
|
|
+
|
|
+Package: anacron
|
|
+Architecture: any
|
|
+Depends: ${shlibs:Depends}, debianutils (>= 1.7), ${misc:Depends}, lsb-base (>= 3.0-10)
|
|
+Replaces: pe
|
|
+Recommends: cron (>= 3.0pl1-43), exim4 | mail-transport-agent, sysklogd | system-log-daemon
|
|
+Suggests: powermgmt-base
|
|
+Description: cron-like program that doesn't go by time
|
|
+ Anacron (like `anac(h)ronistic') is a periodic command scheduler. It
|
|
+ executes commands at intervals specified in days. Unlike cron, it
|
|
+ does not assume that the system is running continuously. It can
|
|
+ therefore be used to control the execution of daily, weekly and
|
|
+ monthly jobs (or anything with a period of n days), on systems that
|
|
+ don't run 24 hours a day. When installed and configured properly,
|
|
+ Anacron will make sure that the commands are run at the specified
|
|
+ intervals as closely as machine-uptime permits.
|
|
+ .
|
|
+ This package is pre-configured to execute the daily jobs of the Debian
|
|
+ system. You should install this program if your system isn't powered on
|
|
+ 24 hours a day to make sure the maintenance jobs of other Debian packages
|
|
+ are executed each day.
|
|
--- anacron-2.3.orig/debian/copyright
|
|
+++ anacron-2.3/debian/copyright
|
|
@@ -0,0 +1,26 @@
|
|
+
|
|
+This is the Debian Linux prepackaged version of the anacron utility.
|
|
+
|
|
+ Anacron - run commands periodically
|
|
+ Copyright (C) 1998 Itai Tzur <itzur@actcom.co.il>
|
|
+ Copyright (C) 1999 Sean 'Shaleh' Perry <shaleh@debian.org>
|
|
+
|
|
+ This program is free software; you can redistribute it and/or modify
|
|
+ it under the terms of the GNU General Public License as published by
|
|
+ the Free Software Foundation; either version 2 of the License, or
|
|
+ (at your option) any later version.
|
|
+
|
|
+ This program is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ GNU General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU General Public License along
|
|
+ with this program; if not, write to the Free Software Foundation, Inc., 51
|
|
+ Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
+
|
|
+
|
|
+anacron can be found on http://www.sourceforge.net.
|
|
+
|
|
+On Debian Linux systems, the complete text of the GNU General
|
|
+Public License can be found in `/usr/share/common-licenses/GPL'.
|
|
--- anacron-2.3.orig/debian/cron.d
|
|
+++ anacron-2.3/debian/cron.d
|
|
@@ -0,0 +1,6 @@
|
|
+# /etc/cron.d/anacron: crontab entries for the anacron package
|
|
+
|
|
+SHELL=/bin/sh
|
|
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
|
+
|
|
+30 7 * * * root test -x /etc/init.d/anacron && /usr/sbin/invoke-rc.d anacron start >/dev/null
|
|
--- anacron-2.3.orig/debian/dirs
|
|
+++ anacron-2.3/debian/dirs
|
|
@@ -0,0 +1,11 @@
|
|
+etc/cron.d
|
|
+etc/init.d
|
|
+etc/cron.daily
|
|
+etc/cron.weekly
|
|
+etc/cron.monthly
|
|
+etc/apm/event.d
|
|
+usr/sbin
|
|
+usr/share/doc/anacron
|
|
+usr/share/man/man5
|
|
+usr/share/man/man8
|
|
+var/spool/anacron
|
|
--- anacron-2.3.orig/debian/docs
|
|
+++ anacron-2.3/debian/docs
|
|
@@ -0,0 +1 @@
|
|
+README TODO
|
|
--- anacron-2.3.orig/debian/rules
|
|
+++ anacron-2.3/debian/rules
|
|
@@ -0,0 +1,69 @@
|
|
+#!/usr/bin/make -f
|
|
+# Made with the aid of dh_make, by Craig Small
|
|
+# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
|
|
+# Some lines taken from debmake, by Cristoph Lameter.
|
|
+
|
|
+# Uncomment this to turn on verbose mode.
|
|
+#export DH_VERBOSE=1
|
|
+
|
|
+build: build-stamp
|
|
+build-stamp:
|
|
+ dh_testdir
|
|
+
|
|
+ $(MAKE)
|
|
+
|
|
+ touch build-stamp
|
|
+
|
|
+clean:
|
|
+ dh_testdir
|
|
+ dh_testroot
|
|
+ rm -f build-stamp install-stamp
|
|
+
|
|
+ -$(MAKE) clean
|
|
+
|
|
+ dh_clean
|
|
+
|
|
+install: install-stamp
|
|
+install-stamp: build-stamp
|
|
+ dh_testdir
|
|
+ dh_testroot
|
|
+ dh_clean -k
|
|
+ dh_installdirs
|
|
+
|
|
+ $(MAKE) install PREFIX=debian/anacron MANDIR=debian/anacron/usr/share/man
|
|
+ install -m 644 debian/anacrontab debian/anacron/etc/
|
|
+ install debian/0anacron.daily debian/anacron/etc/cron.daily/0anacron
|
|
+ install debian/0anacron.weekly debian/anacron/etc/cron.weekly/0anacron
|
|
+ install debian/0anacron.monthly debian/anacron/etc/cron.monthly/0anacron
|
|
+ install -m 755 debian/apm.d debian/anacron/etc/apm/event.d/anacron
|
|
+
|
|
+ touch install-stamp
|
|
+
|
|
+# Build architecture-independent files here.
|
|
+binary-indep: build install
|
|
+# We have nothing to do
|
|
+
|
|
+# Build architecture-dependent files here.
|
|
+binary-arch: build install
|
|
+ dh_testdir
|
|
+ dh_testroot
|
|
+ dh_installdocs
|
|
+ dh_installinit -u"start 89 2 3 4 5 . stop 11 0 1 6 ."
|
|
+ dh_installcron
|
|
+ dh_installman
|
|
+ dh_installchangelogs ChangeLog
|
|
+ #dh_installdebconf
|
|
+ dh_strip
|
|
+ dh_compress
|
|
+ dh_fixperms
|
|
+ dh_installdeb
|
|
+ dh_shlibdeps
|
|
+ dh_gencontrol
|
|
+ dh_md5sums
|
|
+ dh_builddeb
|
|
+
|
|
+source diff:
|
|
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
|
|
+
|
|
+binary: binary-indep binary-arch
|
|
+.PHONY: build clean binary-indep binary-arch binary
|
|
--- anacron-2.3.orig/debian/anacron.postinst
|
|
+++ anacron-2.3/debian/anacron.postinst
|
|
@@ -0,0 +1,18 @@
|
|
+#!/bin/sh
|
|
+
|
|
+case "$1" in
|
|
+ configure)
|
|
+ # continue below
|
|
+ ;;
|
|
+
|
|
+ abort-upgrade|abort-remove|abort-deconfigure)
|
|
+ exit 0
|
|
+ ;;
|
|
+
|
|
+ *)
|
|
+ echo "postinst called with unknown argument \`$1'" >&2
|
|
+ exit 0
|
|
+ ;;
|
|
+esac
|
|
+
|
|
+#DEBHELPER#
|
|
--- anacron-2.3.orig/debian/changelog
|
|
+++ anacron-2.3/debian/changelog
|
|
@@ -0,0 +1,471 @@
|
|
+anacron (2.3-13) unstable; urgency=medium
|
|
+
|
|
+ * Remove debconf remnant
|
|
+ (Closes: #392253)
|
|
+
|
|
+ -- Pascal Hakim <pasc@debian.org> Sat, 14 Oct 2006 18:47:00 +1000
|
|
+
|
|
+anacron (2.3-12) unstable; urgency=medium
|
|
+
|
|
+ * Removed debconf note as it's really not needed anymore. Thanks to all the
|
|
+ people who did translations.
|
|
+ - Removed un-needed debconf note
|
|
+ (Closes: #388703)
|
|
+ - Arabic (Ossama M. Khayat <okhayat@yahoo.com>)
|
|
+ (Closes: #320761)
|
|
+ - Danish (Claus Hindsgaul <claus.hindsgaul@gmail.com>)
|
|
+ - Dutch (Frans Pop <aragorn@tiscali.nl>)
|
|
+ (Closes: #374267)
|
|
+ - German (Erik Schanze <schanzi_@gmx.de>)
|
|
+ - Italian (Luca Monducci <luca.mo@tiscali.it>)
|
|
+ (Closes: #375411)
|
|
+ - Portuguese (Miguel Figueiredo <elmig@debianpt.org>)
|
|
+ (Closes: #336839)
|
|
+ - Russian (Yuriy Talakan <yt@amur.elektra.ru>)
|
|
+ (Closes: #310069)
|
|
+ - Spanish (Lucas Wall <lwall@debian.org>)
|
|
+ (Closes: #374312)
|
|
+ - Swedish (Daniel Nylander <yeager@lidkoping.net>)
|
|
+ (Closes: #331300)
|
|
+ - Vietnamese (Clytie Siddall <clytie@riverland.net.au>)
|
|
+ (Closes: #307740)
|
|
+ * Fixed description to not have a leading particle
|
|
+ (Closes: #320303)
|
|
+ * Start anacron properly on bootup using start-stop-daemon to ensure
|
|
+ automated installers work properly
|
|
+ (Closes: #310797)
|
|
+ * Clarified README.Debian to make more sense and match what's going on
|
|
+ (Closes: #307114)
|
|
+ * Added alternate dependency on debconf-2.0
|
|
+ (as per <20050802224620.GB12557@kitenet.net>)
|
|
+ (Closes: #331739)
|
|
+ * Changed default path to the default cron one to reduce confusion
|
|
+ (Closes: #304327)
|
|
+ * Bumped up the debhelper compability version to 4
|
|
+ * Bumped standards version to 3.7.2
|
|
+ * Cleaned up debian/
|
|
+ * Added { and } to the Usage line to make bash competition work
|
|
+ (Closes: #350603)
|
|
+ * Added a note about timestamp files in the spool directory in the man
|
|
+ page.
|
|
+ (Closes: #305424)
|
|
+ * Fixed substition in debconf template, and make escape it properly
|
|
+ (Closes: #366850)
|
|
+ * Test whether anacron is executable, not just present
|
|
+ (Closes: #378380)
|
|
+ * Make anacron have an lsb-compliant init.d script
|
|
+ (Closes: #384689)
|
|
+
|
|
+ -- Pascal Hakim <pasc@debian.org> Mon, 09 Oct 2006 18:47:00 +1000
|
|
+
|
|
+anacron (2.3-11) unstable; urgency=low
|
|
+
|
|
+ * Added @yearly target in anacrontab.
|
|
+ (Closes: #258617)
|
|
+ * Let an anacrontabs be multiline
|
|
+ (Closes: #215684)
|
|
+ * Remove dependency on an MTA (it's a recommend instead)
|
|
+ (Closes: #252633)
|
|
+ * Remove dependency on syslog (recommend as well)
|
|
+ (Closes: #252633)
|
|
+ * Fix the kill sysvinit invocations
|
|
+ (Closes: #289547)
|
|
+
|
|
+ -- Pascal Hakim <pasc@debian.org> Wed, 9 Feb 2005 08:08:00 +1100
|
|
+
|
|
+anacron (2.3-10) unstable; urgency=low
|
|
+
|
|
+ * Changed current maintainer in documentation
|
|
+ (Closes: #256590)
|
|
+ * Added precisions to @monthly usage in anacrontab (5).
|
|
+ (Closes: #256590)
|
|
+ * Fixed a printf segfault when DEBUG mode is enabled
|
|
+ (Thanks to Martin Quinson <mquinson@ens-lyon.fr>)
|
|
+ (Closes: #257669)
|
|
+ * Added two variables to change the ability to change the
|
|
+ destination and source emails for anacron emails
|
|
+ (Thanks to Martin Quinson <mquinson@ens-lyon.fr>)
|
|
+ (Closes: #223337)
|
|
+ * Translations:
|
|
+ + Updated German (Erik Schanze <schanzi_usenet@gmx.de>)
|
|
+ (Closes: #250293)
|
|
+ + Added Brazilian Portuguese (Andre Luis Lopes <andrelop@debian.org>)
|
|
+ (Closes: #254107)
|
|
+ + Added Spanish (Lucas Wall <kthulhu@kadath.com.ar>)
|
|
+ (Closes: #254559)
|
|
+ + Addedd Czech (Jan Outrata <outrataj@upcase.inf.upol.cz>)
|
|
+
|
|
+ -- Pascal Hakim <pasc@debian.org> Sun, 11 Jul 2004 04:52:00 +1000
|
|
+
|
|
+anacron (2.3-9) unstable; urgency=low
|
|
+
|
|
+ * Fixed priority
|
|
+ * Added translations
|
|
+ + Danish from Claus Hindsgaul <claus_h@image.dk>
|
|
+ (Closes: #242814)
|
|
+ + Japanese from Hideki Yamane <henrich@samba.gr.jp>
|
|
+ (Closes: #243268)
|
|
+ + Italian from Luca Monducci <luca.mo@tiscali.it>
|
|
+ (Closes: #249072)
|
|
+ + German from Erik Schanze <schanzi_usenet@gmx.de>
|
|
+ (Closes: #250293)
|
|
+ + Dutch from Luk Claes <luk.claes@ugent.be>
|
|
+ (Closes: #250657)
|
|
+ * Added an option to check the validity of the config file.
|
|
+ (Closes: #248692)
|
|
+ * Make the -t option work with non-absolute path names.
|
|
+ * Added an extra anacrontab entry (@monthly) which can be used to
|
|
+ schedule a job to run once a month.
|
|
+ (Closes: #35754, #43947)
|
|
+ * Add the ability for normal users to run anacron by specifying a
|
|
+ spool directory.
|
|
+ (Closes: #65853)
|
|
+
|
|
+ -- Pascal Hakim <pasc@debian.org> Mon, 31 May 2004 23:30:00 +1000
|
|
+
|
|
+anacron (2.3-8) unstable; urgency=low
|
|
+
|
|
+ * New maintainer. A side effect of this will be to fix the email alias.
|
|
+ (Closes: #215685)
|
|
+ * Updated to standard versions 3.6.1.0
|
|
+ + Rebuild fixes /usr/share/doc symlink
|
|
+ (Closes: #224559)
|
|
+ * Fixed FTBFS bug.
|
|
+ (Closes: #240043)
|
|
+ * Added powermgmt-base to Suggests.
|
|
+ (Closes: #137435, #140912)
|
|
+ * Fixed up README.Debian to remove a missing example. That example is now
|
|
+ included by default, as anacron will check the power status.
|
|
+ (Closes: #181034)
|
|
+ * Added debconf-isation.
|
|
+ (Patch from Martin Quinson <Martin.Quinson@ens-lyon.fr>)
|
|
+ (closes: #134017)
|
|
+ * Fixed grammar mistake.
|
|
+ (Patch from Julian Gilbey <jdg@debian.org>)
|
|
+ (Closes: #184649)
|
|
+ * Use invoke-rc.d instead of calling the init.d script directly
|
|
+ (Closes: #187544)
|
|
+ * Clarified documentation in respect to tabs and spaces in anacrontab(5).
|
|
+ (Closes: #214314)
|
|
+ * Include hostname in mail subject
|
|
+ (Patch from Martin Quinson <Martin.Quinson@ens-lyon.fr>)
|
|
+ (Closes: #63543, #45149)
|
|
+ * Make the From field in mails RFC2822-compliant
|
|
+ (Patch from Santiago Villa <sanvila@unex.es>)
|
|
+ (Closes: #163083)
|
|
+ * Update depency on exim to exim4, which is the new standard mailer
|
|
+ (Closes: #228571)
|
|
+ * Make "/etc/init.d/anacron stop" try to stop anacron
|
|
+ (Closes: #97969)
|
|
+
|
|
+ -- Pascal Hakim <pasc@debian.org> Thu, 01 Apr 2004 21:30:00 +1000
|
|
+
|
|
+anacron (2.3-7) unstable; urgency=high
|
|
+
|
|
+ * forgive the delay all, life has been hectic
|
|
+ * urgency is high because anacron no longer works if on_ac_power is missing.
|
|
+ This was caused by the reshuffled of on_ac_power into powermgmt-base which
|
|
+ I did not believe was going into Woody.
|
|
+ * fixed the init.d script so it works if on_ac_power is not installed,
|
|
+ Closes: #140911 (and a few more via merge)
|
|
+ * postrm deletes /var/spool/anacron, Closes: #102638
|
|
+
|
|
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Tue, 11 Jun 2002 08:20:46 -0700
|
|
+
|
|
+anacron (2.3-6) unstable; urgency=low
|
|
+
|
|
+ * update Standards version
|
|
+
|
|
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Thu, 29 Mar 2001 17:33:32 -0800
|
|
+
|
|
+anacron (2.3-5) unstable; urgency=low
|
|
+
|
|
+ * Duh, left off half the patch, Closes: #83334
|
|
+
|
|
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Sun, 4 Feb 2001 10:35:01 -0800
|
|
+
|
|
+anacron (2.3-4) unstable; urgency=low
|
|
+
|
|
+ * Added apm event
|
|
+ * init.d script now checks whether machine is on battery power (via APM)
|
|
+ before starting. This saves jobs like slocate from running when you start
|
|
+ your laptop on a place. Code used submitted by Martin Pool.
|
|
+ Closes: #83334
|
|
+ * now that I ship an apm event, I removed the example
|
|
+
|
|
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Thu, 25 Jan 2001 10:05:23 -0800
|
|
+
|
|
+anacron (2.3-3) unstable; urgency=low
|
|
+
|
|
+ * Removed local dirs from default anacrontab
|
|
+ * Changed to depeds from syslog to syslog | system-log-daemon
|
|
+
|
|
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Wed, 18 Oct 2000 07:41:27 -0700
|
|
+
|
|
+anacron (2.3-2) unstable; urgency=low
|
|
+
|
|
+ * Oops, forgot a '.'
|
|
+ * Closes: #66161
|
|
+
|
|
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Sat, 24 Jun 2000 11:45:15 -0700
|
|
+
|
|
+anacron (2.3-1) unstable; urgency=low
|
|
+
|
|
+ * New release
|
|
+
|
|
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Thu, 22 Jun 2000 16:02:42 -0700
|
|
+
|
|
+anacron (2.2-2) unstable; urgency=low
|
|
+
|
|
+ * Fixed clock skew check
|
|
+ * anacron is now on sourceforge.net
|
|
+ * anacron installs init at S89, not S20 as before. This is to match cron.
|
|
+ * Closes: #63146, #65785, #65923
|
|
+
|
|
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Thu, 22 Jun 2000 14:18:41 -0700
|
|
+
|
|
+anacron (2.2-1) unstable; urgency=low
|
|
+
|
|
+ * maintainer upload
|
|
+ * Closes: #57286, #65436, #61417, #64599
|
|
+ * Torsten, thanks, you caught me the one time I was away from my desk (-:
|
|
+
|
|
+ -- Sean 'Shaleh' Perry <shaleh@debian.org> Tue, 13 Jun 2000 13:19:12 -0700
|
|
+
|
|
+anacron (2.1-5.1) frozen unstable; urgency=low
|
|
+
|
|
+ * Non maintainer upload. Shaleh, please forgive me, but this is a
|
|
+ really small change and I would really hate to see reports that
|
|
+ the installation does not work because of broken task packages...
|
|
+ * [RC] Name exim as solution for mail-transport-agent in Depends line.
|
|
+ Otherwise tasksel will break on the task-dialup package (closes: #64599).
|
|
+ * I'm dumb - uploaded to unstable only *sigh*
|
|
+
|
|
+ -- Torsten Landschoff <torsten@debian.org> Thu, 25 May 2000 20:08:37 +0200
|
|
+
|
|
+anacron (2.1-5) unstable; urgency=low
|
|
+
|
|
+ * updates for recent policy
|
|
+ * Closes: #50255
|
|
+
|
|
+ -- Sean E. Perry <shaleh@debian.org> Thu, 21 Nov 1999 22:17:33 -0800
|
|
+
|
|
+anacron (2.1-4) unstable; urgency=low
|
|
+
|
|
+ * Closes: #45954
|
|
+
|
|
+ -- Sean E. Perry <shaleh@debian.org> Wed, 29 Sep 1999 11:20:12 -0700
|
|
+
|
|
+anacron (2.1-3) unstable; urgency=low
|
|
+
|
|
+ * Real FHS compliance
|
|
+ * Closes: #33828, #34851, #39841, #43047, #44083, #44889
|
|
+
|
|
+ -- Sean E. Perry <shaleh@debian.org> Mon, 20 Sep 1999 15:28:37 -0700
|
|
+
|
|
+anacron (2.1-2) unstable; urgency=low
|
|
+
|
|
+ * Upload for fhs compliance
|
|
+
|
|
+ -- Sean E. Perry <shaleh@debian.org> Tue, 7 Sep 1999 14:26:00 -0700
|
|
+
|
|
+anacron (2.1-1) unstable; urgency=low
|
|
+
|
|
+ * New release
|
|
+
|
|
+ -- Sean E. Perry <shaleh@debian.org> Thu, 12 Aug 1999 12:23:37 -0700
|
|
+
|
|
+anacron (2.0.1-5) unstable; urgency=low
|
|
+
|
|
+ * D'uh, closes #37344, learn to type Sean (-:
|
|
+
|
|
+ -- Sean E. Perry <shaleh@debian.org> Sun, 9 May 1999 00:21:22 -0400
|
|
+
|
|
+anacron (2.0.1-4) unstable; urgency=low
|
|
+
|
|
+ * check for anacron's existence in conffiles
|
|
+ * clean up in rules file
|
|
+
|
|
+ -- Sean E. Perry <shaleh@debian.org> Thu, 6 May 1999 23:19:45 -0400
|
|
+
|
|
+anacron (2.0.1-3) unstable; urgency=low
|
|
+
|
|
+ * New maintainer (finally)
|
|
+ * begin clean mode
|
|
+ * removed rc?.d/K20anacron scripts, they were useless
|
|
+ * switched to debhelper
|
|
+ * closes: 23258
|
|
+ * closes: 24555
|
|
+ * closes: 26612
|
|
+ * closes: 32852
|
|
+
|
|
+ -- Sean E. Perry <shaleh@debian.org> Thu, 25 Mar 1999 12:56:02 -0500
|
|
+
|
|
+anacron (2.0.1-2) frozen unstable; urgency=low
|
|
+
|
|
+ * Orphaned package
|
|
+ * Incorporated changes from last NMR (fixes:bug#21598)
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Thu, 14 May 1998 22:49:30 +0200
|
|
+
|
|
+anacron (2.0.1-1.1) frozen unstable; urgency=low
|
|
+
|
|
+ * NMR to correct problems with build not using gcc and trying to install
|
|
+ files somewhere other than debian/tmp and not using dpkg-shlibdeps to
|
|
+ make sure debian/substvars (which wasn't being deleted during clean) was
|
|
+ correct (fixes:bug#21598)
|
|
+
|
|
+ -- Michael Alan Dorman <mdorman@debian.org> Sun, 10 May 1998 11:03:33 +0500
|
|
+
|
|
+anacron (2.0.1-1) frozen unstable; urgency=low
|
|
+
|
|
+ * New upstream release (contains only bug fixes; fixes:bug#19557)
|
|
+
|
|
+ * Recommend "cron (>= 3.0pl1-43)" which does not include the obsolete
|
|
+ cronanacron script anymore
|
|
+
|
|
+ * Install manual pages with correct file permissions
|
|
+ (detected by Lintian)
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Sat, 21 Mar 1998 11:03:33 +0100
|
|
+
|
|
+anacron (2.0-3) unstable; urgency=low
|
|
+
|
|
+ * Fixed typo in Description (fixes:bug#18875)
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Fri, 6 Mar 1998 21:15:48 +0100
|
|
+
|
|
+anacron (2.0-2) unstable; urgency=low
|
|
+
|
|
+ * Added "Depends: smail | sendmail | mail-transport-agent"
|
|
+ * Don't tag /etc/cron.d/anacron executable (fixes bug #18307)
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Tue, 17 Feb 1998 22:49:35 +0100
|
|
+
|
|
+anacron (2.0-1) unstable; urgency=low
|
|
+
|
|
+ * New upstream maintainer
|
|
+ (Thanks to Itai Tzur <itzur@actcom.co.il> for taking over
|
|
+ upstream maintenance!)
|
|
+
|
|
+ * New upstream version:
|
|
+ - anacron has been completely rewritten in C (no perl anymore)
|
|
+ - uses flock to lock its lock files (this fixes bug #17550)
|
|
+ - uses syslog for logging messages
|
|
+
|
|
+ * Register cron job via /etc/cron.d
|
|
+ * Updated /etc/cron.*/0anacron* scripts to use `anacron -u'
|
|
+ * Modified postinst script to check for existing anacron jobs in
|
|
+ /etc/crontab
|
|
+ * Changed "Suggests: cron" into "Recommends: cron (>= 3.0pl1-42)"
|
|
+
|
|
+ * Added dependency on sysklogd
|
|
+ * Removed cron.weekly script to rotate log files
|
|
+
|
|
+ * Added new (dummy) options to etc/init.d/anacron: restart, force-reload
|
|
+ (reported by Lintian)
|
|
+
|
|
+ * Removed buggy prerm script
|
|
+
|
|
+ * Updated FSF's address (reported by Lintian)
|
|
+ * Updated package description
|
|
+ * Added README.Debian to explain Debian specific setup
|
|
+
|
|
+ * Built package with fakeroot
|
|
+ * Upgraded package to Standards-Version 2.4.0.0
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Mon, 16 Feb 1998 17:19:38 +0100
|
|
+
|
|
+anacron (1.0.7) unstable; urgency=low
|
|
+
|
|
+ * debian/rules: Don't use debstd anymore
|
|
+ * debian/rules: Compress changelog file (fixes:#15442)
|
|
+ * debian/control: Upgraded to Standards Version 2.3.0.1
|
|
+ * debian/control: Removed perl dependency (perl-base is tagged
|
|
+ `Essential')
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Wed, 24 Dec 1997 13:10:52 +0100
|
|
+
|
|
+anacron (1.0.6) unstable; urgency=low
|
|
+
|
|
+ * Handle arguments for postinst (fixes #12572)
|
|
+ * Upgraded to Standards Version 2.3.0.0
|
|
+ * Document two more feature requests in the TODO file
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Fri, 12 Sep 1997 02:26:17 +0200
|
|
+
|
|
+anacron (1.0.5) unstable; urgency=low
|
|
+
|
|
+ * Use little help program to run jobs: this program removes the lockfile
|
|
+ even when the job is killed (fixes bug#12060).
|
|
+ * Package is now arch-dependent.
|
|
+ * postrm: remove log files when purged (fixes bug#12038).
|
|
+ * prerm: remove spool files when purged.
|
|
+ * Specify /etc/cron.*/*, /etc/init.d/anacron scripts as conffiles.
|
|
+ * New file TODO which documents all feature requests: currently bug#11085.
|
|
+ * Use debstd in debian/rules .
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Mon, 18 Aug 1997 19:31:40 +0200
|
|
+
|
|
+anacron (1.0.4) unstable; urgency=low
|
|
+
|
|
+ * Anacron is preconfigured to run the daily/weekly/monthly jobs now.
|
|
+ * Updated description to tell the user about this.
|
|
+ * Added "Suggests: cron".
|
|
+ * Changed behaviour of /etc/init.d/anacron script: Just run anacron if
|
|
+ it's later then 7:30am.
|
|
+ * Added scripts to /etc/cron.{daily,weekly,monthly} to update anacron's
|
|
+ time stamps (necessary if the scripts are run by cron).
|
|
+ * Added check and message to postinst script to tell the user about
|
|
+ adding a cron entry for anacron.
|
|
+ * Updated README file to describe new setup.
|
|
+ * Moved anacron script to /usr/sbin.
|
|
+ * Upgraded to Standards-Version 2.2.0.0.
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Sat, 2 Aug 1997 19:18:53 +0200
|
|
+
|
|
+anacron (1.0.3) unstable; urgency=low
|
|
+
|
|
+ * Fixed date calculation (thanks to Itai Tzur for the patch!)
|
|
+ * Upgraded to Standards-Version 2.1.3.3.
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Wed, 2 Jul 1997 17:48:43 +0200
|
|
+
|
|
+anacron (1.0.2-1) unstable; urgency=low
|
|
+
|
|
+ * New upstream source: improved README (fixes bug #5933).
|
|
+ * Changed console message in /etc/init.d to apply to new standard.
|
|
+ * Upgraded to Standards-Version 2.1.2.2.
|
|
+ * Removed buggy check for `pe' in postinst.
|
|
+ * Added `Replaces: pe' to control file.
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Thu, 9 Jan 1997 17:16:36 +0100
|
|
+
|
|
+anacron (1.0.1-3) unstable; urgency=low
|
|
+
|
|
+ * Changed priority from standard to extra.
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Tue, 5 Nov 1996 22:30:37 +0100
|
|
+
|
|
+anacron (1.0.1-2) unstable; urgency=low
|
|
+
|
|
+ * Upgraded to Standards-Version 2.1.1.0.
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Sat, 2 Nov 1996 20:31:12 +0100
|
|
+
|
|
+anacron (1.0.1-1) unstable; urgency=low
|
|
+
|
|
+ * Upgraded to Standards-Version 2.1.0.0.
|
|
+ * Fixed problem when anacron was called multiple times.
|
|
+ * Changed distribution from experimental to unstable.
|
|
+
|
|
+ -- Christian Schwarz <schwarz@debian.org> Wed, 18 Sep 1996 20:00:40 +0200
|
|
+
|
|
+anacron (1.0-1) experimental; urgency=low
|
|
+
|
|
+ * First Debian release.
|
|
+ * Changed program name from `pe' to `anacron'.
|
|
+ * Rewrote program and docs.
|
|
+
|
|
+ -- Christian Schwarz <schwarz@monet.m.isar.de> Fri, 23 Aug 1996 22:32:33 +0200
|
|
+
|
|
--- anacron-2.3.orig/debian/anacron.postrm
|
|
+++ anacron-2.3/debian/anacron.postrm
|
|
@@ -0,0 +1,11 @@
|
|
+#!/bin/sh
|
|
+
|
|
+set -e
|
|
+
|
|
+if [ "$1" = "purge" ]; then
|
|
+# here for historical reasons
|
|
+ rm -f /var/log/anacron /var/log/anacron.[0-9]*
|
|
+ rm -rf /var/spool/anacron
|
|
+fi
|
|
+
|
|
+#DEBHELPER#
|
|
--- anacron-2.3.orig/debian/README.debian
|
|
+++ anacron-2.3/debian/README.debian
|
|
@@ -0,0 +1,13 @@
|
|
+anacron for DEBIAN
|
|
+----------------------
|
|
+
|
|
+Anacron runs transparently to the system. In other words, you should never be
|
|
+aware that anacron and not cron is actually running cron.{daily,weekly,monthly}.
|
|
+
|
|
+Anacron itself however is not a daemon, so it will either be called at startup,
|
|
+on APM power status change, or by cron. Disabling those will result in some
|
|
+jobs not being executed on time.
|
|
+
|
|
+Anacron leaves messages in /var/log/syslog and /var/log/messages by default.
|
|
+
|
|
+-- Pascal hakim <pasc@debian.org>, Tue, 02 Aug 2005 20:27:00 +1100
|
|
--- anacron-2.3.orig/global.h
|
|
+++ anacron-2.3/global.h
|
|
@@ -2,6 +2,7 @@
|
|
Anacron - run commands periodically
|
|
Copyright (C) 1998 Itai Tzur <itzur@actcom.co.il>
|
|
Copyright (C) 1999 Sean 'Shaleh' Perry <shaleh@debian.org>
|
|
+ Copyright (C) 2004 Pascal Hakim <pasc@redellipse.net>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
@@ -53,9 +54,11 @@
|
|
|
|
struct job_rec1 {
|
|
int period;
|
|
+ int named_period;
|
|
int delay;
|
|
char *ident;
|
|
char *command;
|
|
+ char *mailto;
|
|
|
|
int tab_line;
|
|
int arg_num;
|
|
@@ -75,9 +78,10 @@
|
|
extern pid_t primary_pid;
|
|
extern char *program_name;
|
|
extern char *anacrontab;
|
|
+extern char *spooldir;
|
|
extern int old_umask;
|
|
extern sigset_t old_sigmask;
|
|
-extern int serialize,force,update_only,now,no_daemon,quiet;
|
|
+extern int serialize,force,update_only,now,no_daemon,quiet,testing_only;
|
|
extern int day_now;
|
|
extern int year,month,day_of_month;
|
|
extern int in_background;
|
|
@@ -93,6 +97,7 @@
|
|
|
|
extern int running_jobs,running_mailers;
|
|
|
|
+extern int complaints;
|
|
|
|
/* Function prototypes */
|
|
|
|
@@ -121,7 +126,7 @@
|
|
#endif /* not DEBUG */
|
|
|
|
/* readtab.c */
|
|
-void read_tab();
|
|
+void read_tab(int cwd);
|
|
void arrange_jobs();
|
|
|
|
/* lock.c */
|
|
--- anacron-2.3.orig/gregor.c
|
|
+++ anacron-2.3/gregor.c
|
|
@@ -2,6 +2,7 @@
|
|
Anacron - run commands periodically
|
|
Copyright (C) 1998 Itai Tzur <itzur@actcom.co.il>
|
|
Copyright (C) 1999 Sean 'Shaleh' Perry <shaleh@debian.org>
|
|
+ Copyright (C) 2004 Pascal Hakim <pasc@redellipse.net>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
@@ -23,6 +24,7 @@
|
|
|
|
|
|
#include <limits.h>
|
|
+#include <time.h>
|
|
#include "gregor.h"
|
|
|
|
const static int
|
|
@@ -65,7 +67,7 @@
|
|
{
|
|
int dn;
|
|
int i;
|
|
- const int isleap; /* save three calls to leap() */
|
|
+ int isleap; /* save three calls to leap() */
|
|
|
|
/* Some validity checks */
|
|
|
|
@@ -114,3 +116,66 @@
|
|
/* but not by 400 */
|
|
return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
|
|
}
|
|
+
|
|
+int
|
|
+days_last_month (void)
|
|
+/* How many days did last month have? */
|
|
+{
|
|
+ struct tm time_record;
|
|
+ time_t current_time;
|
|
+ time (¤t_time);
|
|
+ localtime_r (¤t_time, &time_record);
|
|
+
|
|
+ switch (time_record.tm_mon) {
|
|
+ case 0: return days_in_month[11];
|
|
+ case 2: return days_in_month[1] + (leap (time_record.tm_year + 1900) ? 1 : 0);
|
|
+ default: return days_in_month[time_record.tm_mon - 1];
|
|
+ }
|
|
+}
|
|
+
|
|
+int
|
|
+days_this_month (void)
|
|
+/* How many days does this month have? */
|
|
+{
|
|
+ struct tm time_record;
|
|
+ time_t current_time;
|
|
+ time (¤t_time);
|
|
+ localtime_r (¤t_time, &time_record);
|
|
+
|
|
+ switch (time_record.tm_mon) {
|
|
+ case 1: return days_in_month[1] + (leap (time_record.tm_year + 1900) ? 1 : 0);
|
|
+ default: return days_in_month[time_record.tm_mon];
|
|
+ }
|
|
+}
|
|
+
|
|
+int
|
|
+days_last_year (void)
|
|
+/* How many days this last year have? */
|
|
+{
|
|
+ struct tm time_record;
|
|
+ time_t current_time;
|
|
+ time (¤t_time);
|
|
+ localtime_r (¤t_time, &time_record);
|
|
+
|
|
+ if (leap(time_record.tm_year - 1 + 1900)) {
|
|
+ return 366;
|
|
+ }
|
|
+
|
|
+ return 365;
|
|
+}
|
|
+
|
|
+int
|
|
+days_this_year (void)
|
|
+/* How many days does this year have */
|
|
+{
|
|
+ struct tm time_record;
|
|
+ time_t current_time;
|
|
+ time (¤t_time);
|
|
+ localtime_r (¤t_time, &time_record);
|
|
+
|
|
+ if (leap(time_record.tm_year + 1900)) {
|
|
+ return 366;
|
|
+ }
|
|
+
|
|
+ return 365;
|
|
+}
|
|
--- anacron-2.3.orig/gregor.h
|
|
+++ anacron-2.3/gregor.h
|
|
@@ -2,6 +2,7 @@
|
|
Anacron - run commands periodically
|
|
Copyright (C) 1998 Itai Tzur <itzur@actcom.co.il>
|
|
Copyright (C) 1999 Sean 'Shaleh' Perry <shaleh@debian.org>
|
|
+ Copyright (C) 2004 Pascal Hakim <pasc@redellipse.net>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
@@ -23,3 +24,7 @@
|
|
|
|
|
|
int day_num(int year, int month, int day);
|
|
+int days_last_month (void);
|
|
+int days_this_month (void);
|
|
+int days_last_year (void);
|
|
+int days_this_year (void);
|
|
--- anacron-2.3.orig/lock.c
|
|
+++ anacron-2.3/lock.c
|
|
@@ -2,6 +2,7 @@
|
|
Anacron - run commands periodically
|
|
Copyright (C) 1998 Itai Tzur <itzur@actcom.co.il>
|
|
Copyright (C) 1999 Sean 'Shaleh' Perry <shaleh@debian.org>
|
|
+ Copyirght (C) 2004 Pascal Hakim <pasc@redellipse.net>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
@@ -111,6 +112,35 @@
|
|
xclose(jr->timestamp_fd);
|
|
return 0;
|
|
}
|
|
+
|
|
+ /*
|
|
+ * Check to see if it's a named period, in which case we need
|
|
+ * to figure it out.
|
|
+ */
|
|
+ if (jr->named_period)
|
|
+ {
|
|
+ int period = 0, bypass = 0;
|
|
+ switch (jr->named_period)
|
|
+ {
|
|
+ case 1:
|
|
+ period = days_last_month ();
|
|
+ bypass = days_this_month ();
|
|
+ break;
|
|
+ case 2:
|
|
+ period = days_last_year ();
|
|
+ bypass = days_this_year ();
|
|
+ break;
|
|
+ default:
|
|
+ die ("Unknown named period for %s (%d)", jr->ident, jr->named_period);
|
|
+ }
|
|
+ printf ("Checking against %d with %d\n", day_delta, period);
|
|
+ if (day_delta < period && day_delta != bypass)
|
|
+ {
|
|
+ /* Job is still too young */
|
|
+ xclose (jr->timestamp_fd);
|
|
+ return 0;
|
|
+ }
|
|
+ }
|
|
}
|
|
|
|
/* no! try to grab the lock */
|
|
--- anacron-2.3.orig/log.c
|
|
+++ anacron-2.3/log.c
|
|
@@ -2,6 +2,7 @@
|
|
Anacron - run commands periodically
|
|
Copyright (C) 1998 Itai Tzur <itzur@actcom.co.il>
|
|
Copyright (C) 1999 Sean 'Shaleh' Perry <shaleh@debian.org>
|
|
+ Copyright (C) 2004 Pascal Hakim <pasc@redellipse.net>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
@@ -48,6 +49,9 @@
|
|
static char msg[MAX_MSG + 1];
|
|
static int log_open = 0;
|
|
|
|
+/* Number of complaints that we've seen */
|
|
+int complaints = 0;
|
|
+
|
|
static void
|
|
xopenlog()
|
|
{
|
|
@@ -147,6 +151,8 @@
|
|
va_start(args, fmt);
|
|
log(COMPLAIN_LEVEL, fmt, args);
|
|
va_end(args);
|
|
+
|
|
+ complaints += 1;
|
|
}
|
|
|
|
void
|
|
@@ -158,6 +164,8 @@
|
|
va_start(args, fmt);
|
|
log_e(COMPLAIN_LEVEL, fmt, args);
|
|
va_end(args);
|
|
+
|
|
+ complaints += 1;
|
|
}
|
|
|
|
void
|
|
--- anacron-2.3.orig/main.c
|
|
+++ anacron-2.3/main.c
|
|
@@ -2,6 +2,7 @@
|
|
Anacron - run commands periodically
|
|
Copyright (C) 1998 Itai Tzur <itzur@actcom.co.il>
|
|
Copyright (C) 1999 Sean 'Shaleh' Perry <shaleh@debian.org>
|
|
+ Copyright (C) 2004 Pascal Hakim <pasc@redellipse.net>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
@@ -39,8 +40,9 @@
|
|
|
|
char *program_name;
|
|
char *anacrontab;
|
|
+char *spooldir;
|
|
int serialize, force, update_only, now,
|
|
- no_daemon, quiet; /* command-line options */
|
|
+ no_daemon, quiet, testing_only; /* command-line options */
|
|
char **args; /* vector of "job" command-line arguments */
|
|
int nargs; /* number of these */
|
|
char *defarg = "*";
|
|
@@ -61,17 +63,19 @@
|
|
printf("Anacron " RELEASE "\n"
|
|
"Copyright (C) 1998 Itai Tzur <itzur@actcom.co.il>\n"
|
|
"Copyright (C) 1999 Sean 'Shaleh' Perry <shaleh@debian.org>\n"
|
|
+ "Copyright (C) 2004 Pascal Hakim <pasc@redellipse.net>\n"
|
|
"\n"
|
|
- "Mail comments, suggestions and bug reports to <shaleh@debian.org>."
|
|
+ "Mail comments, suggestions and bug reports to <pasc@redellipse.net>."
|
|
"\n\n");
|
|
}
|
|
|
|
static void
|
|
print_usage()
|
|
{
|
|
- printf("Usage: anacron [-s] [-f] [-n] [-d] [-q] [-t anacrontab] [job] ...\n"
|
|
- " anacron -u [job] ...\n"
|
|
+ printf("Usage: anacron [-s] [-f] [-n] [-d] [-q] [-t anacrontab] [-S spooldir] [job] ...\n"
|
|
+ " anacron [-S spooldir] -u [job] ...\n"
|
|
" anacron [-V|-h]\n"
|
|
+ " anacron -T [-t anacrontab]\n"
|
|
"\n"
|
|
" -s Serialize execution of jobs\n"
|
|
" -f Force execution of jobs, even before their time\n"
|
|
@@ -82,6 +86,8 @@
|
|
" -t Use this anacrontab\n"
|
|
" -V Print version information\n"
|
|
" -h Print this message\n"
|
|
+ " -T Test an anacrontab\n"
|
|
+ " -S Select a different spool directory\n"
|
|
"\n"
|
|
"See the manpage for more details.\n"
|
|
"\n");
|
|
@@ -95,7 +101,7 @@
|
|
|
|
quiet = no_daemon = serialize = force = update_only = now = 0;
|
|
opterr = 0;
|
|
- while ((opt = getopt(argc, argv, "sfundqt:Vh")) != EOF)
|
|
+ while ((opt = getopt(argc, argv, "sfundqt:TS:Vh")) != EOF)
|
|
{
|
|
switch (opt)
|
|
{
|
|
@@ -120,6 +126,12 @@
|
|
case 't':
|
|
anacrontab = strdup(optarg);
|
|
break;
|
|
+ case 'T':
|
|
+ testing_only = 1;
|
|
+ break;
|
|
+ case 'S':
|
|
+ spooldir = strdup(optarg);
|
|
+ break;
|
|
case 'V':
|
|
print_version();
|
|
exit(0);
|
|
@@ -351,7 +363,7 @@
|
|
day_of_month = tm_now->tm_mday;
|
|
day_now = day_num(year, month, day_of_month);
|
|
if (day_now == -1) die("Invalid date (this is really embarrassing)");
|
|
- if (!update_only)
|
|
+ if (!update_only && !testing_only)
|
|
explain("Anacron " RELEASE " started on %04d-%02d-%02d",
|
|
year, month, day_of_month);
|
|
}
|
|
@@ -414,7 +426,10 @@
|
|
{
|
|
int j;
|
|
|
|
+ int cwd;
|
|
+
|
|
anacrontab = NULL;
|
|
+ spooldir = NULL;
|
|
|
|
if((program_name = strrchr(argv[0], '/')) == NULL)
|
|
program_name = argv[0];
|
|
@@ -426,9 +441,16 @@
|
|
if (anacrontab == NULL)
|
|
anacrontab = strdup(ANACRONTAB);
|
|
|
|
+ if (spooldir == NULL)
|
|
+ spooldir = strdup(SPOOLDIR);
|
|
+
|
|
+ if ((cwd = open ("./", O_RDONLY)) == -1) {
|
|
+ die_e ("Can't save current directory");
|
|
+ }
|
|
+
|
|
in_background = 0;
|
|
|
|
- if (chdir(SPOOLDIR)) die_e("Can't chdir to " SPOOLDIR);
|
|
+ if (chdir(spooldir)) die_e("Can't chdir to %s", spooldir );
|
|
|
|
old_umask = umask(0);
|
|
|
|
@@ -437,15 +459,22 @@
|
|
if (fclose(stdin)) die_e("Can't close stdin");
|
|
xopen(0, "/dev/null", O_RDONLY);
|
|
|
|
- if (!no_daemon)
|
|
+ if (!no_daemon && !testing_only)
|
|
go_background();
|
|
else
|
|
primary_pid = getpid();
|
|
|
|
record_start_time();
|
|
- read_tab();
|
|
+ read_tab(cwd);
|
|
arrange_jobs();
|
|
|
|
+ if (testing_only)
|
|
+ {
|
|
+ if (complaints) exit (1);
|
|
+
|
|
+ exit (0);
|
|
+ }
|
|
+
|
|
if (update_only)
|
|
{
|
|
fake_jobs();
|
|
@@ -462,6 +491,6 @@
|
|
launch_job(job_array[j]);
|
|
}
|
|
wait_children();
|
|
- explain("Normal exit (%d jobs run)", njobs);
|
|
+ explain("Normal exit (%d job%s run)", njobs, (njobs == 1 ? "" : "s"));
|
|
exit(0);
|
|
}
|
|
--- anacron-2.3.orig/readtab.c
|
|
+++ anacron-2.3/readtab.c
|
|
@@ -2,6 +2,7 @@
|
|
Anacron - run commands periodically
|
|
Copyright (C) 1998 Itai Tzur <itzur@actcom.co.il>
|
|
Copyright (C) 1999 Sean 'Shaleh' Perry <shaleh@debian.org>
|
|
+ Copyright (C) 2004 Pascal Hakim <pasc@redellipse.net>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
@@ -83,11 +84,23 @@
|
|
Return NULL if no more lines.
|
|
*/
|
|
{
|
|
- int c;
|
|
+ int c, prev=0;
|
|
|
|
if (feof(tab)) return NULL;
|
|
- while ((c = getc(tab)) != EOF && c != '\n')
|
|
- obstack_1grow(&input_o, c);
|
|
+ while (1)
|
|
+ {
|
|
+ c = getc(tab);
|
|
+ if ((c == '\n' && prev != '\\') || c == EOF)
|
|
+ {
|
|
+ if (0 != prev) obstack_1grow(&input_o, prev);
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if ('\\' != prev && 0 != prev && '\n' != prev) obstack_1grow(&input_o, prev);
|
|
+ else if ('\n' == prev) obstack_1grow(&input_o, ' ');
|
|
+
|
|
+ prev = c;
|
|
+ }
|
|
if (ferror(tab)) die_e("Error reading %s", anacrontab);
|
|
obstack_1grow(&input_o, '\0');
|
|
return obstack_finish(&input_o);
|
|
@@ -153,6 +166,7 @@
|
|
}
|
|
jr = obstack_alloc(&tab_o, sizeof(job_rec));
|
|
jr->period = period;
|
|
+ jr->named_period = 0;
|
|
jr->delay = delay;
|
|
jr->tab_line = line_num;
|
|
jr->ident = obstack_alloc(&tab_o, ident_len + 1);
|
|
@@ -171,6 +185,54 @@
|
|
}
|
|
|
|
static void
|
|
+register_period_job(const char *periods, const char *delays,
|
|
+ const char *ident, char *command)
|
|
+/* Store a job definition with a named period */
|
|
+{
|
|
+ int delay;
|
|
+ job_rec *jr;
|
|
+ int period_len, ident_len, command_len;
|
|
+
|
|
+ period_len = strlen(periods);
|
|
+ ident_len = strlen(ident);
|
|
+ command_len = strlen(command);
|
|
+ jobs_read++;
|
|
+ delay = conv2int(delays);
|
|
+ if (delay < 0)
|
|
+ {
|
|
+ complain("%s: number out of range on line %d, skipping",
|
|
+ anacrontab, line_num);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ jr = obstack_alloc(&tab_o, sizeof(job_rec));
|
|
+ if (!strncmp ("@monthly", periods, 7)) {
|
|
+ jr->named_period = 1;
|
|
+ } else if (!strncmp("@yearly", periods, 7)) {
|
|
+ jr->named_period = 2;
|
|
+ } else {
|
|
+ complain("%s: Unknown named period on line %d, skipping",
|
|
+ anacrontab, line_num);
|
|
+ }
|
|
+ jr->period = 0;
|
|
+ jr->delay = delay;
|
|
+ jr->tab_line = line_num;
|
|
+ jr->ident = obstack_alloc(&tab_o, ident_len + 1);
|
|
+ strcpy(jr->ident, ident);
|
|
+ jr->arg_num = job_arg_num(ident);
|
|
+ jr->command = obstack_alloc(&tab_o, command_len + 1);
|
|
+ strcpy(jr->command, command);
|
|
+ jr->job_pid = jr->mailer_pid = 0;
|
|
+ if (last_job_rec != NULL) last_job_rec->next = jr;
|
|
+ else first_job_rec = jr;
|
|
+ last_job_rec = jr;
|
|
+ jr->prev_env_rec = last_env_rec;
|
|
+ jr->next = NULL;
|
|
+ Debug(("Read job - period %d, delay=%d, ident%s, command=%s",
|
|
+ jr->named_period, jr->delay, jr->ident, jr->command));
|
|
+}
|
|
+
|
|
+static void
|
|
parse_tab_line(char *line)
|
|
{
|
|
int r;
|
|
@@ -210,6 +272,18 @@
|
|
register_job(periods, delays, ident, command);
|
|
return;
|
|
}
|
|
+
|
|
+ /* A period job? */
|
|
+ r = match_rx("^[ \t]*(@[^ \t]+)[ \t]+([[:digit:]]+)[ \t]+"
|
|
+ "([^ \t/]+)[ \t]+([^ \t].*)$",
|
|
+ line, 4, &periods, &delays, &ident, &command);
|
|
+ if (r == -1) goto reg_err;
|
|
+ if (r)
|
|
+ {
|
|
+ register_period_job(periods, delays, ident, command);
|
|
+ return;
|
|
+ }
|
|
+
|
|
complain("Invalid syntax in %s on line %d - skipping this line",
|
|
anacrontab, line_num);
|
|
return;
|
|
@@ -219,7 +293,7 @@
|
|
}
|
|
|
|
void
|
|
-read_tab()
|
|
+read_tab(int cwd)
|
|
/* Read the anacrontab file into memory */
|
|
{
|
|
char *tab_line;
|
|
@@ -229,7 +303,10 @@
|
|
jobs_read = 0;
|
|
line_num = 0;
|
|
/* Open the anacrontab file */
|
|
+ fchdir (cwd);
|
|
tab = fopen(anacrontab, "r");
|
|
+ if (chdir(spooldir)) die_e("Can't chdir to %s", SPOOLDIR);
|
|
+
|
|
if (tab == NULL) die_e("Error opening %s", anacrontab);
|
|
/* Initialize the obstacks */
|
|
obstack_init(&input_o);
|
|
@@ -271,7 +348,7 @@
|
|
njobs = 0;
|
|
while (j != NULL)
|
|
{
|
|
- if (j->arg_num != -1 && (update_only || consider_job(j)))
|
|
+ if (j->arg_num != -1 && (update_only || testing_only || consider_job(j)))
|
|
{
|
|
njobs++;
|
|
obstack_grow(&tab_o, &j, sizeof(j));
|
|
--- anacron-2.3.orig/runjob.c
|
|
+++ anacron-2.3/runjob.c
|
|
@@ -109,7 +109,6 @@
|
|
run_job(const job_rec *jr)
|
|
/* This is called to start the job, after the fork */
|
|
{
|
|
- setup_env(jr);
|
|
/* setup stdout and stderr */
|
|
xclose(1);
|
|
xclose(2);
|
|
@@ -153,6 +152,15 @@
|
|
launch_mailer(job_rec *jr)
|
|
{
|
|
pid_t pid;
|
|
+ struct stat buf;
|
|
+ int r;
|
|
+
|
|
+ /* Check that we have a way of sending mail. */
|
|
+ if(stat(SENDMAIL, &buf))
|
|
+ {
|
|
+ complain("Can't find sendmail at %s, not mailing output", SENDMAIL);
|
|
+ return;
|
|
+ }
|
|
|
|
pid = xfork();
|
|
if (pid == 0)
|
|
@@ -173,7 +181,7 @@
|
|
* options, which don't seem to be appropriate here.
|
|
* Hopefully, this will keep all the MTAs happy. */
|
|
execl(SENDMAIL, SENDMAIL, "-FAnacron", "-odi",
|
|
- username(), (char *)NULL);
|
|
+ jr->mailto, (char *)NULL);
|
|
die_e("Can't exec " SENDMAIL);
|
|
}
|
|
/* parent */
|
|
@@ -207,19 +215,44 @@
|
|
{
|
|
pid_t pid;
|
|
int fd;
|
|
+ char hostname[512];
|
|
+ char *mailto;
|
|
+
|
|
+ /* get hostname */
|
|
+ if (gethostname(hostname, 512)) {
|
|
+ strcpy (hostname,"unknown machine");
|
|
+ }
|
|
+
|
|
+ setup_env(jr);
|
|
+
|
|
+ /* Get the destination email address if set, or current user otherwise */
|
|
+ mailto = getenv("MAILTO");
|
|
+
|
|
+ if (mailto)
|
|
+ jr->mailto = mailto;
|
|
+ else
|
|
+ jr->mailto = username ();
|
|
|
|
/* create temporary file for stdout and stderr of the job */
|
|
fd = jr->output_fd = temp_file();
|
|
/* write mail header */
|
|
xwrite(fd, "From: ");
|
|
+ xwrite(fd, "Anacron <");
|
|
xwrite(fd, username());
|
|
- xwrite(fd, " (Anacron)\n");
|
|
+ xwrite(fd, ">\n");
|
|
xwrite(fd, "To: ");
|
|
- xwrite(fd, username());
|
|
+ if (mailto) {
|
|
+ xwrite(fd, mailto);
|
|
+ } else {
|
|
+ xwrite(fd, username());
|
|
+ }
|
|
xwrite(fd, "\n");
|
|
xwrite(fd, "Subject: Anacron job '");
|
|
xwrite(fd, jr->ident);
|
|
- xwrite(fd, "'\n\n");
|
|
+ xwrite(fd, "' on ");
|
|
+ xwrite(fd, hostname);
|
|
+ xwrite(fd, "\n\n");
|
|
+
|
|
jr->mail_header_size = file_size(fd);
|
|
|
|
pid = xfork();
|