--- 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/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/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.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/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/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(); --- 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/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/changelog +++ anacron-2.3/debian/changelog @@ -0,0 +1,527 @@ +anacron (2.3-13ubuntu2.1) hardy-proposed; urgency=low + + * debian/pm-utils.{power,sleep}.d: + - install pm-utils hook that starts/stops anacron on + suspend/resume and on power-cycle (LP: #249220) + + -- Michael Vogt Mon, 28 Jul 2008 13:44:52 +0200 + +anacron (2.3-13ubuntu2) feisty; urgency=low + + * Rebuild for changes in the amd64 toolchain. + * Set Ubuntu maintainer address. + + -- Matthias Klose Mon, 5 Mar 2007 01:13:03 +0000 + +anacron (2.3-13ubuntu1) feisty; urgency=low + + * Merge from debian unstable. + + -- Michael Vogt Tue, 21 Nov 2006 20:21:04 +0100 + +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-11ubuntu4) edgy; urgency=low + + * debian/acpi.d.resume, debian/acpi.d.suspend: + - make anacron work with acpi suspend/resume (lp: 36816) + + -- Michael Vogt Wed, 20 Sep 2006 13:35:19 +0200 + +anacron (2.3-11ubuntu3) edgy; urgency=low + + * Remove stop links from rc0 and rc6 + + -- Scott James Remnant Thu, 20 Jul 2006 21:50:32 +0100 + +anacron (2.3-11ubuntu2) breezy; urgency=low + + * Recommend: postfix | mail-transport-agent + + -- LaMont Jones Mon, 2 May 2005 19:22:04 -0600 + +anacron (2.3-11ubuntu1) breezy; urgency=low + + * Resynchronise with Debian. + + -- Jeff Bailey Wed, 20 Apr 2005 11:56:06 -0400 + +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-10ubuntu1) hoary; urgency=low + + * debian/init.d: + - use LSB init script functions, thanks to Ruben Vermeersch for the patch + (Ubuntu bug #4118) + - add output for the stop function + * debian/control: depend on lsb-release + + -- Martin Pitt Fri, 26 Nov 2004 12:19:18 +0100 + +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/pm-utils.power.d +++ anacron-2.3/debian/pm-utils.power.d @@ -0,0 +1,21 @@ +#! /bin/sh + +# This script makes anacron jobs start/stop when a machine gets or +# looses AC power. + +# 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" in + false) + /usr/sbin/invoke-rc.d anacron start >/dev/null + ;; + true) + /usr/sbin/invoke-rc.d anacron stop >/dev/null + ;; +esac --- anacron-2.3.orig/debian/dirs +++ anacron-2.3/debian/dirs @@ -0,0 +1,17 @@ +etc/cron.d +etc/init.d +etc/cron.daily +etc/cron.weekly +etc/cron.monthly +etc/apm/event.d +etc/acpi/ac.d +etc/acpi/battery.d +etc/acpi/resume.d +etc/acpi/suspend.d +usr/sbin +usr/share/doc/anacron +usr/share/man/man5 +usr/share/man/man8 +usr/lib/pm-utils/sleep.d/ +usr/lib/pm-utils/power.d/ +var/spool/anacron --- anacron-2.3.orig/debian/pm-utils.sleep.d +++ anacron-2.3/debian/pm-utils.sleep.d @@ -0,0 +1,22 @@ +#! /bin/sh + +# This script makes anacron jobs start to run when the machine is +# 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" in + resume|thaw) + /usr/sbin/invoke-rc.d anacron start >/dev/null + ;; + suspend|hibernate) + /usr/sbin/invoke-rc.d anacron stop >/dev/null + ;; +esac --- 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/rules +++ anacron-2.3/debian/rules @@ -0,0 +1,76 @@ +#!/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 + # acpi stuff + install -m 755 debian/acpi.d.resume debian/anacron/etc/acpi/resume.d/85-anacron.sh + install -m 755 debian/acpi.d.resume debian/anacron/etc/acpi/ac.d/85-anacron.sh + install -m 755 debian/acpi.d.suspend debian/anacron/etc/acpi/suspend.d/15-anacron.sh + install -m 755 debian/acpi.d.suspend debian/anacron/etc/acpi/battery.d/15-anacron.sh + # pm-utils + install -m 755 debian/pm-utils.sleep.d debian/anacron/usr/lib/pm-utils/sleep.d/95anacron + install -m 755 debian/pm-utils.power.d debian/anacron/usr/lib/pm-utils/power.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 1 ." + 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/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/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/control +++ anacron-2.3/debian/control @@ -0,0 +1,28 @@ +Source: anacron +Section: admin +Priority: optional +Build-Depends: debhelper (>= 4.0) +Maintainer: Ubuntu Core Developers +XSBC-Original-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), postfix | 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/docs +++ anacron-2.3/debian/docs @@ -0,0 +1 @@ +README TODO --- anacron-2.3.orig/debian/init.d +++ anacron-2.3/debian/init.d @@ -0,0 +1,51 @@ +#! /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 + +# Get lsb functions +. /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/postinst.UBUNTU +++ anacron-2.3/debian/postinst.UBUNTU @@ -0,0 +1,24 @@ +#!/bin/sh + + +case "$1" in + configure) + # continue below + + # Remove shutdown and reboot links; this init script does not need them. + if dpkg --compare-versions "$2" lt "2.3-11ubuntu3"; then + rm -f /etc/rc0.d/K11anacron /etc/rc6.d/K11anacron + fi + ;; + + 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/acpi.d.suspend +++ anacron-2.3/debian/acpi.d.suspend @@ -0,0 +1,6 @@ +#! /bin/sh + +# This script makes anacron jobs stop to run when the machine is +# unplugged from AC power, or suspended. + +/usr/sbin/invoke-rc.d anacron stop >/dev/null --- anacron-2.3.orig/debian/acpi.d.resume +++ anacron-2.3/debian/acpi.d.resume @@ -0,0 +1,15 @@ +#! /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. + +/usr/sbin/invoke-rc.d anacron start >/dev/null --- anacron-2.3.orig/debian/compat +++ anacron-2.3/debian/compat @@ -0,0 +1 @@ +4 --- 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/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#