Subject: pkg/31841: update to cfengine 2.1.16
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <michael.santos@gmail.com>
List: pkgsrc-bugs
Date: 10/16/2005 22:43:00
>Number:         31841
>Category:       pkg
>Synopsis:       update to cfengine 2.1.16
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sun Oct 16 22:43:00 +0000 2005
>Originator:     Michael Santos
>Release:        NetBSD 2.0.2
>Organization:
>Environment:
Darwin ack.local 8.2.0 Darwin Kernel Version 8.2.0: Fri Jun 24 17:46:54 PDT 2005; root:xnu-792.2.4.obj~3/RELEASE_PPC Power Macintosh powerpc
>Description:
* Update cfengine to 2.1.16.
* remove vicf script (thanks to salo@NetBSD.org for his help)
* configure problem on Mac OS X
* tested on NetBSD 2.0.2 and Mac OS X Tiger

ChangeLog:

2.1.16

	Moved method parameter setting to fix a bug where parameters would
	be set too late to be used in the parser
	
	action=warn in copy required inform=true to work, fixed.
	
	Function arg expansion bug and improvement fix
	
	Include directive added to cfrun.hosts (Olivier Fauchon)
	
	MOUNT_RO name collision fix
	
	SEG fault fixed when signalling cfenvd

	SkipIdentify partial fix
	
	Alf Wachsmann and Elizabeth Cassel's cfetool added, based on cfenvd.

	Bug fix for multipass evaluation when resolving dependencies.

	Cfservd reread patch. Timeout on polling for linux,

	Default route code now uses "route" command exclusively for portability.

	EmailFrom patch to cfexecd / redundant code was paste error

	Increase pass depth in evaluation of action sequence.

	Skipident patch

	Size increase for interface buffer list

	HPUX,AIX ifconfig location fix

	Methods documentation improved.

	New control function for testing tcp services
          var = ReadTCP(host,port,"send string",maxbytes)
	
2.1.15 

	-f removal in cfservd patch

	Segmentatin fault in cfservd with RSA key exchange fixed.

	Disk freespace alerting bug - did not agree with manual specification. Message
	appears only in verbose. Fixed. 

	Autodefine install patch.

	Abspath in shellcommands was not parsed and acted on...

	Warnall action was not respected in copy. Permissions were altered on destination file anyway.

	cfcolon added to special symbols.

2.1.14

	Alerts processed now in update context.

	More locking canonification fixes
	
	Exception for ReplaceALL convergence warning. Warning is not fatal
	if the operation is inside an editgroup.

	md5/sha1 message incorrect on new file found.

       Fixup Makefile.am and doc/Makefile.am.  Docs are now installed
       in the CFEngine "share" directory where they belong.

	Directory iteration fixed. New: owner=LastNode sets the owner of 
	the directory to the name of the last node in the dir name. This allows
	the creation of homedirs.

	CentOS support added.

	Extra encryption stage added in C5 protocol. NOTE: This makes 2.1.14
	cfagent clients unable to talk to older servers. (Upgrade servers
	first, or at the same time.)

	Class "no_default_route" is now defined if a default route is not previously
	set, and a default route is defined for the current host.

	Added class functions IsGreaterThan, IsLessThan for numerical or string comparisons

	control:
	
  	 actionsequence = ( files )
	
	 a = ( 2.12 )
 	 b = ( 2.11 )	
	
	classes:

	lt = ( LessThan(${a},${b}) )
   	gt = ( GreaterThan(${a},${b}) )

	alerts:

	  lt:: "$(a) LESS THAN $(b)"
	  gt:: "$(a) GREATER THAN $(b)"


	Bugfix for cfshow -c options (Nathan Hruby)
	
2.1.13
	Mistake in placement of update.conf runs fixed.

	Alteration to lock hashing to avoid conflicts

	Mandrake version type patch/repatched 

	Error message in disable now
	underlines move to respository where defined.

	Locking patch to tidy. Did not release lock when tidying
	recursively with subdirectory deletions. (Eric Sorensen).

	Host range patched (again) (Bas VdV)

2.1.12
	cf.preconf can now cause an abort if the script prints out a string
	containing the substring "cfengine-preconf-abort".
	An exit code of 2 signals this failure

	Cfrun bug in placement of workdir initialization. Would try to open
	/inputs/cfrun.hosts instead of /var/cfengine/inputs/cfrun.hosts

	Moved mutex locks in address purging, to see if it prevents some
	segmentation faults.

	In image.c:	
	/*      if (TRAVLINKS || ip->linktype == 'n') */
	Took out linktype reference. This appears to be erroneous.

	Patch to tidy: "Guolin Cheng" <guolin@alexa.com>

	Patch to -Q to prevent update.conf from being executed.

	Patch to rationalize choice of port number for new getaddrinfo
	interfaces. (ip.c)

	small patch to allow the use of PCRE if it is compiled with
	--with-pcre.  This is using the POSIX compatible API that PCRE provides,
	so the change necessary is to use pcreposix.h instead of regex.h and to
	link in pcreposix.so. cindy.marasco@pnl.gov)
	
2.1.11

	SUPPORT FOR POSIX ACLS IN LINUX IS NOT AS STRAIGHTFORWARD AS
	ORIGINALLY THOUGHT.  THE API DOES NOT MATCH EXISTING
	IMPLEMENTATIONS AND SEEMS SIGNIFICANTLY MORE COMPLEX. IN THE
	INTERESTS OF STABILITY THIS WILL HAVE TO BE DEFERRED TO A LATER
	RELEASE.

	Comma in function argument bug in FileExists etc, fixed
	
	Option -z (--schedule) now prints only the run schedule.  Option
	-Q (--query) added to print values of variables defined in
	configuration
	 
	  cfagent -Q sysadm,domain,site,ipaddress

	in format  varname=value

	New variables can be used in cfagent.conf for cfexecd control:
	
	  EmailFrom = ( )
	  EmailTo   = ( )  - overrides sysadm if set

	
	White Box linux class recognition added


	When setting classes or variables by function call, the function
	evaluation is no longer performed if it is not in an active class.
	
	Cfexecd now calls cfagent with -D from_cfexecd to define the class
	"from_cfexecd::" when run from the executor
	
	WarnIfFileMissing added to editfiles and default is not to warn
	of non-existent files, except in inform/verbose modes.
	
	Check added for DefineInGroup, signals error if not in group
	Added copy type "any" for any matching criteria, date/sum etc.

	Respository variable was not expanded like a normal variable
	
	cfshow tool added for consulting the databases

	Better autodetection of Berkeley DB in some distros of Linux (SuSE) - has anyone heard of "standards"?
	Date format changed in cfexecd output files
	Errors if remote copy is not encrypted when server demands encryption. (patch)
	
	Renaming of directories is now allowed if dest= is set specifically.
	
	Check added for variables defined in terms of undefined variables.
	
	Patch for solaris package manager added (Louis Erickson - wwonko@rdwarf.com)

	file added as synonym til reg in filter
	
	Patch to HostRange (item.c) (rader@ginseng.hep.wisc.edu)
	Internal variable determining WORKDIR for non-privileged users.

	Various minor changes and cosmetics.
	
	Lock string must include server name in copy - added
	Method reply bundles fixed to work correctly with ipv6 addresses

	SIGPIPE and SIGCHLD added to signal handler (SIGCHILD ignored against posix, but
	how the hell do you sort this out?)
	srand -> srand48 typo in cfenvd

	Multiple method reply variables were incorrectly separated.
	Added options to disable LastSeen data recording feature.

	fclose used instead of pclose when calling ifconfig - resulted in zombies
	



>How-To-Repeat:

>Fix:
diff -x CVS -r -U2 -N cfengine2-orig/Makefile cfengine2/Makefile
--- cfengine2-orig/Makefile	2005-09-21 22:08:14.000000000 -0400
+++ cfengine2/Makefile	2005-10-16 17:55:10.000000000 -0400
@@ -2,6 +2,4 @@
 #
 
-PKGREVISION=	3
-
 .include "../../sysutils/cfengine2/Makefile.common"
 
@@ -19,14 +17,10 @@
 RCD_SCRIPTS=		cfexecd cfservd cfenvd
 
-pre-configure:
-	${MV} -f ${WRKSRC}/contrib/vicf.in ${WRKSRC}/contrib/vicf.in.orig
-	${SED} -e "s|@ECHO@|${ECHO}|" \
-		${WRKSRC}/contrib/vicf.in.orig > ${WRKSRC}/contrib/vicf.in
-
 post-install:
 	${INSTALL_MAN_DIR} ${PREFIX}/man/man8
 	${INSTALL_MAN} ${WRKSRC}/doc/*.8 ${PREFIX}/man/man8
+	${INSTALL_DATA_DIR} ${PREFIX}/share/examples/cfengine
 	${INSTALL_DATA} ${WRKSRC}/inputs/*.example \
-		${PREFIX}/share/examples/cfengine
+		${PREFIX}/share/examples/cfengine/
 	${INSTALL_DATA_DIR} /var/cfengine/inputs
 
diff -x CVS -r -U2 -N cfengine2-orig/Makefile.common cfengine2/Makefile.common
--- cfengine2-orig/Makefile.common	2004-08-18 19:03:44.000000000 -0400
+++ cfengine2/Makefile.common	2005-10-16 11:35:14.000000000 -0400
@@ -2,5 +2,5 @@
 #
 
-CFENGINE_VERSION= 2.1.10
+CFENGINE_VERSION= 2.1.16
 DISTNAME=	cfengine-${CFENGINE_VERSION}
 CATEGORIES=	sysutils net
diff -x CVS -r -U2 -N cfengine2-orig/PLIST cfengine2/PLIST
--- cfengine2-orig/PLIST	2005-09-21 22:08:14.000000000 -0400
+++ cfengine2/PLIST	2005-10-16 18:34:55.000000000 -0400
@@ -12,10 +12,16 @@
 sbin/cfenvd
 sbin/cfenvgraph
+sbin/cfetool
+sbin/cfetoolgraph
 sbin/cfexecd
 sbin/cfkey
 sbin/cfrun
 sbin/cfservd
-sbin/vicf
+sbin/cfshow
 share/cfengine/cfengine.el
+share/cfengine/ChangeLog
+share/cfengine/INSTALL
+share/cfengine/NEWS
+share/cfengine/README
 share/examples/cfengine/cf.chflags.example
 share/examples/cfengine/cf.freebsd.example
@@ -37,5 +43,4 @@
 share/examples/cfengine/cfservd.conf.example
 share/examples/cfengine/update.conf.example
-share/examples/cfengine/vicf
 share/examples/rc.d/cfenvd
 share/examples/rc.d/cfexecd
diff -x CVS -r -U2 -N cfengine2-orig/distinfo cfengine2/distinfo
--- cfengine2-orig/distinfo	2005-02-24 08:40:51.000000000 -0500
+++ cfengine2/distinfo	2005-10-16 17:22:00.000000000 -0400
@@ -1,10 +1,9 @@
 $NetBSD: distinfo,v 1.7 2005/02/24 13:40:51 agc Exp $
 
-SHA1 (cfengine-2.1.10.tar.gz) = 01e80f12881b35704896757d338548dddc44883c
-RMD160 (cfengine-2.1.10.tar.gz) = 0b9f8f805f0ff8abed2468249b86399228d10291
-Size (cfengine-2.1.10.tar.gz) = 3100323 bytes
-SHA1 (patch-ad) = 559b8378c1cad5e88e1eba55c7f62e2336153186
+SHA1 (cfengine-2.1.16.tar.gz) = 11a591cb2e806fe58532a5c4a90d7bf64ed9c63c
+RMD160 (cfengine-2.1.16.tar.gz) = 3b875fbd6144e76114f19f3ea1f40b559f06f453
+Size (cfengine-2.1.16.tar.gz) = 3606067 bytes
 SHA1 (patch-ae) = 99496b14f80c8605886cd78a520af4d1c6cc0475
-SHA1 (patch-ah) = d0a79d2c5ce636e401486ff9740bd126fd94f172
-SHA1 (patch-aj) = 8bf0d1e3af5b4fac229eb7eb62459e9c6afe4ead
-SHA1 (patch-al) = 8837267fe8ffa1f003b4dd48a8fe397ab9b0a3d9
+SHA1 (patch-af) = 33b643b422c95351859bcd6a775c0a6d706d553d
+SHA1 (patch-ah) = 75b280afa98e13c303da04cb8dd08d3644428379
+SHA1 (patch-al) = a54b3d4a03e337ce386fba0ced71c8280132e85d
diff -x CVS -r -U2 -N cfengine2-orig/patches/patch-ad cfengine2/patches/patch-ad
--- cfengine2-orig/patches/patch-ad	2003-04-26 04:33:01.000000000 -0400
+++ cfengine2/patches/patch-ad	1969-12-31 19:00:00.000000000 -0500
@@ -1,59 +0,0 @@
-$NetBSD: patch-ad,v 1.2 2003/04/26 08:33:01 seb Exp $
-
---- contrib/vicf.in.orig	2003-02-09 11:33:04.000000000 +0000
-+++ contrib/vicf.in
-@@ -3,14 +3,15 @@
- prefix=@prefix@
- exec_prefix=@exec_prefix@
- sbindir=@sbindir@
-+ECHO=@ECHO@
- EDITOR="${EDITOR-vi}"
- CFINPUTS="${CFINPUTS-"@pkgdata@"}"
- export EDITOR CFINPUTS
- NOPARSE="cf.preconf|cfd.conf"
- 
--if [ "`hostname`" != "sentral" ]
-+if [ "`hostname`" != "CHANGEME" ]
- then
--	echo $0 can only be run on host sentral.
-+	echo $0 can only be run on host CHANGEME.
- 	exit 1
- fi
- 
-@@ -20,7 +21,7 @@ EdFile () {
- 	echo "File not found: ${file}"
- 	echo "Only these files are eligible for editing:"
- 	\ls $CFINPUTS
--	/usr/ucb/echo -n "Create new file? (Y/n) "
-+	${ECHO} -n "Create new file? (Y/n) "
- 	read answer
- 	if [ "$answer" = "n" ]
- 	then
-@@ -32,14 +33,15 @@ EdFile () {
-     if [ -f ${CFINPUTS}/.${file}.lock -a "$force" = "n" ]
-     then
- 	i=30
--	/usr/ucb/echo -n "File ${file} is busy -- waiting up to $i seconds..."
-+	${ECHO} -n "File ${file} is busy -- waiting up to $i seconds..."
- 	while [ -f ${CFINPUTS}/.${file}.lock ]
- 	do
--		/usr/ucb/echo -n .
-+		${ECHO} -n .
- 		i=`expr $i - 1`
- 		if [ $i = 0 ]
- 		then
--			echo "\nSorry, file is busy -- try again later."
-+			${ECHO} ""
-+			${ECHO} "Sorry, file is busy -- try again later."
- 			exit 0
- 		fi
- 		sleep 1
-@@ -62,7 +64,7 @@ EdFile () {
- 	then
- 		echo PARSE ERROR IN NEW INPUT-FILE:
- 		cat /tmp/cfparse.$$
--		/usr/ucb/echo -n "Re-edit file? (Y/n) "
-+		${ECHO} -n "Re-edit file? (Y/n) "
- 		read answer
- 		if [ "$answer" = "n" ]
- 		then
diff -x CVS -r -U2 -N cfengine2-orig/patches/patch-af cfengine2/patches/patch-af
--- cfengine2-orig/patches/patch-af	1969-12-31 19:00:00.000000000 -0500
+++ cfengine2/patches/patch-af	2005-10-16 16:48:03.000000000 -0400
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- configure.orig	2005-10-16 16:47:21.000000000 -0400
++++ configure	2005-10-16 16:47:05.000000000 -0400
+@@ -8545,4 +8545,8 @@
+ 		break
+             fi
++            if test -f "$BERKELEY_DB_DIR/lib/lib$v.dylib"; then
++                BERKELEY_DB_LIB="-l$v"
++		break
++            fi
+         done
+ 
diff -x CVS -r -U2 -N cfengine2-orig/patches/patch-ah cfengine2/patches/patch-ah
--- cfengine2-orig/patches/patch-ah	2003-04-26 04:33:01.000000000 -0400
+++ cfengine2/patches/patch-ah	2005-10-16 17:21:49.000000000 -0400
@@ -1,18 +1,11 @@
-$NetBSD: patch-ah,v 1.2 2003/04/26 08:33:01 seb Exp $
+$NetBSD$
 
---- contrib/Makefile.am.orig	2001-11-21 18:59:51.000000000 +0000
-+++ contrib/Makefile.am
-@@ -1,9 +1,12 @@
+--- contrib/Makefile.in.orig	2005-10-16 17:19:11.000000000 -0400
++++ contrib/Makefile.in	2005-10-16 17:19:24.000000000 -0400
+@@ -171,5 +171,5 @@
  s1 = cfdoc
  s2 = cfengine.el
- 
 -sbin_SCRIPTS = vicf $(s1)
 +sbin_SCRIPTS = $(s1)
  pkgdata_SCRIPTS = $(s2)
- 
-+exampledir = $(prefix)/share/examples/cfengine
-+example_SCRIPTS = vicf
-+
  EXTRA_DIST = README README.vicf $(s1) $(s2)
- 
- #
diff -x CVS -r -U2 -N cfengine2-orig/patches/patch-aj cfengine2/patches/patch-aj
--- cfengine2-orig/patches/patch-aj	2004-08-10 10:18:44.000000000 -0400
+++ cfengine2/patches/patch-aj	1969-12-31 19:00:00.000000000 -0500
@@ -1,86 +0,0 @@
-$NetBSD: patch-aj,v 1.3 2004/08/10 14:18:44 ben Exp $
-
---- contrib/Makefile.in.orig	2004-08-09 13:27:41.000000000 -0400
-+++ contrib/Makefile.in	2004-08-09 20:44:12.000000000 -0400
-@@ -50,5 +50,7 @@
- pkgdataSCRIPT_INSTALL = $(INSTALL_SCRIPT)
- sbinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
--SCRIPTS = $(pkgdata_SCRIPTS) $(sbin_SCRIPTS)
-+SCRIPTS = $(example_SCRIPTS) $(pkgdata_SCRIPTS) $(sbin_SCRIPTS)
-+depcomp =
-+am__depfiles_maybe =
- SOURCES =
- DIST_SOURCES =
-@@ -168,4 +170,6 @@
- sbin_SCRIPTS = vicf $(s1)
- pkgdata_SCRIPTS = $(s2)
-+exampledir = $(prefix)/share/examples/cfengine
-+example_SCRIPTS = vicf
- EXTRA_DIST = README README.vicf $(s1) $(s2)
- 
-@@ -205,5 +209,5 @@
- 	  esac; \
- 	done; \
--	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  contrib/Makefile'; \
-+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  contrib/Makefile'; \
- 	cd $(top_srcdir) && \
- 	  $(AUTOMAKE) --gnu  contrib/Makefile
-@@ -218,4 +222,26 @@
- 	esac;
- 
-+exampleSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-+install-exampleSCRIPTS: $(example_SCRIPTS)
-+	@$(NORMAL_INSTALL)
-+	$(mkinstalldirs) $(DESTDIR)$(exampledir)
-+	@list='$(example_SCRIPTS)'; for p in $$list; do \
-+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-+	  if test -f $$d$$p; then \
-+	    f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
-+	    echo " $(exampleSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(exampledir)/$$f"; \
-+	    $(exampleSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(exampledir)/$$f; \
-+	  else :; fi; \
-+	done
-+
-+uninstall-exampleSCRIPTS:
-+	@$(NORMAL_UNINSTALL)
-+	@list='$(example_SCRIPTS)'; for p in $$list; do \
-+	  f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
-+	  echo " rm -f $(DESTDIR)$(exampledir)/$$f"; \
-+	  rm -f $(DESTDIR)$(exampledir)/$$f; \
-+	done
-+
-+
- $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-@@ -353,5 +379,5 @@
- info-am:
- 
--install-data-am: install-pkgdataSCRIPTS
-+install-data-am: install-exampleSCRIPTS install-pkgdataSCRIPTS
- 
- install-exec-am: install-sbinSCRIPTS
-@@ -379,15 +405,16 @@
- ps-am:
- 
--uninstall-am: uninstall-info-am uninstall-pkgdataSCRIPTS \
--	uninstall-sbinSCRIPTS
-+uninstall-am: uninstall-exampleSCRIPTS uninstall-info-am \
-+	uninstall-pkgdataSCRIPTS uninstall-sbinSCRIPTS
- 
- .PHONY: all all-am check check-am clean clean-generic distclean \
- 	distclean-generic distdir dvi dvi-am html html-am info info-am \
--	install install-am install-data install-data-am install-exec \
--	install-exec-am install-info install-info-am install-man \
--	install-pkgdataSCRIPTS install-sbinSCRIPTS install-strip \
--	installcheck installcheck-am installdirs maintainer-clean \
--	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
--	pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \
-+	install install-am install-data install-data-am install-exampleSCRIPTS \
-+       	install-exec install-exec-am install-info install-info-am \
-+       	install-man install-pkgdataSCRIPTS install-sbinSCRIPTS \
-+	install-strip installcheck installcheck-am installdirs \
-+	maintainer-clean maintainer-clean-generic mostlyclean \
-+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
-+	uninstall-exampleSCRIPTS uninstall-info-am \
- 	uninstall-pkgdataSCRIPTS uninstall-sbinSCRIPTS
- 
diff -x CVS -r -U2 -N cfengine2-orig/patches/patch-al cfengine2/patches/patch-al
--- cfengine2-orig/patches/patch-al	2004-08-18 19:03:44.000000000 -0400
+++ cfengine2/patches/patch-al	2005-10-16 15:41:44.000000000 -0400
@@ -1,8 +1,7 @@
-$NetBSD: patch-al,v 1.1 2004/08/18 23:03:44 ben Exp $
+$NetBSD$
 
---- Makefile.in.orig	Mon Aug  9 10:27:40 2004
-+++ Makefile.in
-@@ -60,7 +60,7 @@ RECURSIVE_TARGETS = all-recursive check-
- 	uninstall-recursive
+--- Makefile.in.orig	2005-10-16 15:35:50.000000000 -0400
++++ Makefile.in	2005-10-16 15:36:30.000000000 -0400
+@@ -73,5 +73,5 @@
  ETAGS = etags
  CTAGS = ctags
@@ -11,7 +10,5 @@
  DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
  distdir = $(PACKAGE)-$(VERSION)
- top_distdir = $(distdir)
-@@ -184,7 +184,7 @@ target_os = @target_os@
- target_vendor = @target_vendor@
+@@ -200,5 +200,5 @@
  @BUILD_DOC_FALSE@DOC_DIR = 
  @BUILD_DOC_TRUE@DOC_DIR = doc
@@ -19,4 +16,3 @@
 +SUBDIRS = pub src contrib $(DOC_DIR)
  EXTRA_DIST = acconfig.h doc/cfengine.8 COPYING ChangeLog INSTALL NEWS README
- 
- #
+ docdir = $(pkgdatadir)



begin 644 cfengine2.tar.gz
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
.0@D_"?P70/[K(P!X````
`
end