ports/88883: sysutils/fcron

Brad Huntting huntting at hunkular.glarp.com
Sat Nov 12 11:40:09 UTC 2005


>Number:         88883
>Category:       ports
>Synopsis:       sysutils/fcron
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Nov 12 11:40:08 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Brad Huntting
>Release:        FreeBSD 6.0-RELEASE i386
>Organization:
improving
>Environment:
System: FreeBSD hunkular.glarp.com 6.0-RELEASE FreeBSD 6.0-RELEASE #0: Thu Nov 3 09:36:13 UTC 2005 root at x64.samsco.home:/usr/obj/usr/src/sys/GENERIC i386

>Description:
	fcron crashes with the syslog message 'select return 22:
	Invalid argument' (22 is errno EINVAL).

	A cursory inspection indicates the broken select(2) call
	is only compiled when the fcrondyn feature is enabled.
	Until this newer code is cleaned up and fixed, the safest
	course would seem to be to disable it altogether.

>How-To-Repeat:
	Compile and install on 6.0-RELEASE.  Run with roots fcrontab:

		SHELL=/bin/sh
		PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
		HOME=/var/log
		#
		@nolog,serial,lavg(.5,.5,1.5) 5 /usr/libexec/atrun
		%nolog,hourly *	newsyslog
		%daily,serial,lavg(.2,.2,.2) * * periodic daily
		%weekly,serial,lavg(.2,.2,.2) * * periodic weekly
		%monthly,serial,lavg(.2,.2,.2) * * * periodic monthly

	fcron should log the following message after running for
	a few (<24) hours:

		Nov  7 09:35:30 hunkular fcron[1238]: select return 22: Invalid argument
		Nov  7 09:35:30 hunkular fcron[1238]: Aborted

>Fix:
	Disabling fcrondyn appears to fix the problem.

	Also, removed the unnessesary patch file for configure and
	the USE_PERL5_BUILD directive as perl is no longer used for
	installation.

	I've tested the build on 4.10-RELEASE, 5.4-RELEASE and
	6.0-RELEASE, and have run the patched version on 6.0-RELEASE
	for a couple days on two different machines w/o incident.

	The following patch was created with:
		diff -Nru /usr/ports/sysutils/fcron ~/src/fcron

------------------------------ cut here ------------------------------
diff -Nru /usr/ports/sysutils/fcron/Makefile /host/pernicious.glarp.com/home/huntting/src/fcron/Makefile
--- /usr/ports/sysutils/fcron/Makefile	Sun Oct 23 03:27:20 2005
+++ /host/pernicious.glarp.com/home/huntting/src/fcron/Makefile	Thu Nov 10 01:03:38 2005
@@ -8,7 +8,7 @@
 
 PORTNAME=	fcron
 PORTVERSION=	3.0.0
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	sysutils
 MASTER_SITES=	${MASTER_SITE_SUNSITE} \
 		http://fcron.free.fr/
@@ -20,17 +20,16 @@
 
 GNU_CONFIGURE=	yes
 USE_GMAKE=	yes
-USE_PERL5_BUILD=	yes
 CONFIGURE_ARGS=	--with-etcdir=${PREFIX}/etc --with-cflags="${CFLAGS}" \
 		--with-rootname=root --with-rootgroup=wheel \
-		--with-docdir=${DOCSDIR}
+		--with-docdir=${DOCSDIR} --with-fcrondyn=no
 
 WRKSRC=		${WRKDIR}/fcron-${PORTVERSION}
 
 USE_RC_SUBR=	fcron
 SUB_FILES=	pkg-message
 
-MAN1=		fcrondyn.1 fcrontab.1
+MAN1=		fcrontab.1
 MAN5=		fcron.conf.5 fcrontab.5
 MAN8=		fcron.8
 
@@ -43,7 +42,6 @@
 	${INSTALL_PROGRAM} ${WRKSRC}/fcron ${PREFIX}/sbin
 	${INSTALL_PROGRAM} -g fcron -o fcron -m 6111 ${WRKSRC}/fcrontab ${PREFIX}/bin
 	${INSTALL_PROGRAM} -g fcron -m 4110 ${WRKSRC}/fcronsighup ${PREFIX}/bin
-	${INSTALL_PROGRAM} -g fcron -o fcron -m 6111 ${WRKSRC}/fcrondyn ${PREFIX}/bin
 .for f in fcron.allow fcron.conf fcron.deny
 	${INSTALL_DATA} -g fcron -m 640 ${WRKSRC}/files/${f} ${PREFIX}/etc/${f}.dist
 .endfor
diff -Nru /usr/ports/sysutils/fcron/files/patch-configure /host/pernicious.glarp.com/home/huntting/src/fcron/files/patch-configure
--- /usr/ports/sysutils/fcron/files/patch-configure	Tue Oct  4 11:54:23 2005
+++ /host/pernicious.glarp.com/home/huntting/src/fcron/files/patch-configure	Wed Dec 31 17:00:00 1969
@@ -1,20 +0,0 @@
---- configure.orig	Tue Oct  4 18:39:16 2005
-+++ configure	Tue Oct  4 18:42:04 2005
-@@ -11767,17 +11767,9 @@
-     fi
-     ;;
-   *)
--    if test -d "$withval"; then
-       etcdir="$withval"
-       echo "$as_me:$LINENO: result: $withval" >&5
- echo "${ECHO_T}$withval" >&6
--    else
--      { { echo "$as_me:$LINENO: error:
--Directory $withval does not exist" >&5
--echo "$as_me: error:
--Directory $withval does not exist" >&2;}
--   { (exit 1); exit 1; }; }
--    fi
-     ;;
-   esac
- else
diff -Nru /usr/ports/sysutils/fcron/pkg-plist /host/pernicious.glarp.com/home/huntting/src/fcron/pkg-plist
--- /usr/ports/sysutils/fcron/pkg-plist	Tue Oct  4 11:54:23 2005
+++ /host/pernicious.glarp.com/home/huntting/src/fcron/pkg-plist	Thu Nov 10 01:04:26 2005
@@ -1,4 +1,3 @@
-bin/fcrondyn
 bin/fcronsighup
 bin/fcrontab
 etc/fcron.allow.dist
------------------------------ cut here ------------------------------
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list