mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-30 05:40:06 +00:00
sysutils/anacron: Fix start after resume
The anacron utility should be run by it's rc(8) script after resume, since the time to run jobs from the anacrontab(5) might have passed while the system was sleeping. PR: 253567 Reported by: walter.von.entferndt@posteo.net Approved by: dz@426.ch (maintainer)
This commit is contained in:
parent
7eb0f1e315
commit
1a76a776c7
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= anacron
|
||||
PORTVERSION= 2.3
|
||||
PORTREVISION= 6
|
||||
PORTREVISION= 7
|
||||
CATEGORIES= sysutils
|
||||
MASTER_SITES= SF
|
||||
|
||||
@ -13,20 +13,22 @@ LICENSE= GPLv2+
|
||||
LICENSE_FILE= ${WRKSRC}/COPYING
|
||||
|
||||
USES= gmake
|
||||
USE_RC_SUBR= anacron
|
||||
USE_RC_SUBR= ${PORTNAME}
|
||||
SUB_FILES= pkg-message
|
||||
PLIST_SUB= PORTNAME=${PORTNAME}
|
||||
SUB_LIST+= PORTNAME=${PORTNAME} COMMENT="${COMMENT}"
|
||||
|
||||
post-patch:
|
||||
.for f in Makefile anacron.8 anacrontab.5
|
||||
@${REINPLACE_CMD} -e 's|\(/etc/anacrontab\)|${PREFIX}\1|' ${WRKSRC}/${f}
|
||||
.for f in Makefile ${PORTNAME}.8 ${PORTNAME}tab.5
|
||||
@${REINPLACE_CMD} -e 's|\(/etc/${PORTNAME}tab\)|${PREFIX}\1|' ${WRKSRC}/${f}
|
||||
.endfor
|
||||
@${REINPLACE_CMD} -e 's|^CFLAGS = .*||' ${WRKSRC}/Makefile
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/anacron ${STAGEDIR}${PREFIX}/sbin
|
||||
${INSTALL_MAN} ${WRKSRC}/anacron.8 ${STAGEDIR}${MAN8PREFIX}/man/man8
|
||||
${INSTALL_MAN} ${WRKSRC}/anacrontab.5 ${STAGEDIR}${MAN5PREFIX}/man/man5
|
||||
${INSTALL_DATA} ${FILESDIR}/anacrontab.sample ${STAGEDIR}${PREFIX}/etc
|
||||
@${MKDIR} ${STAGEDIR}/var/spool/anacron
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/sbin
|
||||
${INSTALL_MAN} ${WRKSRC}/${PORTNAME}.8 ${STAGEDIR}${MAN8PREFIX}/man/man8
|
||||
${INSTALL_MAN} ${WRKSRC}/${PORTNAME}tab.5 ${STAGEDIR}${MAN5PREFIX}/man/man5
|
||||
${INSTALL_DATA} ${FILESDIR}/${PORTNAME}tab.sample ${STAGEDIR}${PREFIX}/etc
|
||||
@${MKDIR} ${STAGEDIR}/var/spool/${PORTNAME}
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
@ -1,21 +1,36 @@
|
||||
#!/bin/sh
|
||||
|
||||
# PROVIDE: anacron
|
||||
# PROVIDE: %%PORTNAME%%
|
||||
# REQUIRE: LOGIN
|
||||
# KEYWORD: resume
|
||||
|
||||
#
|
||||
# Add the following line to /etc/rc.conf to enable anacron:
|
||||
# Execute one of the following commands as root to enable %%PORTNAME%%:
|
||||
#
|
||||
# anacron_enable="YES"
|
||||
# service %%PORTNAME%% enable
|
||||
# sysrc %%PORTNAME%%_enable=YES
|
||||
#
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name=anacron
|
||||
rcvar=anacron_enable
|
||||
name=%%PORTNAME%%
|
||||
command="%%PREFIX%%/sbin/%%PORTNAME%%"
|
||||
desc="%%COMMENT%%"
|
||||
extra_commands=resume
|
||||
rcvar=%%PORTNAME%%_enable
|
||||
required_vars=syslogd_enable
|
||||
|
||||
load_rc_config $name
|
||||
: ${anacron_enable:=NO}
|
||||
command="%%PREFIX%%/sbin/anacron"
|
||||
: ${%%PORTNAME%%_enable:=NO}
|
||||
|
||||
run_rc_command "$1"
|
||||
if [ $# -gt 0 -a $1 = "resume" ]; then
|
||||
arg=start
|
||||
if checkyesno $rcvar; then
|
||||
info "starting ${name} after resume"
|
||||
fi
|
||||
else
|
||||
arg=$1
|
||||
fi
|
||||
debug "$name: \$1 = $1, arg = $arg"
|
||||
|
||||
run_rc_command "$arg"
|
||||
|
10
sysutils/anacron/files/patch-log.c
Normal file
10
sysutils/anacron/files/patch-log.c
Normal file
@ -0,0 +1,10 @@
|
||||
--- log.c.orig 2000-06-22 22:55:13 UTC
|
||||
+++ log.c
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <unistd.h>
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <errno.h>
|
||||
#include <signal.h>
|
10
sysutils/anacron/files/patch-main.c
Normal file
10
sysutils/anacron/files/patch-main.c
Normal file
@ -0,0 +1,10 @@
|
||||
--- main.c.orig 2000-06-22 22:58:07 UTC
|
||||
+++ main.c
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include <time.h>
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <fcntl.h>
|
@ -1,6 +1,6 @@
|
||||
--- matchrx.c.orig 2000-06-20 23:12:18 UTC
|
||||
+++ matchrx.c
|
||||
@@ -23,6 +23,7 @@
|
||||
@@ -23,9 +23,11 @@
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
@ -8,3 +8,7 @@
|
||||
#include <regex.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
#include "matchrx.h"
|
||||
|
||||
int
|
||||
|
@ -9,8 +9,6 @@
|
||||
- int fd, i;
|
||||
+ int fd;
|
||||
+ char name[] = "/tmp/anacron.XXXXXX";
|
||||
+
|
||||
+ fd = mkstemp(name);
|
||||
|
||||
- i = 0;
|
||||
- name = NULL;
|
||||
@ -25,6 +23,8 @@
|
||||
- /* I'm not sure we actually need to be so persistent here */
|
||||
- } while (fd == -1 && errno == EEXIST && i < max_retries);
|
||||
-
|
||||
+ fd = mkstemp(name);
|
||||
+
|
||||
if (fd == -1) die_e("Can't open temporary file");
|
||||
if (unlink(name)) die_e("Can't unlink temporary file");
|
||||
- free(name);
|
||||
@ -32,3 +32,12 @@
|
||||
fcntl(fd, F_SETFD, 1); /* set close-on-exec flag */
|
||||
return fd;
|
||||
}
|
||||
@@ -84,7 +72,7 @@ username()
|
||||
}
|
||||
|
||||
static void
|
||||
-xputenv(const char *s)
|
||||
+xputenv(char *s)
|
||||
{
|
||||
if (putenv(s)) die_e("Can't set the environment");
|
||||
}
|
||||
|
@ -2,12 +2,17 @@
|
||||
{ type: install
|
||||
message: <<EOM
|
||||
Configuration hints:
|
||||
- Edit %%PREFIX%%/etc/anacrontab
|
||||
- Edit %%PREFIX%%/etc/%%PORTNAME%%tab
|
||||
- Deactivate the 'periodic' commands in /etc/crontab
|
||||
- Add a call to anacron to /etc/crontab, like
|
||||
0 0 * * * root %%PREFIX%%/sbin/anacron
|
||||
- Add anacron_enable="YES" to /etc/rc.conf
|
||||
- Read anacron(8) and anacrontab(5)
|
||||
- Add a call to %%PORTNAME%% to /etc/crontab, like
|
||||
0 0 * * * root %%PREFIX%%/sbin/%%PORTNAME%%
|
||||
- Add %%PORTNAME%%_enable="YES" to /etc/rc.conf
|
||||
or execute one of the following commands as root:
|
||||
service %%PORTNAME%% enable
|
||||
sysrc %%PORTNAME%%_enable=YES
|
||||
- Read %%PORTNAME%%(8) and %%PORTNAME%%tab(5)
|
||||
- To avoid overlapping periodic(8) jobs, you may want to serialize jobs:
|
||||
sysrc %%PORTNAME%%_flags+=" -s"
|
||||
EOM
|
||||
}
|
||||
]
|
||||
|
@ -1,5 +1,7 @@
|
||||
sbin/anacron
|
||||
@sample etc/anacrontab.sample
|
||||
@unexec rmdir /var/spool/anacron 2>/dev/null || echo "If you are permanently removing this port, you should do a 'rm -rf /var/spool/anacron'."
|
||||
man/man8/anacron.8.gz
|
||||
man/man5/anacrontab.5.gz
|
||||
sbin/%%PORTNAME%%
|
||||
@sample etc/%%PORTNAME%%tab.sample
|
||||
@postexec mkdir -p /var/spool/%%PORTNAME%% 2>/dev/null
|
||||
@postunexec rmdir /var/spool/%%PORTNAME%% 2>/dev/null || echo "If you are permanently removing this port, you should do a 'rm -rf /var/spool/%%PORTNAME%%'."
|
||||
man/man8/%%PORTNAME%%.8.gz
|
||||
man/man5/%%PORTNAME%%tab.5.gz
|
||||
@dir /var/spool/%%PORTNAME%%
|
||||
|
Loading…
Reference in New Issue
Block a user