Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Apr 2012 17:19:18 GMT
From:      Michael Graziano <mikeg@bsd-box.net>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/166587: Maintainer update: sysutils/radmind
Message-ID:  <201204021719.q32HJIoi027443@red.freebsd.org>
Resent-Message-ID: <201204021720.q32HK1Lj094969@freefall.freebsd.org>

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

>Number:         166587
>Category:       ports
>Synopsis:       Maintainer update: sysutils/radmind
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Apr 02 17:20:01 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Michael Graziano
>Release:        RELENG_8, RELENG_9
>Organization:
>Environment:
>Description:
This update addresses some minor issues reported with the radmind port, and brings it current with their latest git patches (edge-case functionality fixes).

As the release cycle for radmind is relatively infrequent and most users are running code built from git I've set PORTREVISION to the date patches were retrieved/generated from the radmind git repository.

Notable changes:
- Bogus syslog settings removed from default configuration
  (Fixes no-start condition in default installation)
- Example configuration file now included
  (Fixes no-start condition in default installation)
- New configuration option for the "ignore timestamps" patch

These changes have been tested internally on 8.1-RELEASE-p8, and submitted for external testing on 9.0 with no problems reported.
>How-To-Repeat:

>Fix:
Update patch attached

Patch attached with submission follows:

diff -urN gMakefile gMakefile
--- Makefile	2012-03-20 13:53:11.000000000 -0400
+++ Makefile	2012-03-21 15:58:01.000000000 -0400
@@ -7,6 +7,7 @@
 
 PORTNAME=	radmind
 PORTVERSION=	1.14.1
+PORTREVISION=	2012032001
 CATEGORIES=	sysutils
 MASTER_SITES=	SF
 MASTER_SITE_SUBDIR=${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION}
@@ -36,6 +37,14 @@
 MAN8=		radmind.8
 DOCS=		COPYRIGHT README SPEC
 
+OPTIONS=	IGNORE_TIMESTAMPS	"Add '-t' option to fsdiff"	Off
+
+.include <bsd.port.options.mk>
+
+.if defined(WITH_IGNORE_TIMESTAMPS)
+EXTRA_PATCHES+=	${FILESDIR}/optpatch-ignore_timestamps
+.endif
+
 post-install:
 # Ugly hack to remove generated man pages
 	${RM} -rf ${WRKSRC}/tmp
@@ -44,6 +53,10 @@
 	${MKDIR} ${DOCSDIR}
 	cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${DOCSDIR}
 .endif
+	${CP} ${FILESDIR}/config.sample ${RADMIND_BASE_DIR}/config.sample
+	@if [ ! -f ${RADMIND_BASE_DIR}/config ]; then \
+		${CP} -p ${RADMIND_BASE_DIR}/config.sample ${RADMIND_BASE_DIR}/config ; \
+	fi
 	@${CHOWN} -R ${RADMINUSER}:${RADMINUSER} ${RADMIND_BASE_DIR}
 	@${CAT} ${PKGMESSAGE}
 
diff -urN files/config.sample files/config.sample
--- files/config.sample	1969-12-31 19:00:00.000000000 -0500
+++ files/config.sample	2012-03-21 14:59:09.000000000 -0400
@@ -0,0 +1,8 @@
+# Example radmind configuration file.
+#
+#
+# Host			Command (.K) file.
+# localhost		default.K
+# 127.0.0.1		default.K
+######################################################
+
diff -urN files/optpatch-ignore_timestamps files/optpatch-ignore_timestamps
--- files/optpatch-ignore_timestamps	1969-12-31 19:00:00.000000000 -0500
+++ files/optpatch-ignore_timestamps	2012-03-21 15:45:48.000000000 -0400
@@ -0,0 +1,94 @@
+--- fsdiff.c.orig
++++ fsdiff.c
+@@ -33,6 +33,7 @@ int		dotfd;
+ int		lastpercent = -1;
+ int		case_sensitive = 1;
+ int		tran_format = -1; 
++int		ignore_timestamps = 0;
+ extern int	exclude_warnings;
+ const EVP_MD    *md;
+ 
+@@ -266,7 +267,7 @@ main( int argc, char **argv )
+     cksum = 0;
+     outtran = stdout;
+ 
+-    while (( c = getopt( argc, argv, "%1ACc:IK:o:VvW" )) != EOF ) {
++    while (( c = getopt( argc, argv, "%1ACc:IK:o:tVvW" )) != EOF ) {
+ 	switch( c ) {
+ 	case '%':
+ 	case 'v':
+@@ -320,6 +321,10 @@ main( int argc, char **argv )
+ 	    exclude_warnings = 1;
+ 	    break;
+ 
++	case 't':		/* ignore files for which only the time has changed */
++	    ignore_timestamps = 1;
++	break;
++
+ 	case '?':
+ 	    printf( "bad %c\n", c );
+ 	    errflag++;
+
+--- man/fsdiff.1.orig
++++ man/fsdiff.1
+@@ -11,7 +11,7 @@
+ |
+ .B -1
+ } [
+-.BI -IVW
++.BI -IVWt
+ ] [
+ .BI \-K\  command
+ ] [
+@@ -312,6 +312,9 @@ order of preference and then exits.
+ prints a warning to the standard error when encountering an object
+ matching an exclude pattern.
+ .sp
++.TP 19
++.B \-t
++ignores files where only the timestamp has changed.
+ .SH FILES
+ .TP 19
+ .B _RADMIND_COMMANDFILE
+
+--- transcript.c.orig
++++ transcript.c
+@@ -38,6 +38,7 @@ static struct transcript	*prev_tran = NULL;
+ extern int			edit_path;
+ extern int			case_sensitive;
+ extern int			tran_format;
++extern int			ignore_timestamps;
+ static char			*kdir;
+ static struct list		*kfile_list;
+ struct list			*special_list;
+@@ -45,6 +46,7 @@ struct list			*exclude_list;
+ 
+ char				*path_prefix = NULL;
+ int				edit_path;
++int				ignore_timestamps;
+ int				skip;
+ int				cksum;
+ int				fs_minus;
+@@ -544,14 +546,16 @@ t_compare( struct pathinfo *fs, struct transcript *tran )
+ 		    t_print( fs, tran, PR_DOWNLOAD );
+ 		    break;
+ 		}
+-	    } else if ( fs->pi_stat.st_mtime != tran->t_pinfo.pi_stat.st_mtime ) {
+-		t_print( fs, tran, PR_DOWNLOAD );
+-		break;
++	    } else if ( ignore_timestamps == 0 &&
++			fs->pi_stat.st_mtime != tran->t_pinfo.pi_stat.st_mtime) {
++		    t_print( fs, tran, PR_DOWNLOAD );
++		    break;
+ 	    }
+ 
+-	    if ( fs->pi_stat.st_mtime != tran->t_pinfo.pi_stat.st_mtime ) {
+-		t_print( fs, tran, PR_STATUS );
+-		break;
++	    if ( ignore_timestamps == 0 &&
++		 fs->pi_stat.st_mtime != tran->t_pinfo.pi_stat.st_mtime ) {
++		    t_print( fs, tran, PR_STATUS );
++		    break;
+ 	    }
+ 	}
+ 
diff -urN files/patch-.gitignore files/patch-.gitignore
--- files/patch-.gitignore	1969-12-31 19:00:00.000000000 -0500
+++ files/patch-.gitignore	2012-03-20 14:38:34.000000000 -0400
@@ -0,0 +1,17 @@
+--- ./.gitignore.orig	2010-12-12 22:42:49.000000000 -0500
++++ ./.gitignore	2012-03-20 14:37:54.000000000 -0400
+@@ -10,12 +10,8 @@
+ config.log
+ config.status
+ 
+-# External Libraries #
+-######################
+-libsnet
+-
+-# Comiled Files #
+-#################
++# Compiled Files #
++##################
+ *.o
+ fsdiff
+ ktcheck
diff -urN files/patch-Makefile.in files/patch-Makefile.in
--- files/patch-Makefile.in	1969-12-31 19:00:00.000000000 -0500
+++ files/patch-Makefile.in	2012-03-20 14:38:34.000000000 -0400
@@ -0,0 +1,50 @@
+--- ./Makefile.in.orig	2010-12-12 22:43:49.000000000 -0500
++++ ./Makefile.in	2012-03-20 14:37:54.000000000 -0400
+@@ -204,37 +204,37 @@
+ radmind : libsnet/libsnet.la ${RADMIND_OBJ} Makefile
+ 	${CC} ${CFLAGS} -o radmind ${RADMIND_OBJ} ${LDFLAGS}
+ 
+-fsdiff : ${FSDIFF_OBJ}
++fsdiff : libsnet/libsnet.la ${FSDIFF_OBJ}
+ 	${CC} ${CFLAGS} -o fsdiff ${FSDIFF_OBJ} ${LDFLAGS}
+ 
+-ktcheck: ${KTCHECK_OBJ}
++ktcheck: libsnet/libsnet.la ${KTCHECK_OBJ}
+ 	${CC} ${CFLAGS} -o ktcheck ${KTCHECK_OBJ} ${LDFLAGS}
+ 
+-lapply: ${LAPPLY_OBJ}
++lapply: libsnet/libsnet.la ${LAPPLY_OBJ}
+ 	${CC} ${CFLAGS} -o lapply ${LAPPLY_OBJ} ${LDFLAGS}
+ 
+-lcksum: ${LCKSUM_OBJ}
++lcksum: libsnet/libsnet.la ${LCKSUM_OBJ}
+ 	${CC} ${CFLAGS} -o lcksum ${LCKSUM_OBJ} ${LDFLAGS}
+ 
+-lcreate: ${LCREATE_OBJ}
++lcreate: libsnet/libsnet.la ${LCREATE_OBJ}
+ 	${CC} ${CFLAGS} -o lcreate ${LCREATE_OBJ} ${LDFLAGS}
+ 
+-lmerge: ${LMERGE_OBJ}
++lmerge: libsnet/libsnet.la ${LMERGE_OBJ}
+ 	${CC} ${CFLAGS} -o lmerge ${LMERGE_OBJ} ${LDFLAGS}
+ 
+-lfdiff: ${LFDIFF_OBJ}
++lfdiff: libsnet/libsnet.la ${LFDIFF_OBJ}
+ 	${CC} ${CFLAGS} -o lfdiff ${LFDIFF_OBJ} ${LDFLAGS}
+ 
+-repo : ${REPO_OBJ}
++repo: libsnet/libsnet.la ${REPO_OBJ}
+ 	${CC} ${CFLAGS} -o repo ${REPO_OBJ} ${LDFLAGS}
+ 
+ t2pkg: ${T2PKG_OBJ}
+ 	${CC} ${CFLAGS} -o t2pkg ${T2PKG_OBJ} ${LDFLAGS}
+ 
+-twhich: ${TWHICH_OBJ}
++twhich: libsnet/libsnet.la ${TWHICH_OBJ}
+ 	${CC} ${CFLAGS} -o twhich ${TWHICH_OBJ} ${LDFLAGS}
+ 
+-lsort: ${LSORT_OBJ}
++lsort: libsnet/libsnet.la ${LSORT_OBJ}
+ 	${CC} ${CFLAGS} -o lsort ${LSORT_OBJ} ${LDFLAGS}
+ 
+ FRC :
diff -urN files/patch-README files/patch-README
--- files/patch-README	1969-12-31 19:00:00.000000000 -0500
+++ files/patch-README	2012-03-20 14:38:34.000000000 -0400
@@ -0,0 +1,46 @@
+--- ./README.orig	2010-12-12 22:42:49.000000000 -0500
++++ ./README	2012-03-20 14:37:54.000000000 -0400
+@@ -72,25 +72,25 @@
+   % "env CPPFLAGS=-I/usr/kerberos/include ./configure"
+ 
+ -----------------
+-Building from CVS
++Building from git
+ -----------------
+ The Radmind Development Team occasionally asks for help testing a new feature
+ or bug fix. The best way to assist is to download the source code from the
+-CVS repository and build it manually. The following steps will result in
+-a build from CVS.
++git repository and build it manually. The following steps will result in
++a build from git.
+ 
+-1) Download the source from CVS:
++1) Download the source from git:
+ 
+-cvs -d :pserver:anonymous@radmind.cvs.sourceforge.net:/cvsroot/radmind \
+-	checkout radmind
++    git clone git://radmind.git.sourceforge.net/gitroot/gradmind
+ 
+ 2) Move into the new radmind directory:
+ 
+-cd radmind
++    cd radmind
+ 
+-3) Download libsnet[1], the network library Radmind uses:
++3) Checkout all required submodules [1]:
+ 
+-sh bin/getsnet
++    git submodule init
++    git submodule update
+ 
+ 4) Follow steps 2 and 3 from "More detailed instructions" for building, above.
+ 
+@@ -115,4 +115,7 @@
+ ----------
+ References
+ ----------
+-[1]: http://sourceforge.net/projects/libsnet
++[1]: Current submodules:
++
++    * libsnet, a networking library with TLS support
++	http://sourceforge.net/projects/libsnet
diff -urN files/patch-aclocal.m4 files/patch-aclocal.m4
--- files/patch-aclocal.m4	1969-12-31 19:00:00.000000000 -0500
+++ files/patch-aclocal.m4	2012-03-20 14:38:34.000000000 -0400
@@ -0,0 +1,21 @@
+--- ./aclocal.m4.orig	2010-12-12 22:42:49.000000000 -0500
++++ ./aclocal.m4	2012-03-20 14:37:54.000000000 -0400
+@@ -105,16 +105,11 @@
+ 	    arches="-arch i386 -arch ppc"
+ 	    ;;
+ 
+-	  darwin9*)
++	  darwin9*|darwin10*|darwin11*)
+ 	    dep_target="-mmacosx-version-min=10.4"
+ 	    macosx_sdk="MacOSX10.5.sdk"
+ 	    arches="-arch i386 -arch x86_64 -arch ppc -arch ppc64"
+-	    ;;
+-
+-	  darwin10*)
+-	    dep_target="-mmacosx-version-min=10.4"
+-	    macosx_sdk="MacOSX10.6.sdk"
+-	    arches="-arch i386 -arch x86_64 -arch ppc"
++	    LDFLAGS="$LDFLAGS -L/Developer/SDKs/$macosx_sdk/usr/lib"
+ 	    ;;
+ 
+ 	  *)
diff -urN files/patch-configure.ac files/patch-configure.ac
--- files/patch-configure.ac	1969-12-31 19:00:00.000000000 -0500
+++ files/patch-configure.ac	2012-03-20 14:38:34.000000000 -0400
@@ -0,0 +1,44 @@
+--- ./configure.ac.orig	2010-12-12 22:43:38.000000000 -0500
++++ ./configure.ac	2012-03-20 14:37:54.000000000 -0400
+@@ -45,24 +45,29 @@
+ # Check sizes
+ AC_CHECK_SIZEOF(off_t)
+ 
++# check early to make any required changes to environment for following tests.
++CHECK_UNIVERSAL_BINARIES
++
+ # Checks for libraries.
+ AC_CHECK_LIB(c, inet_aton, libc_inet_aton=yes) 
+ if test x$libc_inet_aton != xyes; then 
+     AC_CHECK_LIB(resolv, inet_aton) 
+ fi 
+-AC_CHECK_LIB(c, lchown)
+-AC_CHECK_LIB(c, lchmod)
++AC_CHECK_LIB(c, lchown, [AC_DEFINE(HAVE_LCHOWN)], [])
++AC_CHECK_LIB(c, lchmod, [AC_DEFINE(HAVE_LCHMOD)], [])
+ AC_CHECK_LIB(nsl, gethostbyaddr)
+ AC_CHECK_LIB([socket], [socket])
+ AC_CHECK_LIB([ssl], [SSL_accept], , [CHECK_SSL])
+ AC_CHECK_HEADER([openssl/ssl.h], [], [AC_MSG_ERROR([header file <openssl/ssl.h>
+ is required for this software.  You may be running RedHat 9.  If so, see the FAQ or the README for further instructions.])])
+ AC_CHECK_LIB([crypto], [SSLeay_version], , [CHECK_SSL])
+-AC_CHECK_FUNC([X509_VERIFY_PARAM_set_flags], [AC_DEFINE(HAVE_X509_VERIFY_PARAM)], [])
++AC_CHECK_LIB([crypto], [X509_VERIFY_PARAM_set_flags], [AC_DEFINE(HAVE_X509_VERIFY_PARAM)], [])
+ 
+ # PAM
+-AC_ARG_WITH([pam], AC_HELP_STRING([--with-pam=yes], [Pluggable Authentication Module support (default: yes)]), [], with_pam=yes)
++AC_ARG_WITH([pam], AC_HELP_STRING([--with-pam=PATH], [Pluggable Authentication Module support (default: /usr)]), [], with_pam=/usr)
+ if test x_"$with_pam" != x_no; then
++    CPPFLAGS="${CPPFLAGS} -I$with_pam/include"
++    LDFLAGS="${LDFLAGS} -L$with_pam/lib"
+     AC_CHECK_LIB([pam], [pam_start],
+ 	[
+ 	AC_CHECK_HEADERS(pam/pam_appl.h, , [AC_CHECK_HEADERS(security/pam_appl.h)])
+@@ -75,7 +80,6 @@
+ AC_CHECK_LIB(dns_sd, DNSServiceRegister)
+ 
+ CHECK_ZLIB
+-CHECK_UNIVERSAL_BINARIES
+ 
+ # HPUX lacks wait4 and strtoll
+ AC_CHECK_FUNCS(wait4 strtoll)
diff -urN files/patch-lapply.c files/patch-lapply.c
--- files/patch-lapply.c	1969-12-31 19:00:00.000000000 -0500
+++ files/patch-lapply.c	2012-03-20 14:38:34.000000000 -0400
@@ -0,0 +1,52 @@
+--- ./lapply.c.orig	2010-12-12 22:42:49.000000000 -0500
++++ ./lapply.c	2012-03-20 14:37:54.000000000 -0400
+@@ -651,27 +651,37 @@
+ filechecklist:
+ 		if ( head == NULL ) {
+ 		    if ( unlink( path ) != 0 ) {
+-			perror( path );
+-			goto error2;
+-		    }
+-		    if ( !quiet && !showprogress ) {
+-			printf( "%s: deleted\n", path );
+-		    }
+-		    if ( showprogress ) {
+-			progressupdate( PROGRESSUNIT, path );
+-		    }
+-		} else {
+-		    if ( ischildcase( path, head->path, case_sensitive )) {
+-			if ( unlink( path ) != 0 ) {
++			if ( !force || errno != ENOENT ) {
+ 			    perror( path );
+ 			    goto error2;
+ 			}
++			fprintf( stderr, "Warning: failed to remove %s: %s\n",
++				path, strerror( errno ));
++		    } else {
+ 			if ( !quiet && !showprogress ) {
+ 			    printf( "%s: deleted\n", path );
+ 			}
+ 			if ( showprogress ) {
+ 			    progressupdate( PROGRESSUNIT, path );
+ 			}
++		    }
++		} else {
++		    if ( ischildcase( path, head->path, case_sensitive )) {
++			if ( unlink( path ) != 0 ) {
++			    if ( !force || errno != ENOENT ) {
++				perror( path );
++				goto error2;
++			    }
++			    fprintf( stderr, "Warning: failed to remove %s: "
++				    "%s\n", path, strerror( errno ));
++			} else {
++			    if ( !quiet && !showprogress ) {
++				printf( "%s: deleted\n", path );
++			    }
++			    if ( showprogress ) {
++				progressupdate( PROGRESSUNIT, path );
++			    }
++			}
+ 		    } else {
+ 			/* remove head */
+ 			if ( rmdir( head->path ) != 0 ) {
diff -urN files/patch-man__lcreate.1 files/patch-man__lcreate.1
--- files/patch-man__lcreate.1	1969-12-31 19:00:00.000000000 -0500
+++ files/patch-man__lcreate.1	2012-03-20 14:38:34.000000000 -0400
@@ -0,0 +1,15 @@
+--- ./man/lcreate.1.orig	2010-12-12 22:50:53.000000000 -0500
++++ ./man/lcreate.1	2012-03-20 14:38:03.000000000 -0400
+@@ -45,12 +45,6 @@
+ .sp
+ If the -n option is given, no files or transcripts are uploaded.  Instead,
+ .B lcreate
+-verifies that all files exist in the filesystem and have
+-the same size as listed in the transcript.  If used with the -c option,
+-checksums are also verified.
+-.sp
+-If the -n option is given, no files or transcripts are uploaded.  Instead,
+-.B lcreate
+ uses 
+ .BR access (2)
+ to verify that all files in the transcript exist in the
diff -urN files/patch-man__rash.1 files/patch-man__rash.1
--- files/patch-man__rash.1	1969-12-31 19:00:00.000000000 -0500
+++ files/patch-man__rash.1	2012-03-20 14:38:34.000000000 -0400
@@ -0,0 +1,38 @@
+--- ./man/rash.1.orig	2010-12-12 22:50:53.000000000 -0500
++++ ./man/rash.1	2012-03-20 14:38:08.000000000 -0400
+@@ -11,6 +11,10 @@
+ |
+ .B -q
+ ] [
++.BR \-C\  "generate"
++|
++.BI \-C\  checksum
++] [
+ .B \-D
+ .I workingdir
+ ] [
+@@ -120,6 +124,24 @@
+ .B \-c
+ use sha1 checksums.
+ .TP 19
++.BR \-C\  "generate"
++Print a sha1 checksum of the difference transcript of applied changes. For use with
++.IR auto ,
++.IR force
++or
++.IR update .
++.TP 19
++.BI \-C\  checksum
++In
++.I auto
++mode, exit with an error if the checksum of the difference transcript to be applied does not match
++.IR checksum .
++In
++.I update
++or
++.I force
++mode, warn if the two do not match.
++.TP 19
+ .BI \-D\  workingdir
+ change to
+ .I workingdir
diff -urN files/patch-mkdirs.c files/patch-mkdirs.c
--- files/patch-mkdirs.c	1969-12-31 19:00:00.000000000 -0500
+++ files/patch-mkdirs.c	2012-03-20 14:38:34.000000000 -0400
@@ -0,0 +1,13 @@
+--- ./mkdirs.c.orig	2010-12-12 22:42:49.000000000 -0500
++++ ./mkdirs.c	2012-03-20 14:38:08.000000000 -0400
+@@ -37,7 +37,9 @@
+ 	if ( mkdir( path, 0777 ) == 0 ) {
+ 	    break;
+ 	}
+-	if ( errno != ENOENT ) {
++	if ( errno == EEXIST ) {
++	    break;
++	} else if ( errno != ENOENT ) {
+ 	    return( -1 );
+ 	}
+ 	q = p;
diff -urN files/patch-ra.sh files/patch-ra.sh
--- files/patch-ra.sh	1969-12-31 19:00:00.000000000 -0500
+++ files/patch-ra.sh	2012-03-20 14:38:34.000000000 -0400
@@ -0,0 +1,139 @@
+--- ./ra.sh.orig	2010-12-12 22:42:49.000000000 -0500
++++ ./ra.sh	2012-03-20 14:38:08.000000000 -0400
+@@ -91,7 +91,7 @@
+ }
+ 
+ usage() {
+-    $ECHO "Usage:	$0 [ -ctV ] [ -D working-directory ] [ -h server ] [ -p port ] [ -w authlevel ] { trip | update | create | auto | force | checkout | checkin } [ /path/or/file ]" >&2
++    $ECHO "Usage:	$0 [ -cIltV ] [ -% | -q ] [ -C \"generate\" | -C <checksum> ] [ -D working-directory ] [ -h server ] [ -p port ] [ -w authlevel ] { trip | update | create | auto | force | checkout | checkin } [ /path/or/file ]" >&2
+     exit 1
+ }
+ 
+@@ -128,6 +128,38 @@
+     fi
+ }
+ 
++cksum_generate() {
++    if [ -n "$FSDIFF_CHECKSUM" ]; then
++	FTMP_CHECKSUM=`openssl sha1 ${FTMP} | awk '{ print $2 }'`
++    fi
++}
++
++cksum_compare() {
++    if [ -n "$FSDIFF_CHECKSUM" -a \
++	    "$FSDIFF_CHECKSUM" != "generate" -a \
++	    "$FSDIFF_CHECKSUM" != "$FTMP_CHECKSUM" ]; then
++	return 1
++    fi
++
++    return 0
++}
++
++cksum_print() {
++    if [ -n "$FSDIFF_CHECKSUM" ]; then
++	$ECHO "Difference transcript checksum: $FTMP_CHECKSUM"
++    fi
++}
++
++cksum_mismatch() {
++    if [ -n "$FSDIFF_CHECKSUM" ]; then
++	$ECHO
++	$ECHO "**** Difference transcript checksum mismatch!"
++	$ECHO "****	Expected: $FSDIFF_CHECKSUM"
++	$ECHO "****	Actual:   $FTMP_CHECKSUM"
++	#ECHO
++    fi
++}
++
+ update() {
+     opt="$1"
+     kopt=
+@@ -211,6 +243,11 @@
+     fi
+     if [ x"${opt}" = x"interactive" ]; then
+ 	while [ 1 ]; do
++	    cksum_generate
++	    if ! cksum_compare; then
++		cksum_mismatch
++	    fi
++
+ 	    if [ x"${can_edit}" = x"yes" ]; then
+ 		$ECHO -n "(e)dit difference transcript, "
+ 	    fi
+@@ -248,7 +285,8 @@
+ 		
+     lapply ${CASE} ${PROGRESS} ${NETOPTS} ${CHECKSUM} ${FTMP}
+     case "$?" in
+-    0)	;;
++    0)	cksum_print
++	;;
+ 
+     *)  if [ x"$opt" = x"hook" ]; then
+ 	    $ECHO -n "Applying changes failed, trying again "
+@@ -284,7 +322,7 @@
+     . "${DEFAULTS}"
+ fi
+ 
+-while getopts %cD:h:Ilp:qr:tU:Vw: opt; do
++while getopts %C:cD:h:Ilp:qr:tU:Vw: opt; do
+     case $opt in
+     %)  PROGRESS="-%"
+ 	FPROGRESS="-%"
+@@ -293,6 +331,13 @@
+     q)  PROGRESS="-q"
+ 	;;
+ 
++    C)	FSDIFF_CHECKSUM="$OPTARG"
++	if ! type openssl >/dev/null 2>&1; then
++	    $ECHO "-C requires openssl, but no openssl found in PATH $PATH"
++	    cleanup_and_exit
++	fi
++	;;
++
+     c)	CHECKSUM="-csha1"
+ 	;;
+ 
+@@ -524,6 +569,14 @@
+ 		cleanup
+ 		exit 1
+ 	    fi
++
++	    cksum_generate
++	    if ! cksum_compare; then
++		$ECHO "Auto failure: `hostname`: difference cksum mismatch" 
++		cksum_mismatch
++		cleanup_and_exit
++	    fi
++
+ 	    dopreapply ${FTMP}
+ 	    if [ -s ${FTMP} ]; then
+ 		lapply ${NETOPTS} ${CASE} ${PROGRESS} \
+@@ -532,6 +585,7 @@
+ 		0)
+ 		    $ECHO Auto update: `hostname`
+ 		    cat ${FTMP}
++		    cksum_print
+ 		    dopostapply ${FTMP}
+ 		    cleanup
+ 		    break
+@@ -588,14 +642,17 @@
+ 	exit 0
+     fi
+     
++    cksum_generate
++    cksum_compare || cksum_mismatch
+     dopreapply ${FTMP}
+     lapply ${CASE} ${PROGRESS} ${NETOPTS} ${CHECKSUM} ${FTMP}
+     case "$?" in
+-    0)	;;
++    0)	cksum_print
++	;;
+ 
+     *)	cleanup
+-	    exit $?
+-	    ;;
++	exit $?
++	;;
+     esac
+     dopostapply ${FTMP}
+     
diff -urN files/patch-t2pkg.c files/patch-t2pkg.c
--- files/patch-t2pkg.c	1969-12-31 19:00:00.000000000 -0500
+++ files/patch-t2pkg.c	2012-03-20 14:38:34.000000000 -0400
@@ -0,0 +1,46 @@
+--- ./t2pkg.c.orig	2010-12-12 22:42:49.000000000 -0500
++++ ./t2pkg.c	2012-03-20 14:38:08.000000000 -0400
+@@ -38,6 +38,7 @@
+ extern off_t	lsize;
+ extern char	*version;
+ 
++int		tran_format = -1;
+ int		cksum = 0;
+ int		force = 0;
+ int		case_sensitive = 1;
+@@ -718,31 +719,23 @@
+ 	}
+ 
+ 	/* create the destination path */
+-	if ( snprintf( tmp, MAXPATHLEN, "%s/%s", dstdir, t->t_pinfo.pi_name )
++	if ( snprintf( dst, MAXPATHLEN, "%s/%s", dstdir, t->t_pinfo.pi_name )
+ 		>= MAXPATHLEN ) {
+ 	    fprintf( stderr, "%s/%s: path too long\n", dstdir,
+ 			t->t_pinfo.pi_name );
+ 	    exit( 2 );
+ 	}
+-	if ( mkdirs( tmp ) < 0 ) {
+-	    fprintf( stderr, "mkdirs %s: %s\n", tmp, strerror( errno ));
+-	}
+-	if ( realpath( tmp, dst ) == NULL ) {
+-	    fprintf( stderr, "realpath %s: %s\n", tmp, strerror( errno ));
+-	    exit( 2 );
++	if ( mkdirs( dst ) < 0 ) {
++	    fprintf( stderr, "mkdirs %s: %s\n", dst, strerror( errno ));
+ 	}
+ 
+ 	/* and the source path */
+-	if ( snprintf( tmp, MAXPATHLEN, "%s/%s", root, t->t_pinfo.pi_name )
++	if ( snprintf( src, MAXPATHLEN, "%s/%s", root, t->t_pinfo.pi_name )
+ 		>= MAXPATHLEN ) {
+ 	    fprintf( stderr, "%s/%s: path too long\n", dstdir,
+ 			t->t_pinfo.pi_name );
+ 	    exit( 2 );
+ 	}
+-	if ( realpath( tmp, src ) == NULL ) {
+-	    fprintf( stderr, "realpath %s: %s\n", tmp, strerror( errno ));
+-	    exit( 2 );
+-	}
+ 
+ 	if ( local_update( t, dst, src, where ) != 0 ) {
+ 	    /* XXX is this really a good idea? */
diff -urN files/pkg-message.in files/pkg-message.in
--- files/pkg-message.in	2012-03-20 13:53:11.000000000 -0400
+++ files/pkg-message.in	2012-03-21 15:24:42.000000000 -0400
@@ -1,16 +1,11 @@
 ####################
+The radmind daemon for this port runs as user "%%RADMINUSER%%"
+by default.  If you wish to change this behavior you may
+set the radmind_user variable in /etc/rc.conf
 
-Important Note:
-The radmind daemon now runs as user "%%RADMINUSER%%"
-by default.
-If you have installed an older version of
-the radmind port you may need to chown
-%%RADMIND_BASE_DIR%% appropriately.
-
-
-You may restore the previous behavior by
-setting
-	radmind_user="root"
-in /etc/rc.conf 
-
+A template configuration file has been installed as
+%%RADMIND_BASE_DIR%%/config.sample .
+Please modify this file as necessary and place it in
+%%RADMIND_BASE_DIR%%/config to ensure proper operation of the
+radmind daemon.
 ####################
diff -urN files/radmind.sh.in files/radmind.sh.in
--- files/radmind.sh.in	2012-03-20 13:53:11.000000000 -0400
+++ files/radmind.sh.in	2012-03-20 13:57:43.000000000 -0400
@@ -15,7 +15,7 @@
 # You may also override the default daemon user & flags:
 #
 #radmind_user="radmind"
-#radmind_flags="-D /var/radmind -m 5 -u 077 -Llocal7 -w 0"
+#radmind_flags="-D /var/radmind -u 077 -w 0"
 #
 # See radmind(8) for flags
 #
@@ -32,7 +32,7 @@
 
 radmind_enable=${radmind_enable:-"NO"}
 radmind_user=${radmind_user:-"radmind"}
-radmind_flags=${radmind_flags:-"-D %%RADMIND_BASE_DIR%% -m 5 -u 077 -Llocal7 -w 0"}
+radmind_flags=${radmind_flags:-"-D %%RADMIND_BASE_DIR%% -m 5 -u 077 -w 0"}
 
 load_rc_config ${name}
 run_rc_command "$1"
diff -urN pkg-descr gpkg-descr
--- pkg-descr	2012-03-20 13:53:11.000000000 -0400
+++ pkg-descr	2012-03-20 14:45:24.000000000 -0400
@@ -3,4 +3,6 @@
 of hosts at the filesystem level. It can also act as an intelligent
 tripwire.
 
-WWW: http://rsug.itd.umich.edu/software/g
+This port contains functionality and security patches through March 20, 2012
+
+WWW: http://www.sourceforge.net/projects/radmind
diff -urN pkg-plist gpkg-plist
--- pkg-plist	2012-03-20 13:53:11.000000000 -0400
+++ pkg-plist	2012-03-21 15:50:22.000000000 -0400
@@ -19,8 +19,10 @@
 @exec mkdir -p -m 755 %%RADMIND_BASE_DIR%%/client
 @exec mkdir -p -m 755 %%RADMIND_BASE_DIR%%/preapply
 @exec mkdir -p -m 755 %%RADMIND_BASE_DIR%%/postapply
-@exec chown -R radmind:radmind %%RADMIND_BASE_DIR%%
+@exec chown -R %%RADMINUSER%%:%%RADMINUSER%% %%RADMIND_BASE_DIR%%
 @cwd /
+@unexec if cmp -s %%RADMIND_BASE_DIR%%/config.sample %%RADMIND_BASE_DIR%%/config; then rm -f %%RADMIND_BASE_DIR%%/config; fi
+%%RADMIND_BASE_DIR%%/config.sample
 @dirrmtry %%RADMIND_BASE_DIR%%/transcript
 @dirrmtry %%RADMIND_BASE_DIR%%/tmp/transcript
 @dirrmtry %%RADMIND_BASE_DIR%%/tmp/file


>Release-Note:
>Audit-Trail:
>Unformatted:



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