diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 4fa487b..0000000 --- a/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -anacron_2.3.orig.tar.gz -anacron.init diff --git a/Makefile b/Makefile deleted file mode 100644 index 9fd3e6e..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: anacron -# $Id: Makefile,v 1.1 2004/09/09 02:58:39 cvsdist Exp $ -NAME := anacron -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attempt a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/anacron-2.3-fdclose.patch b/anacron-2.3-fdclose.patch deleted file mode 100644 index 96e20d4..0000000 --- a/anacron-2.3-fdclose.patch +++ /dev/null @@ -1,107 +0,0 @@ -diff -uNr anacron-2.3-orig/global.h anacron-2.3/global.h ---- anacron-2.3-orig/global.h 2000-06-23 01:00:14.000000000 +0100 -+++ anacron-2.3/global.h 2006-03-20 15:31:28.000000000 +0000 -@@ -60,6 +60,7 @@ - int tab_line; - int arg_num; - int timestamp_fd; -+ int input_fd; - int output_fd; - int mail_header_size; - pid_t job_pid; -diff -uNr anacron-2.3-orig/runjob.c anacron-2.3/runjob.c ---- anacron-2.3-orig/runjob.c 2006-02-21 14:05:08.000000000 +0000 -+++ anacron-2.3/runjob.c 2006-03-20 15:32:32.000000000 +0000 -@@ -38,12 +38,12 @@ - #include - - static int --temp_file() -+temp_file(job_rec *jr) - /* Open a temporary file and return its file descriptor */ - { - const int max_retries = 50; - char *name; -- int fd, i; -+ int fdin, fdout, i; - - i = 0; - name = NULL; -@@ -53,16 +53,24 @@ - free(name); - name = tempnam(NULL, NULL); - if (name == NULL) die("Can't find a unique temporary filename"); -- fd = open(name, O_RDWR | O_CREAT | O_EXCL | O_APPEND, -- S_IRUSR | S_IWUSR); -+ fdout = open(name, O_WRONLY | O_CREAT | O_EXCL | O_APPEND, -+ S_IRUSR | S_IWUSR); -+ if ( fdout != -1 ) -+ fdin = open(name, O_RDONLY, S_IRUSR | S_IWUSR); - /* I'm not sure we actually need to be so persistent here */ -- } while (fd == -1 && errno == EEXIST && i < max_retries); -+ } while (fdout == -1 && errno == EEXIST && i < max_retries); - -- if (fd == -1) die_e("Can't open temporary file"); -+ if (fdout == -1) die_e("Can't open temporary file for writing"); -+ if (fdin == -1) die_e("Can't open temporary file for reading"); - if (unlink(name)) die_e("Can't unlink temporary file"); - free(name); -- fcntl(fd, F_SETFD, 1); /* set close-on-exec flag */ -- return fd; -+ fcntl(fdout, F_SETFD, 1); /* set close-on-exec flag */ -+ fcntl(fdin, F_SETFD, 1); /* set close-on-exec flag */ -+ -+ jr->input_fd = fdin; -+ jr->output_fd = fdout; -+ -+ return fdout; - } - - static off_t -@@ -170,17 +178,28 @@ - pid = xfork(); - if (pid == 0) - { -+ long fdflags; -+ - /* child */ - in_background = 1; - /* set stdin to the job's output */ - xclose(0); -- if (dup2(jr->output_fd, 0) != 0) die_e("Can't dup2()"); -+ if (dup2(jr->input_fd, 0) != 0) die_e("Can't dup2()"); - if (lseek(0, 0, SEEK_SET) != 0) die_e("Can't lseek()"); - umask(old_umask); - if (sigprocmask(SIG_SETMASK, &old_sigmask, NULL)) - die_e("sigprocmask error"); - xcloselog(); - -+ /* Ensure stdout/stderr are sane before exec-ing sendmail */ -+ xclose(1); xopen(1, "/dev/null", O_WRONLY); -+ xclose(2); xopen(2, "/dev/null", O_WRONLY); -+ xclose(jr->output_fd); -+ -+ /* Ensure stdin is not appendable ... ? */ -+ /* fdflags = fcntl(0, F_GETFL); fdflags &= ~O_APPEND; */ -+ /* fcntl(0, F_SETFL, fdflags ); */ -+ - /* Here, I basically mirrored the way /usr/sbin/sendmail is called - * by cron on a Debian system, except for the "-oem" and "-or0s" - * options, which don't seem to be appropriate here. -@@ -225,7 +244,7 @@ - setup_env(jr); - - /* create temporary file for stdout and stderr of the job */ -- fd = jr->output_fd = temp_file(); -+ temp_file(jr); fd = jr->output_fd; - /* write mail header */ - xwrite(fd, "From: "); - xwrite(fd, username()); -@@ -283,6 +302,7 @@ - running_jobs--; - if (mail_output) launch_mailer(jr); - xclose(jr->output_fd); -+ xclose(jr->input_fd); - } - - void diff --git a/anacron-2.3-mail-content-type-77108.patch b/anacron-2.3-mail-content-type-77108.patch deleted file mode 100644 index 4481603..0000000 --- a/anacron-2.3-mail-content-type-77108.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -u anacron-2.3/runjob.c~ anacron-2.3/runjob.c ---- anacron-2.3/runjob.c~ 2003-07-10 15:25:44.000000000 +0900 -+++ anacron-2.3/runjob.c 2003-07-10 15:25:44.000000000 +0900 -@@ -35,6 +35,8 @@ - #include - #include "global.h" - -+#include -+ - static int - temp_file() - /* Open a temporary file and return its file descriptor */ -@@ -217,6 +219,9 @@ - xwrite(fd, "To: "); - xwrite(fd, username()); - xwrite(fd, "\n"); -+ xwrite(fd, "Content-Type: text/plain; charset=\""); -+ xwrite(fd, nl_langinfo(CODESET)); -+ xwrite(fd, "\"\n"); - xwrite(fd, "Subject: Anacron job '"); - xwrite(fd, jr->ident); - xwrite(fd, "'\n\n"); diff --git a/anacron-2.3-memleaking.patch b/anacron-2.3-memleaking.patch deleted file mode 100644 index a4d3b9a..0000000 --- a/anacron-2.3-memleaking.patch +++ /dev/null @@ -1,182 +0,0 @@ ---- anacron-2.3/gregor.c.mem 2007-08-08 10:02:58.000000000 +0200 -+++ anacron-2.3/gregor.c 2007-08-08 10:10:55.000000000 +0200 -@@ -27,7 +27,7 @@ - #include - #include "gregor.h" - --const static int -+static const int - days_in_month[] = { - 31, /* Jan */ - 28, /* Feb (non-leap) */ ---- anacron-2.3/log.c.mem 2007-08-08 10:02:58.000000000 +0200 -+++ anacron-2.3/log.c 2007-08-08 10:13:03.000000000 +0200 -@@ -83,7 +83,7 @@ - } - - static void --log(int priority, const char *fmt, va_list args) -+slog(int priority, const char *fmt, va_list args) - /* Log a message, described by "fmt" and "args", with the specified - * "priority". */ - { -@@ -101,7 +101,7 @@ - - static void - log_e(int priority, const char *fmt, va_list args) --/* Same as log(), but also appends an error description corresponding -+/* Same as slog(), but also appends an error description corresponding - * to "errno". */ - { - int saved_errno; -@@ -127,7 +127,7 @@ - va_list args; - - va_start(args, fmt); -- log(EXPLAIN_LEVEL, fmt, args); -+ slog(EXPLAIN_LEVEL, fmt, args); - va_end(args); - } - -@@ -149,7 +149,7 @@ - va_list args; - - va_start(args, fmt); -- log(COMPLAIN_LEVEL, fmt, args); -+ slog(COMPLAIN_LEVEL, fmt, args); - va_end(args); - - complaints += 1; -@@ -175,7 +175,7 @@ - va_list args; - - va_start(args, fmt); -- log(COMPLAIN_LEVEL, fmt, args); -+ slog(COMPLAIN_LEVEL, fmt, args); - va_end(args); - if (getpid() == primary_pid) complain("Aborted"); - -@@ -207,7 +207,7 @@ - va_list args; - - va_start(args, fmt); -- log(DEBUG_LEVEL, fmt, args); -+ slog(DEBUG_LEVEL, fmt, args); - va_end(args); - } - ---- anacron-2.3/global.h.mem 2007-08-08 10:02:58.000000000 +0200 -+++ anacron-2.3/global.h 2007-08-08 10:10:21.000000000 +0200 -@@ -105,18 +105,25 @@ - /* main.c */ - int xopen(int fd, const char *file_name, int flags); - void xclose(int fd); --pid_t xfork(); -+pid_t xfork(void); -+ -+#ifdef __GNUC__ -+#define PRINTF_FORMAT(n, m) \ -+ __attribute__ ((format (printf, n, m))) -+#else -+#define PRINTF_FORMAT(n, m) -+#endif - - /* log.c */ --void explain(const char *fmt, ...); --void explain_e(const char *fmt, ...); --void complain(const char *fmt, ...); --void complain_e(const char *fmt, ...); --void die(const char *fmt, ...); --void die_e(const char *fmt, ...); --void xdebug(const char *fmt, ...); --void xdebug_e(const char *fmt, ...); --void xcloselog(); -+void explain(const char *fmt, ...)PRINTF_FORMAT(1,2); -+void explain_e(const char *fmt, ...)PRINTF_FORMAT(1,2); -+void complain(const char *fmt, ...)PRINTF_FORMAT(1,2); -+void complain_e(const char *fmt, ...)PRINTF_FORMAT(1,2); -+void die(const char *fmt, ...)PRINTF_FORMAT(1,2); -+void die_e(const char *fmt, ...)PRINTF_FORMAT(1,2); -+void xdebug(const char *fmt, ...)PRINTF_FORMAT(1,2); -+void xdebug_e(const char *fmt, ...)PRINTF_FORMAT(1,2); -+void xcloselog(void); - - #ifdef DEBUG - #define Debug(args) xdebug args -@@ -128,7 +135,7 @@ - - /* readtab.c */ - void read_tab(int cwd); --void arrange_jobs(); -+void arrange_jobs(void); - - /* lock.c */ - int consider_job(job_rec *jr); ---- anacron-2.3/runjob.c.mem 2007-08-08 10:02:58.000000000 +0200 -+++ anacron-2.3/runjob.c 2007-08-08 10:17:44.000000000 +0200 -@@ -64,8 +64,8 @@ - if (fdin == -1) die_e("Can't open temporary file for reading"); - if (unlink(name)) die_e("Can't unlink temporary file"); - free(name); -- fcntl(fdout, F_SETFD, 1); /* set close-on-exec flag */ -- fcntl(fdin, F_SETFD, 1); /* set close-on-exec flag */ -+ fcntl(fdout, F_SETFD, FD_CLOEXEC); /* set close-on-exec flag */ -+ fcntl(fdin, F_SETFD, FD_CLOEXEC); /* set close-on-exec flag */ - - jr->input_fd = fdin; - jr->output_fd = fdout; -@@ -175,8 +175,6 @@ - pid = xfork(); - if (pid == 0) - { -- long fdflags; -- - /* child */ - in_background = 1; - /* set stdin to the job's output */ ---- anacron-2.3/matchrx.c.mem 2000-06-21 01:12:18.000000000 +0200 -+++ anacron-2.3/matchrx.c 2007-08-08 10:16:54.000000000 +0200 -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include "matchrx.h" - - int -@@ -49,11 +50,20 @@ - sub_offsets = malloc(sizeof(regmatch_t) * (n_sub + 1)); - memset(sub_offsets, 0, sizeof(regmatch_t) * (n_sub + 1)); - -- if (regcomp(&crx, rx, REG_EXTENDED)) return - 1; -+ if (regcomp(&crx, rx, REG_EXTENDED)) { -+ free(sub_offsets); -+ return - 1; -+ } - r = regexec(&crx, string, n_sub + 1, sub_offsets, 0); -- if (r != 0 && r != REG_NOMATCH) return - 1; -+ if (r != 0 && r != REG_NOMATCH) { -+ free(sub_offsets); -+ return - 1; -+ } - regfree(&crx); -- if (r == REG_NOMATCH) return 0; -+ if (r == REG_NOMATCH) { -+ free(sub_offsets); -+ return 0; -+ } - - va_start(va, n_sub); - n = 1; -@@ -62,7 +72,10 @@ - substring = va_arg(va, char**); - if (substring != NULL) - { -- if (sub_offsets[n].rm_so == -1) return - 1; -+ if (sub_offsets[n].rm_so == -1) { -+ free(sub_offsets); -+ return - 1; -+ } - *substring = string + sub_offsets[n].rm_so; - *(string + sub_offsets[n].rm_eo) = 0; - } diff --git a/anacron-2.3-pic.patch b/anacron-2.3-pic.patch deleted file mode 100644 index 5cb26d7..0000000 --- a/anacron-2.3-pic.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- anacron-2.3/Makefile.piee 2006-10-17 12:39:39.000000000 +0200 -+++ anacron-2.3/Makefile 2006-10-17 12:39:39.000000000 +0200 -@@ -22,7 +22,8 @@ - PREFIX = - BINDIR = $(PREFIX)/usr/sbin - MANDIR = $(PREFIX)/usr/man --CFLAGS = -Wall -pedantic -O2 -+LDFLAGS = -fpie -Wl,-z,relro -+CFLAGS = -Wall -pedantic -W -Wundef -fpie - #CFLAGS = -Wall -O2 -g -DDEBUG - - # If you change these, please update the man-pages too diff --git a/anacron-script.patch b/anacron-script.patch deleted file mode 100644 index 69f78c2..0000000 --- a/anacron-script.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- anacron-2.3/debian/0anacron.daily.script 2007-08-15 09:21:14.000000000 +0200 -+++ anacron-2.3/debian/0anacron.daily 2007-08-15 09:30:15.000000000 +0200 -@@ -9,4 +9,8 @@ - # _before_ all other scripts. - - test -x /usr/sbin/anacron || exit 0 --anacron -u cron.daily -+AUX1=`cat /var/spool/anacron/cron.daily` -+AUX2=`date +%Y%m%d` -+if [ "$AUX1" != $AUX2 ]; then -+ anacron -u cron.daily -+fi diff --git a/anacron.init b/anacron.init deleted file mode 100755 index b943c59..0000000 --- a/anacron.init +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/sh -# Startup script for anacron -# -# chkconfig: 2345 99 05 -# description: Run cron jobs that were left out due to downtime -# pidfile: /var/run/anacron.pid -# -# Source function library. -. /etc/rc.d/init.d/functions - -[ -f /usr/sbin/anacron ] || exit 0 - -prog="anacron" -PIDFILE=/var/spool/anacron/cron.daily -LOCKFILE=/var/lock/subsys/$prog -# -# NOTE: anacron exits after it has determined it has no more work to do. -# Hence, its initscript cannot do normal lock file management. -# The anacron binary now creates its own timestamps in files -# /var/spool/anacron/cron.{daily,monthly,weekly} -# and /var/lock/subsys lock files. -# - -start() { - echo -n $"Starting $prog: " -# on_ac_power doesn't exist, on_ac_power returns 0 (ac power being used) - if test -x /usr/bin/on_ac_power - then - /usr/bin/on_ac_power > /dev/null - if test $? -eq 1 - then - echo "deferred while on battery power." - RETVAL=0 - exit 0 - fi - fi - daemon +19 anacron -s - RETVAL=$? - if [ $RETVAL -ne 0 ]; then - failure; - fi; - echo -} - -stop() { - echo -n $"Stopping $prog: " - if [ -f $PIDFILE ]; then - killproc anacron - RETVAL=$? - if [ $RETVAL -ne 0 ]; then - failure; - fi; - else - failure; - fi - echo -} - -case "$1" in - start) - start - ;; - - stop) - stop - ;; - - status) - ## hard to say - anacron is up only when cron wake him - status $prog - RETVAL=$? - ;; - - restart) - stop - start - ;; - - condrestart) - if [ -f /var/lock/subsys/anacron ]; then - stop - sleep 2 - start - fi - ;; - - *) - echo $"Usage: $0 {start|stop|restart|condrestart|status}" - RETVAL=3 - -esac - -exit $RETVAL diff --git a/anacron.spec b/anacron.spec deleted file mode 100644 index 2995cf1..0000000 --- a/anacron.spec +++ /dev/null @@ -1,346 +0,0 @@ -Summary: A cron-like program that can run jobs lost during downtime -Name: anacron -Version: 2.3 -Release: 56%{?dist} -License: GPLv2+ -Group: System Environment/Base -URL: http://packages.debian.org/stable/source/anacron -Source: http://ftp.debian.org/debian/pool/main/a/anacron/%{name}_%{version}.orig.tar.gz -Source1: anacrontab -Source2: anacron.init -Patch0: anacron_2.3-13.patch -Patch1: anacron-2.3-mail-content-type-77108.patch -Patch2: anacron-2.3-fdclose.patch -Patch3: anacron-2.3-pic.patch -Patch4: anacron-2.3-memleaking.patch - -Requires: crontabs -Requires: initscripts -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/chkconfig -Requires(postun): /sbin/service -Requires(preun): /sbin/service -BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot - -%description -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 Red -Hat Linux (or Fedora) 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 Red Hat Linux (or Fedora) packages are executed each day. - -%prep -%setup -q -%patch0 -p1 -b .try -%patch1 -p1 -b .charset -%patch2 -p1 -b .fdclose -%patch3 -p1 -b .pic -%patch4 -p1 -b .memleaking - -%build -make CFLAGS="$RPM_OPT_FLAGS" %{?_smp_mflags} - -%install -rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT/{etc/,usr/sbin/,%{_mandir}/man5,%{_mandir}/man8/} -mkdir -p $RPM_BUILD_ROOT/var/spool/anacron/ - -# -cp anacron $RPM_BUILD_ROOT/usr/sbin -cp anacron.8 $RPM_BUILD_ROOT/%{_mandir}/man8/ -cp anacrontab.5 $RPM_BUILD_ROOT/%{_mandir}/man5/ -cp %SOURCE1 $RPM_BUILD_ROOT/etc - -for i in cron.daily cron.weekly cron.monthly;do -mkdir -p $RPM_BUILD_ROOT/etc/$i/ -done - -cp debian/0anacron.daily $RPM_BUILD_ROOT/etc/cron.daily/0anacron -cp debian/0anacron.monthly $RPM_BUILD_ROOT/etc/cron.monthly/0anacron -cp debian/0anacron.weekly $RPM_BUILD_ROOT/etc/cron.weekly/0anacron - -mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d/ -install -c -m755 %SOURCE2 $RPM_BUILD_ROOT/etc/rc.d/init.d/anacron - -%clean -rm -rf $RPM_BUILD_ROOT - -%post -/sbin/chkconfig --add anacron -if [ "$1" -ge 1 ]; then - /sbin/chkconfig --level 2345 anacron resetpriorities -fi - -%preun -if [ "$1" = "0" ]; then - service anacron stop >/dev/null 2>&1 ||: - /sbin/chkconfig --del anacron -fi - -%postun -if [ "$1" -ge "1" ]; then - service anacron condrestart >/dev/null 2>&1 ||: -fi - -%files -%defattr(-,root,root,0755) -%doc COPYING README -%config(noreplace) /etc/anacrontab -%dir /var/spool/anacron/ -%dir /etc/rc.d/init.d/* -/%{_mandir}/man5/* -/%{_mandir}/man8/* -/usr/sbin/anacron -%attr(755,root,root) %dir /etc/cron.daily/0anacron -%attr(755,root,root) %dir /etc/cron.monthly/0anacron -%attr(755,root,root) %dir /etc/cron.weekly/0anacron - -%changelog -* Tue Sep 25 2007 Marcela Maslanova 2.3-56 -- cron.{hourly,daily} work correct -> remove checking whether - cron.daily has been run -- persist: run pc between midnight and 4:02 -> cron.daily run twice. -- rhbz#296741 - -* Fri Aug 31 2007 Marcela Maslanova 2.3-55 -- change chkconfig --add, because it wasn't running after - fresh install #267801 - -* Thu Aug 30 2007 Marcela Maslanova 2.3-54 -- change chkconfig levels in post part - -* Wed Aug 17 2007 Marcela Maslanova 2.3-53 -- rebuild with changed post - starting value must be removed -- Resolves: 252166, 252255, 252254 - -* Tue Aug 14 2007 Marcela Maslanova 2.3-51 -- rebuild with correct init script - -* Mon Aug 13 2007 Marcela Maslanova 2.3-50 -- rewrite typo in init script -- Resolves: rhbz#251757 - -* Wed Aug 08 2007 Marcela Maslanova 2.3-49 -- adopt some patches from upstream for better locking -- add own changes, which resolve problem with two or more run of - cron.daily per day. -- Resolves: #157448 - -* Wed Jul 11 2007 Marcela Maslanova 2.3-48 -- changes in init script (not build) - -* Tue Feb 6 2007 Marcela Maslanova 2.3-47 -- thanks for review from Jef Spaleta -- rhbz#225247, rhbz#211309 - -* Mon Dec 04 2006 Marcela Maslanova 2.3-45 -- rebuilt with pie insted pic - -* Tue Oct 10 2006 Marcela Maslanova 2.3-44 -- fix memory leaking (both #210020) -- PIE(PIC) executable - -* Tue Oct 2 2006 Marcela Maslanova 2.3-42 -- hostname added to mail (#208914) - -* Fri Sep 29 2006 Marcela Maslanova 2.3-41 -- change spec file - patch from Orion Poplawski (#191410) - -* Mon Sep 11 2006 Dan Walsh 2.3-40 -- Grab the fdclose patch from FC4 -- fix bug 185973: allow use of sendmail under selinux-policy-strict: - apply patch contributed by Ted Rule - -* Wed Aug 30 2006 Jitka Kudrnacova - 2.3-39 -- modified PATH in /etc/anacrontab file to make the same as in /etc/crontab (#61891) - -* Wed Jul 12 2006 Jesse Keating - 2.3-38.FC6.1 -- rebuild - -* Thu Apr 13 2006 Jason Vas Dias - 2.3-38.1 -- fix bug 188403: anacron SysVinit locking: - Since anacron just exits when it has no more work to do, the - initscript cannot do normal /var/lock/subsys/anacron lock file - creation, else messages such as 'anacron dead but subsys locked' - will appear when changing init levels. - - Now, the anacron process itself creates its own - /var/lock/subsys/anacron SysVinit lock file and - /var/run/anacron.pid pid file to co-operate more - gracefully with the initscript system. - -* Fri Feb 10 2006 Jesse Keating - 2.3-36.1 -- bump again for double-long bug on ppc(64) - -* Tue Feb 07 2006 Jason Vas Dias - 2.3-36 -- rebuild for new gcc, glibc, glibc-kernheaders - -* Wed Jan 11 2006 Peter Jones 2.3-35 -- Fix initscript so changing runlevel shuts it down correctly - -* Fri Dec 09 2005 Jesse Keating -- rebuilt - -* Wed Mar 16 2005 Jason Vas Dias 2.3-34 -- Rebuild with gcc4 in FC4. - -* Mon Feb 21 2005 Jason Vas Dias 2.3-33 -- Rebuild for FC4 . - -* Tue Sep 28 2004 Rik van Riel 2.3-32 -- add MAILTO option, like vixie cron has (bz#127924) - -* Fri Jul 2 2004 Elliot Lee -- rebuilt -- Add noconst patch to fix invalid C - -* Fri Feb 13 2004 Elliot Lee -- rebuilt - -* Thu Jul 10 2003 Jens Petersen - 2.3-29 -- don't require vixie-cron (#21176) [reported by Gerald Teschl] -- in init script don't remove /var/lock/subsys/anacron when stopping (#58462) -- exit init script with actual exit status (#44600) [reported by Enrico Scholz] - -* Thu Jul 10 2003 Jens Petersen - 2.3-28 -- add a Content-Type header to mails giving the charset encoding (#77108) - -* Thu Jul 10 2003 Jens Petersen - 2.3-27 -- in init script do not touch /var/lock/subsys/anacron when starting (#58462) -- require crontabs (#21176) -- update source url - -* Wed Jun 04 2003 Elliot Lee -- rebuilt - -* Wed Jan 22 2003 Tim Powers -- rebuilt - -* Wed Dec 11 2002 Tim Powers 2.3-24 -- rebuild on all arches - -* Fri Aug 23 2002 Jens Petersen 2.3-23 -- delay the start of anacron by 60min to make startup more pleasant (#68304) -- at startup run jobs serially and nice 19 to reduce load (#65870, #68304) -- spec file now in utf-8 -- dont install non-existant NEWS file -- silence make include warnings - -* Fri Jul 19 2002 Akira TAGOH 2.3-22 -- fix the stripped binary issue. - -* Mon Jul 08 2002 Bill Huang -- Update "Copyright" to "License" in spec file - -* Fri Jun 21 2002 Tim Powers -- automated rebuild - -* Thu May 23 2002 Tim Powers -- automated rebuild - -* Wed Jan 09 2002 Tim Powers -- automated rebuild - -* Sun Jun 24 2001 Elliot Lee -- Bump release + rebuild. - -* Tue Apr 3 2001 Crutcher Dunnavant -- add dependancy to vixie-cron (for /usr/bin/run-parts) - -* Tue Feb 13 2001 Tim Waugh -- killproc is a shell function and can't be passed as a parameter - (bug #27150). - -* Mon Feb 5 2001 Bernhard Rosenkraenzer -- Fix i18n in initscript ("Stopping anacron" wasn't translated) - (#26076) - -* Fri Feb 2 2001 Trond Eivind Glomsrød -- i18nize initscript - -* Thu Dec 7 2000 Crutcher Dunnavant -- rebuild in rebuild cycle. - -* Mon Oct 30 2000 Matt Wilson -- touch /var/lock/subsys/anacron to prevent excess startage during - init level change - -* Wed Aug 30 2000 Bernhard Rosenkraenzer -- Shut down earlier to prevent NFS mounted /usr filesystems from causing - problems (Bug #16257) - -* Fri Aug 4 2000 Bernhard Rosenkraenzer -- Start it later so services some cron scripts may depend on are running - (Bug #15335) - -* Thu Aug 3 2000 Bernhard Rosenkraenzer -- Fix up initscript (Bug #15123 and an unreported bug) - -* Sat Jul 15 2000 Bill Nottingham -- move initscript back - -* Wed Jul 12 2000 Prospector -- automatic rebuild - -* Mon Jul 10 2000 Bernhard Rosenkraenzer -- Fix up initscripts (Bug #13625) - -* Tue Jul 4 2000 Matt Wilson -- Prereq: /sbin/chkconfig - -* Mon Jun 26 2000 Preston Brown -- move initscript to /etc/init.d, fix up post/preun/postun scripts. - -* Sun Jun 26 2000 Bernhard Rosenkraenzer -- 2.3 - -* Sun Jun 18 2000 Matt Wilson -- use %%{_mandir} - -* Fri Mar 03 2000 Tim Powers -- fixed startup script so that it doesn't put stuff in /var/lock/subsys. - Complains since anacronda turns itself off when it is run, and the file in - /var/lock/subsys isn't removed. - -* Mon Feb 28 2000 Tim Powers -- fixed startup script, now it actually stops, gives status and restarts. - Fixes bug #9835 - -* Mon Feb 7 2000 Bill Nottingham -- handle compressed manpages - -* Fri Feb 4 2000 Bernhard Rosenkraenzer -- rebuild to get compressed man pages -- mark /etc/cron.daily/... as config files - -* Wed Feb 02 2000 Cristian Gafton -- fix annoying defines -- rebuild to update description and group - -* Thu Jan 6 2000 Bernhard Rosenkränzer -- initial Red Hat package - -* Wed Dec 29 1999 Chmouel Boudjnah -- Remove cron.hourly check (unusefull). - -* Wed Nov 10 1999 Chmouel Boudjnah -- 2.1 from debian. -- Fix typo in initscripts. - -* Thu Jul 22 1999 Chmouel Boudjnah -- Fix wrong entries in anacrontab. -- Add a /etc/rc.sysinit/ script - -* Tue Apr 27 1999 Chmouel Boudjnah -- Fix bug with /var/spool/anacron/ - -* Sat Apr 10 1999 Chmouel Boudjnah -- First version mainly inspired from the Debian package. diff --git a/anacron_2.3-13.patch b/anacron_2.3-13.patch deleted file mode 100644 index 0a36015..0000000 --- a/anacron_2.3-13.patch +++ /dev/null @@ -1,1630 +0,0 @@ ---- 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 - . - .PP --The code base is currently maintained by Sean 'Shaleh' Perry . -+The code base was maintained by Sean 'Shaleh' Perry . -+.PP -+Since 2004, it is maintained by Pascal Hakim . -+ ---- 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 -+.PP -+Currently maintained by Pascal Hakim . ---- 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 -+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 -+ Copyright (C) 1999 Sean 'Shaleh' Perry -+ -+ 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 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 ) -+ (Closes: #320761) -+ - Danish (Claus Hindsgaul ) -+ - Dutch (Frans Pop ) -+ (Closes: #374267) -+ - German (Erik Schanze ) -+ - Italian (Luca Monducci ) -+ (Closes: #375411) -+ - Portuguese (Miguel Figueiredo ) -+ (Closes: #336839) -+ - Russian (Yuriy Talakan ) -+ (Closes: #310069) -+ - Spanish (Lucas Wall ) -+ (Closes: #374312) -+ - Swedish (Daniel Nylander ) -+ (Closes: #331300) -+ - Vietnamese (Clytie Siddall ) -+ (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 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 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 ) -+ (Closes: #257669) -+ * Added two variables to change the ability to change the -+ destination and source emails for anacron emails -+ (Thanks to Martin Quinson ) -+ (Closes: #223337) -+ * Translations: -+ + Updated German (Erik Schanze ) -+ (Closes: #250293) -+ + Added Brazilian Portuguese (Andre Luis Lopes ) -+ (Closes: #254107) -+ + Added Spanish (Lucas Wall ) -+ (Closes: #254559) -+ + Addedd Czech (Jan Outrata ) -+ -+ -- Pascal Hakim Sun, 11 Jul 2004 04:52:00 +1000 -+ -+anacron (2.3-9) unstable; urgency=low -+ -+ * Fixed priority -+ * Added translations -+ + Danish from Claus Hindsgaul -+ (Closes: #242814) -+ + Japanese from Hideki Yamane -+ (Closes: #243268) -+ + Italian from Luca Monducci -+ (Closes: #249072) -+ + German from Erik Schanze -+ (Closes: #250293) -+ + Dutch from Luk Claes -+ (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 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 ) -+ (closes: #134017) -+ * Fixed grammar mistake. -+ (Patch from Julian Gilbey ) -+ (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 ) -+ (Closes: #63543, #45149) -+ * Make the From field in mails RFC2822-compliant -+ (Patch from Santiago Villa ) -+ (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 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 Tue, 11 Jun 2002 08:20:46 -0700 -+ -+anacron (2.3-6) unstable; urgency=low -+ -+ * update Standards version -+ -+ -- Sean 'Shaleh' Perry 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 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 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 Wed, 18 Oct 2000 07:41:27 -0700 -+ -+anacron (2.3-2) unstable; urgency=low -+ -+ * Oops, forgot a '.' -+ * Closes: #66161 -+ -+ -- Sean 'Shaleh' Perry Sat, 24 Jun 2000 11:45:15 -0700 -+ -+anacron (2.3-1) unstable; urgency=low -+ -+ * New release -+ -+ -- Sean 'Shaleh' Perry 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 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 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 Thu, 25 May 2000 20:08:37 +0200 -+ -+anacron (2.1-5) unstable; urgency=low -+ -+ * updates for recent policy -+ * Closes: #50255 -+ -+ -- Sean E. Perry Thu, 21 Nov 1999 22:17:33 -0800 -+ -+anacron (2.1-4) unstable; urgency=low -+ -+ * Closes: #45954 -+ -+ -- Sean E. Perry 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 Mon, 20 Sep 1999 15:28:37 -0700 -+ -+anacron (2.1-2) unstable; urgency=low -+ -+ * Upload for fhs compliance -+ -+ -- Sean E. Perry Tue, 7 Sep 1999 14:26:00 -0700 -+ -+anacron (2.1-1) unstable; urgency=low -+ -+ * New release -+ -+ -- Sean E. Perry 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 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 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 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 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 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 Sat, 21 Mar 1998 11:03:33 +0100 -+ -+anacron (2.0-3) unstable; urgency=low -+ -+ * Fixed typo in Description (fixes:bug#18875) -+ -+ -- Christian Schwarz 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 Tue, 17 Feb 1998 22:49:35 +0100 -+ -+anacron (2.0-1) unstable; urgency=low -+ -+ * New upstream maintainer -+ (Thanks to Itai Tzur 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 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 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 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 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 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 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 Thu, 9 Jan 1997 17:16:36 +0100 -+ -+anacron (1.0.1-3) unstable; urgency=low -+ -+ * Changed priority from standard to extra. -+ -+ -- Christian Schwarz 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 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 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 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 , 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 - Copyright (C) 1999 Sean 'Shaleh' Perry -+ Copyright (C) 2004 Pascal Hakim - - 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 - Copyright (C) 1999 Sean 'Shaleh' Perry -+ Copyright (C) 2004 Pascal Hakim - - 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 -+#include - #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 - Copyright (C) 1999 Sean 'Shaleh' Perry -+ Copyright (C) 2004 Pascal Hakim - - 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 - Copyright (C) 1999 Sean 'Shaleh' Perry -+ Copyirght (C) 2004 Pascal Hakim - - 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 - Copyright (C) 1999 Sean 'Shaleh' Perry -+ Copyright (C) 2004 Pascal Hakim - - 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 - Copyright (C) 1999 Sean 'Shaleh' Perry -+ Copyright (C) 2004 Pascal Hakim - - 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 \n" - "Copyright (C) 1999 Sean 'Shaleh' Perry \n" -+ "Copyright (C) 2004 Pascal Hakim \n" - "\n" -- "Mail comments, suggestions and bug reports to ." -+ "Mail comments, suggestions and bug reports to ." - "\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 - Copyright (C) 1999 Sean 'Shaleh' Perry -+ Copyright (C) 2004 Pascal Hakim - - 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(); diff --git a/anacrontab b/anacrontab deleted file mode 100644 index 8108dbc..0000000 --- a/anacrontab +++ /dev/null @@ -1,11 +0,0 @@ -# /etc/anacrontab: configuration file for anacron - -# See anacron(8) and anacrontab(5) for details. - -SHELL=/bin/sh -PATH=/sbin:/bin:/usr/sbin:/usr/bin -MAILTO=root - -1 65 cron.daily nice run-parts /etc/cron.daily -7 70 cron.weekly nice run-parts /etc/cron.weekly -@monthly 75 cron.monthly nice run-parts /etc/cron.monthly diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..983275a --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Obsoleted by cronie-anacron as of F-12. diff --git a/sources b/sources deleted file mode 100644 index f016dad..0000000 --- a/sources +++ /dev/null @@ -1,2 +0,0 @@ -9fdfc50f5741643332722a9145146278 anacron_2.3.orig.tar.gz -094af5e05723d2c4924d60f73d738509 anacron.init