Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Jan 2007 09:40:21 -0700 (MST)
From:      Brad Huntting <huntting@hunkular.glarp.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/107993: sysutils/fcron
Message-ID:  <200701161640.l0GGeLLL001938@hunkular.glarp.com>
Resent-Message-ID: <200701161700.l0GH0Whq088299@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         107993
>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:   Tue Jan 16 17:00:31 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Brad Huntting
>Release:        FreeBSD 6.2-RC1 i386
>Organization:
>Environment:
System: FreeBSD hunkular.glarp.com 6.2-RC1 FreeBSD 6.2-RC1 #0: Sat Nov 18 21:05:22 MST 2006 root@:/usr/src/sys/i386/compile/HUNKULAR i386


>Description:
	Upgrade to fcron stable version 3.0.2.

	Find below 3 diffs: one for /usr/ports/sysutils/fcron/, one
	for /usr/ports/UIDs and one for /usr/ports/GIDs.

	Details:

	All of the FreeBSD port patches have been rolled into the
	latested fcron distribution.  As a result, all the patch
	files should be removed (I used diff -ruN to generate the
	first diff below)

		rm sysutils/fcron/files/patch-config.h.in
		rm sysutils/fcron/files/patch-configure.in
		rm sysutils/fcron/files/patch-fcrondyn.c
		rm sysutils/fcron/files/patch-socket.c

	In addition, fcron 3.0.2 now calls setuid() before exec()ing
	new cron jobs.  This is the behaviour of Vixie cron, SysV
	cron, old BSD cron, etc, etc.

	In addition to the port patch, there are two patches for
	the UIDs and GIDs files which add fcron's default UID/GID
	(247/247).

	Lastly, the install script now adds the fcron pseudo-user
	with shell /sbin/nologin.

>How-To-Repeat:
	
>Fix:

diff -ruN /usr/ports/sysutils/fcron/Makefile sysutils/fcron/Makefile
--- /usr/ports/sysutils/fcron/Makefile	Sun Jun  4 15:24:06 2006
+++ sysutils/fcron/Makefile	Mon Jan 15 19:18:27 2007
@@ -7,7 +7,7 @@
 #
 
 PORTNAME=	fcron
-PORTVERSION=	3.0.1
+PORTVERSION=	3.0.2
 PORTREVISION=	1
 CATEGORIES=	sysutils
 MASTER_SITES=	${MASTER_SITE_SUNSITE} \
@@ -21,7 +21,6 @@
 
 GNU_CONFIGURE=	yes
 USE_GMAKE=	yes
-USE_AUTOTOOLS=	autoconf:259
 USE_PERL5_BUILD=yes
 CONFIGURE_ARGS=	--with-etcdir=${PREFIX}/etc --with-cflags="${CFLAGS}" \
 		--with-rootname=root --with-rootgroup=wheel \
@@ -37,7 +36,7 @@
 MAN8=		fcron.8
 
 PAMDIR?=	/etc/pam.d
-PLIST_SUB+=	PAMDIR=${PAMDIR}
+PLIST_SUB+=	PAMDIR=etc/pam.d
 
 PORTDOCS=	*
 
diff -ruN /usr/ports/sysutils/fcron/distinfo sysutils/fcron/distinfo
--- /usr/ports/sysutils/fcron/distinfo	Fri Feb 10 02:51:04 2006
+++ sysutils/fcron/distinfo	Mon Jan 15 18:19:46 2007
@@ -1,3 +1,3 @@
-MD5 (fcron-3.0.1.src.tar.gz) = 8e5dcb3a646c11294294895954ef0a48
-SHA256 (fcron-3.0.1.src.tar.gz) = 31288b04619bb9c7cd5fe6ff004c1e2c1340685cec2d0fa8725259c491699de9
-SIZE (fcron-3.0.1.src.tar.gz) = 536972
+MD5 (fcron-3.0.2.src.tar.gz) = f35e6af41d356ebcb38882f86a14fb94
+SHA256 (fcron-3.0.2.src.tar.gz) = ea25f4e9a78f6872c65cc97aa18c018b548e9fcd73b06d77c312e635ecf9ad48
+SIZE (fcron-3.0.2.src.tar.gz) = 540559
Binary files /usr/ports/sysutils/fcron/fcron-3.0.2_1.tbz and sysutils/fcron/fcron-3.0.2_1.tbz differ
diff -ruN /usr/ports/sysutils/fcron/files/patch-config.h.in sysutils/fcron/files/patch-config.h.in
--- /usr/ports/sysutils/fcron/files/patch-config.h.in	Sun Jun  4 14:09:42 2006
+++ sysutils/fcron/files/patch-config.h.in	Wed Dec 31 17:00:00 1969
@@ -1,8 +0,0 @@
---- config.h.in.orig	Mon Feb  6 14:44:52 2006
-+++ config.h.in	Tue May  9 17:15:19 2006
-@@ -424,3 +424,5 @@
- #define O_SYNC O_FSYNC
- #endif
- 
-+/* Define if (struct sockaddr) has an sa_len field.  */
-+#undef HAVE_SA_LEN
diff -ruN /usr/ports/sysutils/fcron/files/patch-configure.in sysutils/fcron/files/patch-configure.in
--- /usr/ports/sysutils/fcron/files/patch-configure.in	Sun Jun  4 14:09:42 2006
+++ sysutils/fcron/files/patch-configure.in	Wed Dec 31 17:00:00 1969
@@ -1,20 +0,0 @@
---- configure.in.orig	Mon Jan  9 17:21:24 2006
-+++ configure.in	Tue May  9 17:04:30 2006
-@@ -57,6 +57,17 @@
- AC_STRUCT_TM
- AC_TYPE_UID_T
- 
-+dnl Check for post-Reno style struct sockaddr
-+AC_CACHE_CHECK([for sa_len],
-+  ac_cv_sa_len,
-+[AC_TRY_COMPILE([#include <sys/types.h>
-+#include <sys/socket.h>], [int main(void) {
-+ struct sockaddr t;t.sa_len = 0;}],
-+  ac_cv_sa_len=yes,ac_cv_sa_len=no)])
-+if test $ac_cv_sa_len = yes; then
-+  AC_DEFINE(HAVE_SA_LEN)
-+fi
-+
- dnl Checks for library functions.
- AC_PROG_GCC_TRADITIONAL
- AC_FUNC_MEMCMP
diff -ruN /usr/ports/sysutils/fcron/files/patch-fcrondyn.c sysutils/fcron/files/patch-fcrondyn.c
--- /usr/ports/sysutils/fcron/files/patch-fcrondyn.c	Sun Jun  4 14:09:42 2006
+++ sysutils/fcron/files/patch-fcrondyn.c	Wed Dec 31 17:00:00 1969
@@ -1,29 +0,0 @@
---- fcrondyn.c.orig	Mon Feb  6 14:44:52 2006
-+++ fcrondyn.c	Tue May  9 15:24:22 2006
-@@ -399,17 +399,21 @@
-     int fd = -1;
-     struct sockaddr_un addr;
-     int len = 0;
-+    int sa_len;
- 
-     if ( (fd = socket(PF_UNIX, SOCK_STREAM, 0)) == -1 )
- 	die_e("could not create socket");
- 
-     addr.sun_family = AF_UNIX;
--    if ( (len = strlen(fifofile)) > sizeof(addr.sun_path) )
--	die("Error : fifo file path too long (max is %d)", sizeof(addr.sun_path));
--    strncpy(addr.sun_path, fifofile, sizeof(addr.sun_path) - 1);
--    addr.sun_path[sizeof(addr.sun_path)-1] = '\0';
-+    if ( (len = strlen(fifofile)) > sizeof(addr.sun_path) - 1 )
-+	die("Error : fifo file path too long (max is %d)", sizeof(addr.sun_path) - 1);
-+    strncpy(addr.sun_path, fifofile, sizeof(addr.sun_path));
-+    sa_len = (addr.sun_path - (char *)&addr) + len;
-+#if HAVE_SA_LEN
-+    addr.sun_len = sa_len;
-+#endif
- 
--    if ( connect(fd, (struct sockaddr *) &addr, sizeof(addr.sun_family) + len) < 0 )
-+    if ( connect(fd, (struct sockaddr *) &addr, sa_len) < 0 )
- 	die_e("Cannot connect() to fcron (check if fcron is running)");
- 
-     if ( authenticate_user(fd) == ERR ) {
diff -ruN /usr/ports/sysutils/fcron/files/patch-socket.c sysutils/fcron/files/patch-socket.c
--- /usr/ports/sysutils/fcron/files/patch-socket.c	Sun Jun  4 14:09:42 2006
+++ sysutils/fcron/files/patch-socket.c	Wed Dec 31 17:00:00 1969
@@ -1,34 +0,0 @@
---- socket.c.orig	Mon Feb  6 14:44:52 2006
-+++ socket.c	Tue May  9 16:33:19 2006
-@@ -134,6 +134,7 @@
- {
-     struct sockaddr_un addr;
-     int len = 0;
-+    int sa_len;
- 
-     /* used in fcron.c:main_loop():select() */
-     FD_ZERO(&read_set);
-@@ -145,15 +146,19 @@
-     }
- 
-     addr.sun_family = AF_UNIX;
--    if ( (len = strlen(fifofile)) > sizeof(addr.sun_path) ) {
--	error("Error : fifo file path too long (max is %d)", sizeof(addr.sun_path));
-+    if ( (len = strlen(fifofile)) > sizeof(addr.sun_path) - 1) {
-+	error("Error : fifo file path too long (max is %d)", sizeof(addr.sun_path) - 1);
- 	goto err;
-     }
--    strncpy(addr.sun_path, fifofile, sizeof(addr.sun_path) - 1);
-+    strncpy(addr.sun_path, fifofile, sizeof(addr.sun_path));
-     addr.sun_path[sizeof(addr.sun_path) -1 ] = '\0';
-+    sa_len = (addr.sun_path - (char *)&addr) + len;
-+#if HAVE_SA_LEN
-+    addr.sun_len = sa_len;
-+#endif
- 
-     unlink(fifofile);
--    if (bind(listen_fd, (struct sockaddr*) &addr, sizeof(addr.sun_family)+len+1) != 0){
-+    if (bind(listen_fd, (struct sockaddr*) &addr, sa_len) != 0){
- 	error_e("Cannot bind socket to '%s'", fifofile);
- 	goto err;
-     }
diff -ruN /usr/ports/sysutils/fcron/pkg-install sysutils/fcron/pkg-install
--- /usr/ports/sysutils/fcron/pkg-install	Fri Feb 10 02:51:04 2006
+++ sysutils/fcron/pkg-install	Mon Jan 15 18:30:53 2007
@@ -21,7 +21,7 @@
 	if /usr/sbin/pw usershow $user 2>/dev/null; then
 		echo "Using already existing user \"$user\"."
 	else
-		if /usr/sbin/pw useradd $user -u $uid -g $group -c "fcron pseudo-user"; then
+		if /usr/sbin/pw useradd $user -u $uid -g $group -s /sbin/nologin -c "fcron pseudo-user"; then
 			echo "Added user \"$user\"."
 		else
 			echo "Unable to add user \"$user\"."


diff -u /usr/ports/UIDs	UIDs
--- /usr/ports/UIDs	Sun Jan 14 00:22:44 2007
+++ UIDs	Mon Jan 15 18:29:15 2007
@@ -75,6 +75,7 @@
 dspam:*:202:202:Dspam:/nonexistent:/sbin/nologin
 shoutcast:*:210:210:Shoutcast sandbox:/nonexistent:/bin/sh
 bs:*:220:220:Big Sister:/usr/local/bigsister:/bin/sh
+fcron:*:247:247:fcron pseudo-user:/nonexistent:/sbin/nologin
 _tor:*:256:256:Tor anonymising router:/var/db/tor:/bin/sh
 _dns-proxy-tor:*:257:257:dns-proxy-tor user:/nonexistent:/sbin/nologin
 _trans-proxy-tor:*:258:258:dns-proxy-tor user:/nonexistent:/sbin/nologin


diff -u /usr/ports/GIDs	GIDs
--- /usr/ports/GIDs	Sun Jan 14 00:22:43 2007
+++ GIDs	Mon Jan 15 18:28:02 2007
@@ -64,6 +64,7 @@
 sympa:*:200:
 dspam:*:202:
 bs:*:220:
+fcron:*:247:
 _tor:*:256:
 _dns-proxy-tor:*:257:
 _trans-proxy-tor:*:258:
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200701161640.l0GGeLLL001938>