[csw-devel] SF.net SVN: gar:[3880] csw/mgar/pkg

wahwah at users.sourceforge.net wahwah at users.sourceforge.net
Mon Mar 23 17:31:35 CET 2009


Revision: 3880
          http://gar.svn.sourceforge.net/gar/?rev=3880&view=rev
Author:   wahwah
Date:     2009-03-23 16:31:35 +0000 (Mon, 23 Mar 2009)

Log Message:
-----------
First commit of vixie-cron. It's not complete yet, and the build is disabled to
avoid giving an impression of completed work. It tries to use mGAR SMF support,
which isn't currently ready.

Added Paths:
-----------
    csw/mgar/pkg/vixiecron/
    csw/mgar/pkg/vixiecron/branches/
    csw/mgar/pkg/vixiecron/tags/
    csw/mgar/pkg/vixiecron/trunk/
    csw/mgar/pkg/vixiecron/trunk/Makefile
    csw/mgar/pkg/vixiecron/trunk/checksums
    csw/mgar/pkg/vixiecron/trunk/files/
    csw/mgar/pkg/vixiecron/trunk/files/CSWvixiecron.gspec
    csw/mgar/pkg/vixiecron/trunk/files/CSWvixiecron.postinstall
    csw/mgar/pkg/vixiecron/trunk/files/crontab.CSW
    csw/mgar/pkg/vixiecron/trunk/files/cswvixiecron
    csw/mgar/pkg/vixiecron/trunk/files/cswvixiecron.xml
    csw/mgar/pkg/vixiecron/trunk/files/gar-vixiecron_3.0pl1.patch
    csw/mgar/pkg/vixiecron/trunk/files/run-crons-0.3.2
    csw/mgar/pkg/vixiecron/trunk/files/svc-cswvixiecron


Property changes on: csw/mgar/pkg/vixiecron/trunk
___________________________________________________________________
Added: svn:ignore
   + work
download
gar
cookies


Added: csw/mgar/pkg/vixiecron/trunk/Makefile
===================================================================
--- csw/mgar/pkg/vixiecron/trunk/Makefile	                        (rev 0)
+++ csw/mgar/pkg/vixiecron/trunk/Makefile	2009-03-23 16:31:35 UTC (rev 3880)
@@ -0,0 +1,72 @@
+# Copyright 2009 Google Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+GARNAME = vixiecron
+GARVERSION = 3.0pl1
+CATEGORIES = server
+
+DESCRIPTION = Paul Vixie cron
+define BLURB
+  vixiecron is one of the most widely used cron implementations.
+
+  This build includes patches from Debian.  It supports /etc/cron.d directory,
+  which can be used to conveniently set up cron jobs by placing files. It also
+  supports a slash notation: */5 denotes "Every five minutes".
+endef
+
+MASTER_SITES  = http://ftp.de.debian.org/debian/pool/main/c/cron/
+DISTFILES  = cron_$(GARVERSION).orig.tar.gz
+DISTFILES += cron_$(GARVERSION)-105.diff.gz
+DISTFILES += $(call admfiles,CSWvixiecron,postinstall)
+DISTFILES += csw$(GARNAME) csw$(GARNAME).xml svc-csw$(GARNAME)
+DISTFILES += crontab.CSW run-crons-0.3.2
+
+WORKSRC = $(WORKDIR)/cron-$(GARVERSION).orig
+
+SPKG_CLASSES = none cswinitsmf
+
+PATCHFILES = cron_$(GARVERSION)-105.diff.gz \
+             gar-$(GARNAME)_$(GARVERSION).patch
+
+GARCOMPILER = SOS12
+TEST_SCRIPTS =
+CONFIGURE_SCRIPTS =
+EXTRA_CFLAGS = -DDEBUGGING=0 -DPOSIX -DDEBIAN
+
+pre-install:
+	ginstall -d $(DESTDIR)/opt/csw
+	ginstall -d $(DESTDIR)/opt/csw/bin
+	ginstall -d $(DESTDIR)/opt/csw/sbin
+	ginstall -d $(DESTDIR)/opt/csw/share/man/cat5
+	ginstall -d $(DESTDIR)/opt/csw/share/man/cat8
+
+pre-install-isa-sparcv9: pre-install
+pre-install-isa-sparcv8: pre-install
+pre-install-isa-i386: pre-install
+pre-install-isa-amd64: pre-install
+
+post-install:
+	ginstall -d $(DESTDIR)/etc
+	ginstall -m 750 files/crontab.CSW $(DESTDIR)/etc/crontab.CSW
+	ginstall -m 755 files/run-crons-0.3.2 $(DESTDIR)/opt/csw/sbin/run-crons
+	for base in hourly daily weekly monthly; do \
+		ginstall -d $(DESTDIR)/etc/cron.$$base; \
+	done
+
+post-install-isa-sparcv8: post-install
+post-install-isa-sparcv9: post-install
+post-install-isa-i386: post-install
+post-install-isa-amd64: post-install
+
+
+# This build is disabled for the time being, as SMF configuration isn't yet
+# complete.
+
+# Remove the following rules and uncomment the
+# include before building.
+all: .DEFAULT
+.DEFAULT:
+	@true
+
+# include gar/category.mk

Added: csw/mgar/pkg/vixiecron/trunk/checksums
===================================================================
--- csw/mgar/pkg/vixiecron/trunk/checksums	                        (rev 0)
+++ csw/mgar/pkg/vixiecron/trunk/checksums	2009-03-23 16:31:35 UTC (rev 3880)
@@ -0,0 +1,11 @@
+4c64aece846f8483daf440f8e3dd210f  download/cron_3.0pl1.orig.tar.gz
+6235d305843da483b69671cde7d1d8ea  download/cron_3.0pl1-105.diff.gz
+35010a2f583a6e3dc9f0a0e996b426f4  download/CSWvixiecron.gspec
+dd12d38a20e3f780fbcba0a1b1ffbfd0  download/CSWvixiecron.postinstall
+b5cdad15f8d66a84b807cd9cf5a04171  download/cswvixiecron
+4674c86391ccc621a6bab5442a323313  download/cswvixiecron.xml
+b5cdad15f8d66a84b807cd9cf5a04171  download/svc-cswvixiecron
+d1c17a3cf4f1ff253c36897d94b0b834  download/crontab.CSW
+d0dd7b19670e9a40060977b0b8779cad  download/run-crons-0.3.2
+6235d305843da483b69671cde7d1d8ea  download/cron_3.0pl1-105.diff.gz
+cf0aa68ad98415650daad595fbc415cf  download/gar-vixiecron_3.0pl1.patch

Added: csw/mgar/pkg/vixiecron/trunk/files/CSWvixiecron.gspec
===================================================================
--- csw/mgar/pkg/vixiecron/trunk/files/CSWvixiecron.gspec	                        (rev 0)
+++ csw/mgar/pkg/vixiecron/trunk/files/CSWvixiecron.gspec	2009-03-23 16:31:35 UTC (rev 3880)
@@ -0,0 +1,5 @@
+%var            bitname vixiecron
+%var            pkgname CSWvixiecron
+%include        url file://%{PKGLIB}/csw_dyndepend.gspec
+%var            SERVICE_CONF_FILES /etc/crontab
+%include        url file://%{PKGLIB}/smf_enabled.gspec

Added: csw/mgar/pkg/vixiecron/trunk/files/CSWvixiecron.postinstall
===================================================================
--- csw/mgar/pkg/vixiecron/trunk/files/CSWvixiecron.postinstall	                        (rev 0)
+++ csw/mgar/pkg/vixiecron/trunk/files/CSWvixiecron.postinstall	2009-03-23 16:31:35 UTC (rev 3880)
@@ -0,0 +1,29 @@
+#!/bin/sh
+# 
+# $Id$
+#
+# Note: it's going to be executed by /bin/sh no matter what.
+
+# Add group crontab if it doesn't exist
+if groupmod crontab >/dev/null; then
+  echo  # How to make a negation in /bin/sh?
+else
+  groupadd crontab
+fi
+
+# Prepare the directory for crontabs
+mkdir -p /var/spool/cron/crontabs
+chown root:crontab /var/spool/cron/crontabs
+chmod 1730 /var/spool/cron/crontabs
+
+# Suid bit is not picked up by GAR automatically. An 'artifact' is raised:
+# https://sourceforge.net/tracker2/?func=detail&aid=2679715&group_id=229205&atid=1075770
+chmod g+s /opt/csw/bin/crontab
+chown root:crontab /opt/csw/bin/crontab
+
+# Copy the configuration file if not already present
+if test ! -f /etc/crontab; then
+  cp /etc/crontab.CSW /etc/crontab
+fi
+
+

Added: csw/mgar/pkg/vixiecron/trunk/files/crontab.CSW
===================================================================
--- csw/mgar/pkg/vixiecron/trunk/files/crontab.CSW	                        (rev 0)
+++ csw/mgar/pkg/vixiecron/trunk/files/crontab.CSW	2009-03-23 16:31:35 UTC (rev 3880)
@@ -0,0 +1,19 @@
+# /etc/crontab: system-wide crontab
+# 
+# $Id$
+#
+# Unlike any other crontab you don't have to run the `crontab'
+# command to install the new version when you edit this file.
+# This file also has a username field, that none of the other crontabs do.
+
+SHELL=/bin/bash
+PATH=/opt/csw/sbin:/opt/csw/bin:/sbin:/bin:/usr/sbin:/usr/bin
+MAILTO=root
+HOME=/
+
+# m h dom mon dow user  command
+0  *  * * *     root    rm -f /var/spool/cron/lastrun/cron.hourly
+1  3  * * *     root    rm -f /var/spool/cron/lastrun/cron.daily
+15 4  * * 6     root    rm -f /var/spool/cron/lastrun/cron.weekly
+30 5  1 * *     root    rm -f /var/spool/cron/lastrun/cron.monthly
+*/10  *  * * *  root    test -x /opt/csw/sbin/run-crons && /opt/csw/sbin/run-crons

Added: csw/mgar/pkg/vixiecron/trunk/files/cswvixiecron
===================================================================
--- csw/mgar/pkg/vixiecron/trunk/files/cswvixiecron	                        (rev 0)
+++ csw/mgar/pkg/vixiecron/trunk/files/cswvixiecron	2009-03-23 16:31:35 UTC (rev 3880)
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# $Id$
+
+case "$1" in
+  start)
+    /opt/csw/sbin/cron -l
+    ;;
+
+  stop)
+    /usr/bin/pkill -z `zonename` '^cron$'
+    ;;
+  *)
+    echo "Usage: $0 { start | stop }"
+    exit 1
+    ;;
+esac

Added: csw/mgar/pkg/vixiecron/trunk/files/cswvixiecron.xml
===================================================================
--- csw/mgar/pkg/vixiecron/trunk/files/cswvixiecron.xml	                        (rev 0)
+++ csw/mgar/pkg/vixiecron/trunk/files/cswvixiecron.xml	2009-03-23 16:31:35 UTC (rev 3880)
@@ -0,0 +1,24 @@
+<?xml version='1.0'?>
+<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
+<service_bundle type='manifest' name='export'>
+  <service name='system/cswcron' type='service' version='0'>
+    <single_instance/>
+    <dependency name='fs' grouping='require_all' restart_on='none' type='service'>
+      <service_fmri value='svc:/system/filesystem/local'/>
+    </dependency>
+    <dependency name='net' grouping='require_all' restart_on='none' type='service'>
+      <service_fmri value='svc:/network/loopback'/>
+    </dependency>
+    <exec_method name='start' type='method' exec='/opt/csw/lib/svc/method/svc-cswvixiecron start' timeout_seconds='30'>
+      <method_context/>
+    </exec_method>
+    <exec_method name='stop' type='method' exec='/opt/csw/lib/svc/method/svc-cswvixiecron stop' timeout_seconds='30'>
+      <method_context/>
+    </exec_method>
+    <instance name='default' enabled='true'>
+      <property_group name='general' type='framework'>
+        <propval name='package' type='astring' value='CSWvixiecron'/>
+      </property_group>
+    </instance>
+  </service>
+</service_bundle>

Added: csw/mgar/pkg/vixiecron/trunk/files/gar-vixiecron_3.0pl1.patch
===================================================================
--- csw/mgar/pkg/vixiecron/trunk/files/gar-vixiecron_3.0pl1.patch	                        (rev 0)
+++ csw/mgar/pkg/vixiecron/trunk/files/gar-vixiecron_3.0pl1.patch	2009-03-23 16:31:35 UTC (rev 3880)
@@ -0,0 +1,268 @@
+diff -ur cron-3.0pl1.orig-solaris/compat.c cron-3.0pl1.orig/compat.c
+--- cron-3.0pl1.orig-solaris/compat.c	2009-03-12 13:30:53.000000000 +0000
++++ cron-3.0pl1.orig/compat.c	2009-03-12 15:10:44.820233050 +0000
+@@ -33,6 +33,8 @@
+ #endif
+ #include <errno.h>
+ 
++#include <sys/types.h>
++#include <sys/stat.h>
+ 
+ /* the code does not depend on any of vfork's
+  * side-effects; it just uses it as a quick
+@@ -85,8 +87,8 @@
+ #ifdef NEED_STRCASECMP
+ int
+ strcasecmp(left, right)
+-	char	*left;
+-	char	*right;
++	const char	*left;
++	const char	*right;
+ {
+ 	while (*left && (MkLower(*left) == MkLower(*right))) {
+ 		left++;
+@@ -236,3 +238,13 @@
+ 	return putenv(tmp);	/* intentionally orphan 'tmp' storage */
+ }
+ #endif
++
++/* Solaris 10 is missing mkdtemp */
++char *mkdtemp(char *template)
++{
++        if (!mktemp(template) || mkdir(template, 0700))
++                return NULL;
++        return template;
++}
++
++
+diff -ur cron-3.0pl1.orig-solaris/compat.h cron-3.0pl1.orig/compat.h
+--- cron-3.0pl1.orig-solaris/compat.h	2009-03-12 13:30:53.000000000 +0000
++++ cron-3.0pl1.orig/compat.h	2009-03-12 15:20:37.912499900 +0000
+@@ -63,7 +63,8 @@
+ 
+ #ifndef POSIX
+ # if (BSD >= 199103) || defined(__linux__) || defined(__GNU__) || defined(ultrix) ||\
+-        defined(AIX) ||\ defined(HPUX) || defined(CONVEX) || defined(IRIX) || defined(__GLIBC__)
++        defined(AIX) ||\
++defined(HPUX) || defined(CONVEX) || defined(IRIX) || defined(__GLIBC__)
+ #  define POSIX
+ # endif
+ #endif
+@@ -86,7 +87,7 @@
+ #endif
+ 
+ #if (!defined(BSD) || (BSD < 198911)) && !defined(__linux__) &&\
+-	!defined(IRIX) && !defined(UNICOS) && !defined(HPUX) && !defined(__GNU__) && !defined(__GLIBC__)
++	!defined(IRIX) && !defined(UNICOS) && !defined(HPUX) && !defined(__GNU__) && !defined(__GLIBC__) && !defined(__SUNPRO_C)
+ # define NEED_STRDUP
+ #endif
+ 
+@@ -110,7 +111,7 @@
+ # define HAVE_SAVED_UIDS
+ #endif
+ 
+-#if !defined(ATT) && !defined(__linux__) && !defined(__GNU__) && !defined(IRIX) && !defined(UNICOS) && !defined(__GLIBC__)
++        #if !defined(ATT) && !defined(__linux__) && !defined(__GNU__) && !defined(IRIX) && !defined(UNICOS) && !defined(__GLIBC__) && !defined(__SUNPRO_C)
+ # define USE_SIGCHLD
+ #endif
+ 
+Only in cron-3.0pl1.orig: compat.o
+Only in cron-3.0pl1.orig: cron
+diff -ur cron-3.0pl1.orig-solaris/cron.c cron-3.0pl1.orig/cron.c
+--- cron-3.0pl1.orig-solaris/cron.c	2009-03-12 13:30:53.000000000 +0000
++++ cron-3.0pl1.orig/cron.c	2009-03-12 15:09:25.251653050 +0000
+@@ -401,7 +401,7 @@
+ 
+ #ifdef USE_SIGCHLD
+ static void
+-sigchld_handler(x) {
++sigchld_handler(int x) {
+ 	int save_errno = errno;
+ 	WAIT_T		waiter;
+ 	PID_T		pid;
+@@ -435,7 +435,7 @@
+ 
+ 
+ static void
+-sighup_handler(x) {
++sighup_handler(int x) {
+ 	log_close();
+ 
+ 	/* we should use sigaction for proper signal blocking as this 
+diff -ur cron-3.0pl1.orig-solaris/cron.h cron-3.0pl1.orig/cron.h
+--- cron-3.0pl1.orig-solaris/cron.h	2009-03-12 13:30:53.000000000 +0000
++++ cron-3.0pl1.orig/cron.h	2009-03-12 15:19:14.122628700 +0000
+@@ -32,7 +32,7 @@
+ 
+ #include <stdio.h>
+ #include <ctype.h>
+-#include <bitstring.h>
++#include "bitstring.h"
+ #include <pwd.h>
+ #include <sys/wait.h>
+ 
+Only in cron-3.0pl1.orig: cron.o
+Only in cron-3.0pl1.orig: crontab
+Only in cron-3.0pl1.orig: crontab.o
+Only in cron-3.0pl1.orig: database.o
+Only in cron-3.0pl1.orig: do_command.o
+Only in cron-3.0pl1.orig: entry.o
+Only in cron-3.0pl1.orig: env.o
+diff -ur cron-3.0pl1.orig-solaris/externs.h cron-3.0pl1.orig/externs.h
+--- cron-3.0pl1.orig-solaris/externs.h	2009-03-12 13:30:53.000000000 +0000
++++ cron-3.0pl1.orig/externs.h	2009-03-12 13:35:46.000000000 +0000
+@@ -116,11 +116,11 @@
+ #endif
+ 
+ #ifdef NEED_STRCASECMP
+-extern	int		strcasecmp __P((char *, char *));
++extern	int		strcasecmp __P((const char *, const char *));
+ #endif
+ 
+ #ifdef NEED_STRDUP
+-extern	char		*strdup __P((char *));
++extern	char		*strdup __P((const char *));
+ #endif
+ 
+ #ifdef NEED_STRERROR
+Only in cron-3.0pl1.orig: job.o
+diff -ur cron-3.0pl1.orig-solaris/Makefile cron-3.0pl1.orig/Makefile
+--- cron-3.0pl1.orig-solaris/Makefile	2009-03-12 13:30:53.000000000 +0000
++++ cron-3.0pl1.orig/Makefile	2009-03-12 17:39:22.971233150 +0000
+@@ -47,7 +47,7 @@
+ 
+ #################################### begin configurable stuff
+ #<<DESTROOT is assumed to have ./etc, ./bin, and ./man subdirectories>>
+-DESTROOT	=	$(DESTDIR)/usr
++DESTROOT	=	$(DESTDIR)/opt/csw
+ DESTSBIN	=	$(DESTROOT)/sbin
+ DESTBIN		=	$(DESTROOT)/bin
+ DESTMAN		=	$(DESTROOT)/share/man
+@@ -57,7 +57,7 @@
+ #<<need getopt()>>
+ LIBS		= $(PAM_LIBS) $(SELINUX_LIBS) $(AUDIT_LIBS)
+ #<<optimize or debug?>>
+-OPTIM		=	-O2
++#OPTIM		=	-O2
+ #OPTIM		=	-g
+ #<<ATT or BSD or POSIX?>>
+ # (ATT untested)
+@@ -74,12 +74,12 @@
+ # Allow override from command line
+ DEBUG_DEFS = -DDEBUGGING=0   
+ # The -DUSE_SIGCHLD is needed for the Alpha port
+-DEFS = -DDEBIAN -DUSE_SIGCHLD $(DEBUG_DEFS) $(PAM_DEFS) $(SELINUX_DEFS)
++#DEFS = -DDEBIAN -DUSE_SIGCHLD $(DEBUG_DEFS) $(PAM_DEFS) $(SELINUX_DEFS)
+ #(SGI IRIX systems need this)
+ #DEFS		=	-D_BSD_SIGNALS -Dconst=
+ #<<the name of the BSD-like install program>>
+ #INSTALL = installbsd
+-INSTALL = install -s
++INSTALL = ginstall -s
+ #<<any special load flags>>
+ # LDFLAGS		=	-s
+ # Let install do the strip
+@@ -87,7 +87,7 @@
+ #################################### end configurable stuff
+ 
+ SHELL		=	/bin/sh
+-CFLAGS		=	$(OPTIM) $(INCLUDE) $(COMPAT) $(DEFS)
++# CFLAGS		=	$(OPTIM) $(INCLUDE) $(COMPAT) $(DEFS)
+ 
+ INFOS		=	README CHANGES FEATURES INSTALL CONVERSION THANKS MAIL
+ MANPAGES	=	bitstring.3 crontab.5 crontab.1 cron.8 putman.sh
+@@ -118,8 +118,8 @@
+ 			$(CC) $(LDFLAGS) -o crontab $(CRONTAB_OBJ) $(LIBS)
+ 
+ install		:	all
+-			$(INSTALL) -c -m  755 -o root cron    $(DESTSBIN)/
+-			$(INSTALL) -c -m 4755 -o root crontab $(DESTBIN)/
++			$(INSTALL) -c -m  755 cron    $(DESTSBIN)/
++			$(INSTALL) -c -m 2755 crontab $(DESTBIN)/
+ 			sh putman.sh crontab.1 $(DESTMAN)
+ 			sh putman.sh cron.8    $(DESTMAN)
+ 			sh putman.sh crontab.5 $(DESTMAN)
+diff -ur cron-3.0pl1.orig-solaris/misc.c cron-3.0pl1.orig/misc.c
+--- cron-3.0pl1.orig-solaris/misc.c	2009-03-12 13:30:53.000000000 +0000
++++ cron-3.0pl1.orig/misc.c	2009-03-12 13:38:43.000000000 +0000
+@@ -42,6 +42,7 @@
+ # include <syslog.h>
+ #endif
+ 
++#include <sys/file.h>
+ 
+ #if defined(LOG_DAEMON) && !defined(LOG_CRON)
+ #define LOG_CRON LOG_DAEMON
+@@ -277,7 +278,8 @@
+ 			exit(ERROR_EXIT);
+ 		}
+ 
+-		if (flock(fd, LOCK_EX|LOCK_NB) < OK) {
++                /* This bit originally used flock(), switched to lockf() */
++		if (lockf(fd, F_TLOCK, 0) < OK) {
+ 			int save_errno = errno;
+ 
+ 			fscanf(fp, "%d", &otherpid);
+Only in cron-3.0pl1.orig: misc.o
+diff -ur cron-3.0pl1.orig-solaris/popen.c cron-3.0pl1.orig/popen.c
+--- cron-3.0pl1.orig-solaris/popen.c	2009-03-12 13:30:53.000000000 +0000
++++ cron-3.0pl1.orig/popen.c	2009-03-12 16:04:25.829649200 +0000
+@@ -35,6 +35,10 @@
+ #  include <grp.h>
+ #endif
+ 
++#include<string.h>
++#include<strings.h>
++#include<sys/types.h>
++#include<sys/stat.h>
+ 
+ #define MAX_ARGS 100
+ #define WANT_GLOBBING 0
+@@ -167,9 +171,12 @@
+ 	FILE *iop;
+ {
+ 	register int fdes;
+-	int omask;
+ 	WAIT_T stat_loc;
+ 	PID_T pid;
++        /*
++         * http://www.phys.ufl.edu/docs/porting-faq.html
++         */
++        sigset_t block, oblock;
+ 
+ 	/*
+ 	 * pclose returns -1 if stream is not associated with a
+@@ -178,10 +185,20 @@
+ 	if (pids == 0 || pids[fdes = fileno(iop)] == 0)
+ 		return(-1);
+ 	(void)fclose(iop);
+-	omask = sigblock(sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGHUP));
++        /*
++         * omask = sigblock(sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGHUP));
++         */
++        (void)sigemptyset(&block);
++        (void)sigaddset(&block, SIGINT | SIGQUIT | SIGHUP);
++        if (sigprocmask(SIG_BLOCK, &block, &oblock) < 0)
++                log_it("CRON", getpid(), "error", "sigprocmask")
++                ;
+ 	while ((pid = wait(&stat_loc)) != pids[fdes] && pid != -1)
+ 		;
+-	(void)sigsetmask(omask);
++        /*
++         * (void)sigsetmask(omask);
++         */
++        (void)sigprocmask(SIG_SETMASK, &oblock, (sigset_t *)NULL);
+ 	pids[fdes] = 0;
+ 	return (pid == -1 ? -1 : WEXITSTATUS(stat_loc));
+ }
+Only in cron-3.0pl1.orig: popen.o
+diff -ur cron-3.0pl1.orig-solaris/putman.sh cron-3.0pl1.orig/putman.sh
+--- cron-3.0pl1.orig-solaris/putman.sh	1994-09-01 20:17:17.000000000 +0000
++++ cron-3.0pl1.orig/putman.sh	2009-03-12 20:04:07.194853350 +0000
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ 
+ # putman.sh - install a man page according to local custom
+ # vixie 27dec93 [original]
+Only in cron-3.0pl1.orig: user.o

Added: csw/mgar/pkg/vixiecron/trunk/files/run-crons-0.3.2
===================================================================
--- csw/mgar/pkg/vixiecron/trunk/files/run-crons-0.3.2	                        (rev 0)
+++ csw/mgar/pkg/vixiecron/trunk/files/run-crons-0.3.2	2009-03-23 16:31:35 UTC (rev 3880)
@@ -0,0 +1,108 @@
+#!/bin/bash
+# 
+# $Id$
+#
+# File copied from Gentoo portage, package sys-process/cronbase.
+#
+# $Header: /var/cvsroot/gentoo-x86/sys-process/cronbase/files/run-crons-0.3.2,v 1.2 2007/06/24 20:23:45 vapier Exp $
+#
+# 08 Mar 2005; Aaron Walker <ka0ttic at gentoo.org> run-crons:
+#     Ignore the error messages from find caused by race conditions, since
+#     we could care less about the error as long as the file has been removed.
+#     See bug 8506.
+#
+# 06 May 2004; Aron Griffis <agriffis at gentoo.org> run-crons:
+#     Make the locking actually work.  The old code was racy.
+#     Thanks to Mathias Gumz in bug 45155 for some cleanups.
+#
+# 23 Jun 2002; Jon Nelson <jnelson at gentoo.org> run-crons:
+#     fixed a race condition, where cron jobs and run-crons wanted to
+#     delete touch files
+#
+# 20 Apr 2002; Thilo Bangert <bangert at gentoo.org> run-crons:
+#     moved lastrun directory to /var/spool/cron/lastrun
+#
+# Author: Achim Gottinger <achim at gentoo.org>
+#
+# Mostly copied from SuSE
+#
+# this script looks into /etc/cron.[hourly|daily|weekly|monthly]
+# for scripts to be executed. The info about last run is stored in
+# /var/spool/cron/lastrun
+
+LOCKDIR=/var/spool/cron/lastrun
+LOCKFILE=${LOCKDIR}/lock
+
+mkdir -p ${LOCKDIR}
+
+# Make sure we're not running multiple instances at once.
+# Try twice to lock, otherwise give up.
+for ((i = 0; i < 2; i = i + 1)); do
+	ln -sn $$ ${LOCKFILE} 2>/dev/null && break
+
+	# lock failed, check for a running process.
+	# handle both old- and new-style locking.
+	cronpid=$(readlink ${LOCKFILE} 2>/dev/null) ||
+	cronpid=$(cat ${LOCKFILE} 2>/dev/null) ||
+	continue	# lockfile disappeared? try again
+
+	# better than kill -0 because we can verify that it's really
+	# another run-crons process
+	if [[ $(</proc/${cronpid}/cmdline) == $(</proc/$$/cmdline) ]] 2>/dev/null; then
+		# whoa, another process is really running
+		exit 0
+	else
+		rm -f ${LOCKFILE}
+	fi
+done
+
+# Check to make sure locking was successful
+if [[ ! -L ${LOCKFILE} ]]; then
+	echo "Can't create or read existing ${LOCKFILE}, giving up"
+	exit 1
+fi
+
+# Set a trap to remove the lockfile when we're finished
+trap "rm -f ${LOCKFILE}" 0 1 2 3 15
+
+
+for BASE in hourly daily weekly monthly ; do
+	CRONDIR=/etc/cron.${BASE}
+
+	test -d $CRONDIR || continue
+
+	if [ -e ${LOCKDIR}/cron.$BASE ] ; then
+		case $BASE in
+		hourly)
+			#>= 1 hour, 5 min -=> +65 min
+			TIME="-cmin +65" ;;
+		daily)
+			#>= 1 day, 5 min -=> +1445 min
+			TIME="-cmin +1445"  ;;
+		weekly)
+			#>= 1 week, 5 min -=> +10085 min
+			TIME="-cmin +10085"  ;;
+		monthly)
+			#>= 31 days, 5 min -=> +44645 min
+			TIME="-cmin +44645" ;;
+		esac
+
+		find ${LOCKDIR} -name cron.$BASE $TIME -exec rm {} \; &>/dev/null || true
+	fi
+
+	# if there is no touch file, make one then run the scripts
+	if [ ! -e ${LOCKDIR}/cron.$BASE ] ; then
+		touch ${LOCKDIR}/cron.$BASE
+
+		set +e
+		for SCRIPT in $CRONDIR/* ; do
+			if [[ -x $SCRIPT && ! -d $SCRIPT ]]; then
+				$SCRIPT
+			fi
+		done
+	fi
+done
+
+# Clean out bogus cron.$BASE files with future times
+touch ${LOCKDIR}
+find ${LOCKDIR} -newer ${LOCKDIR} -exec /bin/rm -f {} \; &>/dev/null || true

Added: csw/mgar/pkg/vixiecron/trunk/files/svc-cswvixiecron
===================================================================
--- csw/mgar/pkg/vixiecron/trunk/files/svc-cswvixiecron	                        (rev 0)
+++ csw/mgar/pkg/vixiecron/trunk/files/svc-cswvixiecron	2009-03-23 16:31:35 UTC (rev 3880)
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# $Id$
+
+case "$1" in
+  start)
+    /opt/csw/sbin/cron -l
+    ;;
+
+  stop)
+    /usr/bin/pkill -z `zonename` '^cron$'
+    ;;
+  *)
+    echo "Usage: $0 { start | stop }"
+    exit 1
+    ;;
+esac


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list