diff --git a/sysutils/anacron/Makefile b/sysutils/anacron/Makefile index 944f2f537689..795bcf61a49d 100644 --- a/sysutils/anacron/Makefile +++ b/sysutils/anacron/Makefile @@ -1,32 +1,34 @@ # Created by: Derik van Zuetphen PORTNAME= anacron PORTVERSION= 2.3 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= sysutils MASTER_SITES= SF MAINTAINER= dz@426.ch COMMENT= Schedules periodic jobs on systems that are not permanently up 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 diff --git a/sysutils/anacron/files/anacron.in b/sysutils/anacron/files/anacron.in index b3698b7e5cac..9e32e4420335 100644 --- a/sysutils/anacron/files/anacron.in +++ b/sysutils/anacron/files/anacron.in @@ -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" diff --git a/sysutils/anacron/files/patch-log.c b/sysutils/anacron/files/patch-log.c new file mode 100644 index 000000000000..320a83d8c606 --- /dev/null +++ b/sysutils/anacron/files/patch-log.c @@ -0,0 +1,10 @@ +--- log.c.orig 2000-06-22 22:55:13 UTC ++++ log.c +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/sysutils/anacron/files/patch-main.c b/sysutils/anacron/files/patch-main.c new file mode 100644 index 000000000000..12dafcab98f3 --- /dev/null +++ b/sysutils/anacron/files/patch-main.c @@ -0,0 +1,10 @@ +--- main.c.orig 2000-06-22 22:58:07 UTC ++++ main.c +@@ -24,6 +24,7 @@ + + #include + #include ++#include + #include + #include + #include diff --git a/sysutils/anacron/files/patch-matchrx.c b/sysutils/anacron/files/patch-matchrx.c index a8a5d456fbdd..ffba9b6baa56 100644 --- a/sysutils/anacron/files/patch-matchrx.c +++ b/sysutils/anacron/files/patch-matchrx.c @@ -1,10 +1,14 @@ --- matchrx.c.orig 2000-06-20 23:12:18 UTC +++ matchrx.c -@@ -23,6 +23,7 @@ +@@ -23,9 +23,11 @@ #include +#include #include #include #include ++#include + #include "matchrx.h" + + int diff --git a/sysutils/anacron/files/patch-runjob.c b/sysutils/anacron/files/patch-runjob.c index a984d32ce1bb..781ea1693057 100644 --- a/sysutils/anacron/files/patch-runjob.c +++ b/sysutils/anacron/files/patch-runjob.c @@ -1,34 +1,43 @@ --- runjob.c.orig 2000-06-20 23:12:18 UTC +++ runjob.c @@ -39,26 +39,14 @@ static int temp_file() /* Open a temporary file and return its file descriptor */ { - const int max_retries = 50; - char *name; - int fd, i; + int fd; + char name[] = "/tmp/anacron.XXXXXX"; -+ -+ fd = mkstemp(name); - i = 0; - name = NULL; - do - { - i++; - 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); - /* 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); + 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"); + } diff --git a/sysutils/anacron/files/pkg-message.in b/sysutils/anacron/files/pkg-message.in index 77c5d61d0db1..64d2be3ba0d6 100644 --- a/sysutils/anacron/files/pkg-message.in +++ b/sysutils/anacron/files/pkg-message.in @@ -1,13 +1,18 @@ [ { type: install message: </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%%