Compare commits
4 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8dc819b4f5 | ||
|
|
52dc08a013 | ||
|
|
a0ac6d18fd | ||
|
|
d6f003ef52 |
12 changed files with 2473 additions and 1 deletions
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
anacron_2.3.orig.tar.gz
|
||||
anacron.init
|
||||
anacrontab
|
||||
runanacron
|
||||
anacron.cron
|
||||
107
anacron-2.3-fdclose.patch
Normal file
107
anacron-2.3-fdclose.patch
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
diff -up anacron-2.3/global.h.fdclose anacron-2.3/global.h
|
||||
--- anacron-2.3/global.h.fdclose 2008-09-23 10:06:04.000000000 +0200
|
||||
+++ anacron-2.3/global.h 2008-09-23 10:06:04.000000000 +0200
|
||||
@@ -63,6 +63,7 @@ struct job_rec1 {
|
||||
int tab_line;
|
||||
int arg_num;
|
||||
int timestamp_fd;
|
||||
+ int input_fd;
|
||||
int output_fd;
|
||||
int mail_header_size;
|
||||
pid_t job_pid;
|
||||
diff -up anacron-2.3/runjob.c.fdclose anacron-2.3/runjob.c
|
||||
--- anacron-2.3/runjob.c.fdclose 2008-09-23 10:06:04.000000000 +0200
|
||||
+++ anacron-2.3/runjob.c 2008-09-23 10:06:04.000000000 +0200
|
||||
@@ -38,12 +38,12 @@
|
||||
#include <langinfo.h>
|
||||
|
||||
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 @@ temp_file()
|
||||
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
|
||||
@@ -167,17 +175,28 @@ launch_mailer(job_rec *jr)
|
||||
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.
|
||||
@@ -236,7 +255,7 @@ launch_job(job_rec *jr)
|
||||
jr->mailto = username ();
|
||||
|
||||
/* 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, "Anacron <");
|
||||
@@ -302,6 +321,7 @@ tend_job(job_rec *jr, int status)
|
||||
running_jobs--;
|
||||
if (mail_output) launch_mailer(jr);
|
||||
xclose(jr->output_fd);
|
||||
+ xclose(jr->input_fd);
|
||||
}
|
||||
|
||||
void
|
||||
22
anacron-2.3-mail-content-type-77108.patch
Normal file
22
anacron-2.3-mail-content-type-77108.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
diff -up anacron-2.3/runjob.c.charset anacron-2.3/runjob.c
|
||||
--- anacron-2.3/runjob.c.charset 2008-09-23 09:42:49.000000000 +0200
|
||||
+++ anacron-2.3/runjob.c 2008-09-23 09:42:49.000000000 +0200
|
||||
@@ -35,6 +35,8 @@
|
||||
#include <string.h>
|
||||
#include "global.h"
|
||||
|
||||
+#include <langinfo.h>
|
||||
+
|
||||
static int
|
||||
temp_file()
|
||||
/* Open a temporary file and return its file descriptor */
|
||||
@@ -247,6 +249,9 @@ launch_job(job_rec *jr)
|
||||
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, "' on ");
|
||||
182
anacron-2.3-memleaking.patch
Normal file
182
anacron-2.3-memleaking.patch
Normal file
|
|
@ -0,0 +1,182 @@
|
|||
--- 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 <time.h>
|
||||
#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 <regex.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
#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;
|
||||
}
|
||||
12
anacron-2.3-pic.patch
Normal file
12
anacron-2.3-pic.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
--- 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
|
||||
12
anacron-2.3-spooldir.patch
Normal file
12
anacron-2.3-spooldir.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
diff -up anacron-2.3/readtab.c.spool anacron-2.3/readtab.c
|
||||
--- anacron-2.3/readtab.c.spool 2008-04-09 11:04:21.000000000 +0200
|
||||
+++ anacron-2.3/readtab.c 2008-04-09 11:23:09.000000000 +0200
|
||||
@@ -305,7 +305,7 @@ read_tab(int cwd)
|
||||
/* Open the anacrontab file */
|
||||
fchdir (cwd);
|
||||
tab = fopen(anacrontab, "r");
|
||||
- if (chdir(spooldir)) die_e("Can't chdir to %s", SPOOLDIR);
|
||||
+ if (chdir(spooldir)) die_e("Can't chdir to %s", spooldir);
|
||||
|
||||
if (tab == NULL) die_e("Error opening %s", anacrontab);
|
||||
/* Initialize the obstacks */
|
||||
99
anacron.init
Executable file
99
anacron.init
Executable file
|
|
@ -0,0 +1,99 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# anacron Run cron jobs that were left out due to downtime.
|
||||
#
|
||||
# chkconfig: 2345 99 05
|
||||
# description: 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 /var/run/anacron.pid pid file \
|
||||
# and /var/lock/subsys lock files, and removes them automatically at exit, \
|
||||
# so at least there will be no more "anacron is dead but subsys locked" \
|
||||
# messages.
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: $anacron
|
||||
# Required-Start: $local_fs $syslog
|
||||
# Required-Stop: $local_fs $syslog
|
||||
# Default-Start: 2345
|
||||
# Default-Stop: 99
|
||||
# Short-Description: run left over cron jobs
|
||||
# Description: 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 /var/run/anacron.pid pid file
|
||||
# and /var/lock/subsys lock files, and removes them automatically at exit,
|
||||
# so at least there will be no more "anacron is dead but subsys locked"
|
||||
# messages.
|
||||
### END INIT INFO
|
||||
|
||||
# Source function library.
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
exec=/usr/sbin/anacron
|
||||
prog=anacron
|
||||
#config=doesn't have config file, some values are stored in /etc/anacrontab
|
||||
|
||||
lockfile=/var/lock/subsys/$prog
|
||||
|
||||
start() {
|
||||
[ -x $exec ] || exit 5
|
||||
echo -n $"Starting $prog: "
|
||||
daemon +19 anacron -s
|
||||
retval=$?
|
||||
echo
|
||||
[ $retval -eq 0 ]
|
||||
## && touch $lockfile it creates lock in code
|
||||
return $retval
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo -n $"Stopping $prog: "
|
||||
killproc $prog
|
||||
retval=$?
|
||||
echo
|
||||
[ $retval -eq 0 ]
|
||||
#usually anacron clean his lock after he stops himself.
|
||||
#Just in case something goes wrong kill him.
|
||||
[ -f $lockfile ] && rm -f $lockfile
|
||||
return $retval
|
||||
}
|
||||
|
||||
restart() {
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
rh_status() {
|
||||
# run checks to determine if the service is running or use generic status
|
||||
status $prog
|
||||
}
|
||||
|
||||
rh_status_q() {
|
||||
rh_status >/dev/null 2>&1
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
rh_status_q && exit 0
|
||||
$1
|
||||
;;
|
||||
stop)
|
||||
rh_status_q || exit 0
|
||||
$1
|
||||
;;
|
||||
restart)
|
||||
$1
|
||||
;;
|
||||
status)
|
||||
rh_status
|
||||
;;
|
||||
condrestart)
|
||||
rh_status_q || exit 0
|
||||
restart
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
|
||||
exit 2
|
||||
esac
|
||||
exit $?
|
||||
|
||||
388
anacron.spec
Normal file
388
anacron.spec
Normal file
|
|
@ -0,0 +1,388 @@
|
|||
Summary: A cron-like program that can run jobs lost during downtime
|
||||
Name: anacron
|
||||
Version: 2.3
|
||||
Release: 66%{?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
|
||||
Source3: runanacron
|
||||
Source4: anacron.cron
|
||||
Patch1: anacron_2.3-13.patch
|
||||
Patch2: anacron-2.3-mail-content-type-77108.patch
|
||||
Patch3: anacron-2.3-fdclose.patch
|
||||
Patch4: anacron-2.3-pic.patch
|
||||
Patch5: anacron-2.3-memleaking.patch
|
||||
Patch6: anacron-2.3-spooldir.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. It's part of triple - cronie, anacron
|
||||
and crontabs, which care about execution of jobs also with often
|
||||
reboots or hibernation.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1 -b .try
|
||||
%patch2 -p1 -b .charset
|
||||
%patch3 -p1 -b .fdclose
|
||||
%patch4 -p1 -b .pic
|
||||
%patch5 -p1 -b .memleaking
|
||||
%patch6 -p1 -b .spool
|
||||
|
||||
%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
|
||||
#install -m755 fedora/anacron.daily $RPM_BUILD_ROOT/etc/cron.daily/0anacron
|
||||
#ln -s ../cron.daily/0anacron $RPM_BUILD_ROOT/etc/cron.weekly/0anacron
|
||||
#ln -s ../cron.daily/0anacron $RPM_BUILD_ROOT/etc/cron.monthly/0anacron
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d/
|
||||
install -c -m755 %SOURCE2 $RPM_BUILD_ROOT/etc/rc.d/init.d/anacron
|
||||
install -c -m755 %SOURCE3 $RPM_BUILD_ROOT/usr/sbin/runanacron
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/cron.d
|
||||
install -m644 %SOURCE4 $RPM_BUILD_ROOT/etc/cron.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
|
||||
/usr/sbin/runanacron
|
||||
/etc/cron.d/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
|
||||
* Thu Jan 28 2009 Marcela Mašláňová <mmaslano@redhat.com> 2.3-66
|
||||
- 477709 hack aroung problems with running jobs twice
|
||||
|
||||
* Fri Oct 24 2008 Marcela Mašláňová <mmaslano@redhat.com> 2.3-65
|
||||
- rewrite init script - using fedora guidelines SysVInitScript
|
||||
|
||||
* Wed Jul 30 2008 Marcela Maslanova <mmaslano@redhat.com> 2.3-64
|
||||
- fix fuzz
|
||||
- fix previous patch, thanks to mbroz
|
||||
|
||||
* Wed Jul 30 2008 Marcela Maslanova <mmaslano@redhat.com> 2.3-62
|
||||
- 441576 really stop anacron daemon
|
||||
|
||||
* Wed May 28 2008 Marcela Maslanova <mmaslano@redhat.com> 2.3-61
|
||||
- cleaning lots of scripts in anacron & crontabs
|
||||
|
||||
* Wed Apr 9 2008 Marcela Maslanova <mmaslano@redhat.com> 2.3-60
|
||||
- correct spooldir logged
|
||||
|
||||
* Thu Feb 28 2008 Marcela Maslanova <mmaslano@redhat.com> 2.3-59
|
||||
- 0anacron.{daily,weekly,monthly} sterror's output also goes to
|
||||
dev/null
|
||||
- rhbz#435255
|
||||
|
||||
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.3-58
|
||||
- Autorebuild for GCC 4.3
|
||||
|
||||
* Mon Dec 10 2007 Marcela Maslanova <mmaslano@redhat.com> 2.3-57
|
||||
- 0anacron.{daily,weekly,monthly} check whether they are on battery
|
||||
- rhbz#387301
|
||||
|
||||
* Tue Sep 25 2007 Marcela Maslanova <mmaslano@redhat.com> 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 <mmaslano@redhat.com> 2.3-55
|
||||
- change chkconfig --add, because it wasn't running after
|
||||
fresh install #267801
|
||||
|
||||
* Thu Aug 30 2007 Marcela Maslanova <mmaslano@redhat.com> 2.3-54
|
||||
- change chkconfig levels in post part
|
||||
|
||||
* Wed Aug 17 2007 Marcela Maslanova <mmaslano@redhat.com> 2.3-53
|
||||
- rebuild with changed post - starting value must be removed
|
||||
- Resolves: 252166, 252255, 252254
|
||||
|
||||
* Tue Aug 14 2007 Marcela Maslanova <mmaslano@redhat.com> 2.3-51
|
||||
- rebuild with correct init script
|
||||
|
||||
* Mon Aug 13 2007 Marcela Maslanova <mmaslano@redhat.com> 2.3-50
|
||||
- rewrite typo in init script
|
||||
- Resolves: rhbz#251757
|
||||
|
||||
* Wed Aug 08 2007 Marcela Maslanova <mmaslano@redhat.com> 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 <mmaslano@redhat.com> 2.3-48
|
||||
- changes in init script (not build)
|
||||
|
||||
* Tue Feb 6 2007 Marcela Maslanova <mmaslano@redhat.com> 2.3-47
|
||||
- thanks for review from Jef Spaleta
|
||||
- rhbz#225247, rhbz#211309
|
||||
|
||||
* Mon Dec 04 2006 Marcela Maslanova <mmaslano@redhat.com> 2.3-45
|
||||
- rebuilt with pie insted pic
|
||||
|
||||
* Tue Oct 10 2006 Marcela Maslanova <mmaslano@redhat.com> 2.3-44
|
||||
- fix memory leaking (both #210020)
|
||||
- PIE(PIC) executable
|
||||
|
||||
* Tue Oct 2 2006 Marcela Maslanova <mmaslano@redhat.com> 2.3-42
|
||||
- hostname added to mail (#208914)
|
||||
|
||||
* Fri Sep 29 2006 Marcela Maslanova <mmaslano@redhat.com> 2.3-41
|
||||
- change spec file - patch from Orion Poplawski (#191410)
|
||||
|
||||
* Mon Sep 11 2006 Dan Walsh <dwalsh@redhat.com> 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<ejtr@layer3.co.uk>
|
||||
|
||||
* Wed Aug 30 2006 Jitka Kudrnacova <jkudrnac@redhat.com> - 2.3-39
|
||||
- modified PATH in /etc/anacrontab file to make the same as in /etc/crontab (#61891)
|
||||
|
||||
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 2.3-38.FC6.1
|
||||
- rebuild
|
||||
|
||||
* Thu Apr 13 2006 Jason Vas Dias <jvdias@redhat.com> - 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 <jkeating@redhat.com> - 2.3-36.1
|
||||
- bump again for double-long bug on ppc(64)
|
||||
|
||||
* Tue Feb 07 2006 Jason Vas Dias <jvdias@redhat.com> - 2.3-36
|
||||
- rebuild for new gcc, glibc, glibc-kernheaders
|
||||
|
||||
* Wed Jan 11 2006 Peter Jones <pjones@redhat.com> 2.3-35
|
||||
- Fix initscript so changing runlevel shuts it down correctly
|
||||
|
||||
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
|
||||
- rebuilt
|
||||
|
||||
* Wed Mar 16 2005 Jason Vas Dias <jvdias@redhat.com> 2.3-34
|
||||
- Rebuild with gcc4 in FC4.
|
||||
|
||||
* Mon Feb 21 2005 Jason Vas Dias <jvdias@redhat.com> 2.3-33
|
||||
- Rebuild for FC4 .
|
||||
|
||||
* Tue Sep 28 2004 Rik van Riel <riel@redhat.com> 2.3-32
|
||||
- add MAILTO option, like vixie cron has (bz#127924)
|
||||
|
||||
* Fri Jul 2 2004 Elliot Lee <sopwith@redhat.com>
|
||||
- rebuilt
|
||||
- Add noconst patch to fix invalid C
|
||||
|
||||
* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
|
||||
- rebuilt
|
||||
|
||||
* Thu Jul 10 2003 Jens Petersen <petersen@redhat.com> - 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 <petersen@redhat.com> - 2.3-28
|
||||
- add a Content-Type header to mails giving the charset encoding (#77108)
|
||||
|
||||
* Thu Jul 10 2003 Jens Petersen <petersen@redhat.com> - 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 <sopwith@redhat.com>
|
||||
- rebuilt
|
||||
|
||||
* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
|
||||
- rebuilt
|
||||
|
||||
* Wed Dec 11 2002 Tim Powers <timp@redhat.com> 2.3-24
|
||||
- rebuild on all arches
|
||||
|
||||
* Fri Aug 23 2002 Jens Petersen <petersen@redhat.com> 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 <tagoh@redhat.com> 2.3-22
|
||||
- fix the stripped binary issue.
|
||||
|
||||
* Mon Jul 08 2002 Bill Huang <bhuang@redhat.com>
|
||||
- Update "Copyright" to "License" in spec file
|
||||
|
||||
* Fri Jun 21 2002 Tim Powers <timp@redhat.com>
|
||||
- automated rebuild
|
||||
|
||||
* Thu May 23 2002 Tim Powers <timp@redhat.com>
|
||||
- automated rebuild
|
||||
|
||||
* Wed Jan 09 2002 Tim Powers <timp@redhat.com>
|
||||
- automated rebuild
|
||||
|
||||
* Sun Jun 24 2001 Elliot Lee <sopwith@redhat.com>
|
||||
- Bump release + rebuild.
|
||||
|
||||
* Tue Apr 3 2001 Crutcher Dunnavant <crutcher@redhat.com>
|
||||
- add dependancy to vixie-cron (for /usr/bin/run-parts)
|
||||
|
||||
* Tue Feb 13 2001 Tim Waugh <twaugh@redhat.com>
|
||||
- killproc is a shell function and can't be passed as a parameter
|
||||
(bug #27150).
|
||||
|
||||
* Mon Feb 5 2001 Bernhard Rosenkraenzer <bero@redhat.com>
|
||||
- Fix i18n in initscript ("Stopping anacron" wasn't translated)
|
||||
(#26076)
|
||||
|
||||
* Fri Feb 2 2001 Trond Eivind Glomsrød <teg@redhat.com>
|
||||
- i18nize initscript
|
||||
|
||||
* Thu Dec 7 2000 Crutcher Dunnavant <crutcher@redhat.com>
|
||||
- rebuild in rebuild cycle.
|
||||
|
||||
* Mon Oct 30 2000 Matt Wilson <msw@redhat.com>
|
||||
- touch /var/lock/subsys/anacron to prevent excess startage during
|
||||
init level change
|
||||
|
||||
* Wed Aug 30 2000 Bernhard Rosenkraenzer <bero@redhat.com>
|
||||
- Shut down earlier to prevent NFS mounted /usr filesystems from causing
|
||||
problems (Bug #16257)
|
||||
|
||||
* Fri Aug 4 2000 Bernhard Rosenkraenzer <bero@redhat.com>
|
||||
- Start it later so services some cron scripts may depend on are running
|
||||
(Bug #15335)
|
||||
|
||||
* Thu Aug 3 2000 Bernhard Rosenkraenzer <bero@redhat.com>
|
||||
- Fix up initscript (Bug #15123 and an unreported bug)
|
||||
|
||||
* Sat Jul 15 2000 Bill Nottingham <notting@redhat.com>
|
||||
- move initscript back
|
||||
|
||||
* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
|
||||
- automatic rebuild
|
||||
|
||||
* Mon Jul 10 2000 Bernhard Rosenkraenzer <bero@redhat.com>
|
||||
- Fix up initscripts (Bug #13625)
|
||||
|
||||
* Tue Jul 4 2000 Matt Wilson <msw@redhat.com>
|
||||
- Prereq: /sbin/chkconfig
|
||||
|
||||
* Mon Jun 26 2000 Preston Brown <pbrown@redhat.com>
|
||||
- move initscript to /etc/init.d, fix up post/preun/postun scripts.
|
||||
|
||||
* Sun Jun 26 2000 Bernhard Rosenkraenzer <bero@redhat.com>
|
||||
- 2.3
|
||||
|
||||
* Sun Jun 18 2000 Matt Wilson <msw@redhat.com>
|
||||
- use %%{_mandir}
|
||||
|
||||
* Fri Mar 03 2000 Tim Powers <timp@redhat.com>
|
||||
- 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 <timp@redhat.com>
|
||||
- fixed startup script, now it actually stops, gives status and restarts.
|
||||
Fixes bug #9835
|
||||
|
||||
* Mon Feb 7 2000 Bill Nottingham <notting@redhat.com>
|
||||
- handle compressed manpages
|
||||
|
||||
* Fri Feb 4 2000 Bernhard Rosenkraenzer <bero@redhat.com>
|
||||
- rebuild to get compressed man pages
|
||||
- mark /etc/cron.daily/... as config files
|
||||
|
||||
* Wed Feb 02 2000 Cristian Gafton <gafton@redhat.com>
|
||||
- fix annoying defines
|
||||
- rebuild to update description and group
|
||||
|
||||
* Thu Jan 6 2000 Bernhard Rosenkränzer <bero@redhat.com>
|
||||
- initial Red Hat package
|
||||
|
||||
* Wed Dec 29 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
|
||||
- Remove cron.hourly check (unusefull).
|
||||
|
||||
* Wed Nov 10 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
|
||||
- 2.1 from debian.
|
||||
- Fix typo in initscripts.
|
||||
|
||||
* Thu Jul 22 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
|
||||
- Fix wrong entries in anacrontab.
|
||||
- Add a /etc/rc.sysinit/ script
|
||||
|
||||
* Tue Apr 27 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
|
||||
- Fix bug with /var/spool/anacron/
|
||||
|
||||
* Sat Apr 10 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
|
||||
- First version mainly inspired from the Debian package.
|
||||
1630
anacron_2.3-13.patch
Normal file
1630
anacron_2.3-13.patch
Normal file
File diff suppressed because it is too large
Load diff
11
anacrontab
Normal file
11
anacrontab
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# /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
|
||||
|
|
@ -1 +0,0 @@
|
|||
Obsoleted by cronie-anacron as of F-12.
|
||||
5
sources
Normal file
5
sources
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
9fdfc50f5741643332722a9145146278 anacron_2.3.orig.tar.gz
|
||||
094af5e05723d2c4924d60f73d738509 anacron.init
|
||||
e4368e8f686c710f63027af0f213cfe5 anacrontab
|
||||
1e65b1fcb49c7929645a1bd0baffd7ef runanacron
|
||||
312b5eed93765e26e9d21f23bccc72c9 anacron.cron
|
||||
Reference in a new issue