[SM-Commit] GIT changes to stable-rc-0.60 grimoire by Vlad Glagolev (55b4bcb564e625e1edd6ffcd5ccdef1a2e3ab07b)

Vlad Glagolev scm at sourcemage.org
Thu Oct 13 09:38:12 EDT 2011


GIT changes to stable-rc-0.60 grimoire by Vlad Glagolev <stealth at sourcemage.org>:

 net/spine/DEPENDS                      |    7 
 net/spine/DETAILS                      |    4 
 net/spine/HISTORY                      |    5 
 net/spine/patches/unified_issues.patch |  348 ---------------------------------
 4 files changed, 13 insertions(+), 351 deletions(-)

New commits:
commit 55b4bcb564e625e1edd6ffcd5ccdef1a2e3ab07b
Author: Vlad Glagolev <stealth at sourcemage.org>
Commit: Vlad Glagolev <stealth at sourcemage.org>

    spine: => 0.8.7h
    (cherry picked from commit 763889e3d1558cc0bf6225a882fb2397fcc60d29)

diff --git a/net/spine/DEPENDS b/net/spine/DEPENDS
index 7627fd1..fd0277f 100755
--- a/net/spine/DEPENDS
+++ b/net/spine/DEPENDS
@@ -1,2 +1,7 @@
 depends net-snmp &&
-depends MYSQL
+depends MYSQL &&
+
+optional_depends libcap \
+                 "--enable-lcap" \
+                 "--disable-lcap" \
+                 "for Linux capabilities support"
diff --git a/net/spine/DETAILS b/net/spine/DETAILS
index 27a7865..13385aa 100755
--- a/net/spine/DETAILS
+++ b/net/spine/DETAILS
@@ -1,8 +1,8 @@
            SPELL=spine
-         VERSION=0.8.7g
+         VERSION=0.8.7h
           SOURCE=cacti-$SPELL-$VERSION.tar.gz
    SOURCE_URL[0]=http://www.cacti.net/downloads/$SPELL/$SOURCE
-     SOURCE_HASH=sha512:be0dd06649005085b2ef6c773e934e9dedd35d7c2d990637ae45347c5e27d8076f046f7b08ea497e183b688661b63b4135e6cecefe4c74f4b422f7008e90f117
+     SOURCE_HASH=sha512:681ea0849a477636348fbede7b11d04900cb3a2bbcb747deccaea31c67adfdb07f2692934a44de5975a142632154c7249ca66455c4f1beb1679bcfb56088e396
 SOURCE_DIRECTORY="$BUILD_DIRECTORY/cacti-$SPELL-$VERSION"
         WEB_SITE=http://www.cacti.net/spine_info.php
       LICENSE[0]=LGPL
diff --git a/net/spine/HISTORY b/net/spine/HISTORY
index 1fccfc0..eac4652 100644
--- a/net/spine/HISTORY
+++ b/net/spine/HISTORY
@@ -1,3 +1,8 @@
+2011-10-05 Vlad Glagolev <stealth at sourcemage.org>
+	* DETAILS: updated spell to 0.8.7h
+	* DEPENDS: added libcap optional dependency
+	* patches: removed
+
 2010-12-09 Vlad Glagolev <stealth at sourcemage.org>
 	* DETAILS: updated spell to 0.8.7g
 	* INSTALL: upstream finally fixed conf trashing issue
diff --git a/net/spine/patches/unified_issues.patch b/net/spine/patches/unified_issues.patch
deleted file mode 100644
index d24cdaa..0000000
--- a/net/spine/patches/unified_issues.patch
+++ /dev/null
@@ -1,348 +0,0 @@
-diff -ruBbd cacti-spine-0.8.7g.old/ChangeLog cacti-spine-0.8.7g/ChangeLog
---- cacti-spine-0.8.7g.old/ChangeLog	2010-07-09 19:25:56.000000000 -0400
-+++ cacti-spine-0.8.7g/ChangeLog	2010-08-31 20:21:22.000000000 -0400
-@@ -1,5 +1,13 @@
- The Cacti Group | spine
- 
-+Patched 0.8.7g
-+-bug#0001669: Problems with getting data from script using SPINE on Windows Server 2003 x32 
-+-bug#0001829: Wrong string numerical value got from Spine SNMP poller 
-+-bug: Net-snmp API issues cause spine crashes with some SNMP agents
-+-bug: Host list not properly initialized
-+-bug: Mutex locking issues cause deadlocks in Windows
-+-bug: Escape windows type back slashes in scripts
-+
- 0.8.7g
- -feature: Multi threaded host polling
- 
-diff -ruBbd cacti-spine-0.8.7g.old/poller.c cacti-spine-0.8.7g/poller.c
---- cacti-spine-0.8.7g.old/poller.c	2010-07-09 17:39:53.000000000 -0400
-+++ cacti-spine-0.8.7g/poller.c	2010-08-31 20:18:58.000000000 -0400
-@@ -57,21 +57,26 @@
- 	host_data_ids    = poller_details.host_data_ids;
- 	snprintf(host_time, SMALL_BUFSIZE, "%s", poller_details.host_time);
- 
--	thread_mutex_unlock(LOCK_THREAD);
--
- 	free(arg);
- 
-+	thread_ready = TRUE;
-+
- 	SPINE_LOG_DEBUG(("DEBUG: In Poller, About to Start Polling of Host"));
- 
- 	poll_host(host_id, host_thread, last_host_thread, host_data_ids, host_time);
- 
--	thread_mutex_lock(LOCK_THREAD);
--
-+	while (TRUE) {
-+		if (thread_mutex_trylock(LOCK_THREAD) == 0) {
- 	active_threads--;
-+			thread_mutex_unlock(LOCK_THREAD);
- 
--	SPINE_LOG_DEBUG(("DEBUG: The Value of Active Threads is %i" ,active_threads));
-+			break;
-+		}
- 
--	thread_mutex_unlock(LOCK_THREAD);
-+		usleep(100);
-+	}
-+
-+	SPINE_LOG_DEBUG(("DEBUG: The Value of Active Threads is %i" ,active_threads));
- 
- 	/* end the thread */
- 	pthread_exit(0);
-@@ -965,7 +970,7 @@
- 				poll_result = exec_poll(host, poller_items[i].arg1);
- 
- 				/* process the result */
--				if ((is_numeric(poll_result)) || (is_multipart_output(poll_result))) {
-+				if ((is_numeric(poll_result)) || (is_multipart_output(trim(poll_result)))) {
- 					snprintf(poller_items[i].result, RESULTS_BUFFER, "%s", poll_result);
- 				}else if (is_hexadecimal(snmp_oids[j].result, TRUE)) {
- 					snprintf(poller_items[i].result, RESULTS_BUFFER, "%lld", hex2dec(poll_result));
-@@ -998,7 +1003,7 @@
- 				poll_result = php_cmd(poller_items[i].arg1, php_process);
- 
- 				/* process the output */
--				if ((is_numeric(poll_result)) || (is_multipart_output(poll_result))) {
-+				if ((is_numeric(poll_result)) || (is_multipart_output(trim(poll_result)))) {
- 					snprintf(poller_items[i].result, RESULTS_BUFFER, "%s", poll_result);
- 				}else if (is_hexadecimal(snmp_oids[j].result, TRUE)) {
- 					snprintf(poller_items[i].result, RESULTS_BUFFER, "%lld", hex2dec(poll_result));
-@@ -1247,7 +1252,7 @@
- 		if (is_numeric(result)) {
- 			return TRUE;
- 		}else{
--			if (is_multipart_output(result)) {
-+			if (is_multipart_output(trim(result))) {
- 				return TRUE;
- 			}else{
- 				return FALSE;
-@@ -1290,7 +1295,7 @@
- 
- 	/* compensate for back slashes in arguments */
- 	#if defined(__CYGWIN__)
--	proc_command = add_slashes(command, 2);
-+	proc_command = add_slashes(command);
- 	#else
- 	proc_command = command;
- 	#endif
-@@ -1340,7 +1345,7 @@
- 		FD_SET(cmd_fd, &fds);
- 
- 		/* wait x seonds for pipe response */
--		switch (select(cmd_fd+1, &fds, NULL, NULL, &timeout)) {
-+		switch (select(FD_SETSIZE, &fds, NULL, NULL, &timeout)) {
- 		case -1:
- 			switch (errno) {
- 			case EBADF:
-@@ -1381,11 +1386,13 @@
- 				break;
- 			}
- 		case 0:
-+			#ifdef USING_TPOPEN
- 			SPINE_LOG(("Host[%i] ERROR: The POPEN timed out", current_host->id));
- 
--			#ifdef USING_TPOPEN
- 			close_fd = FALSE;
- 			#else
-+			SPINE_LOG(("Host[%i] ERROR: The NIFTY POPEN timed out", current_host->id));
-+
- 			pid = nft_pchild(cmd_fd);
- 			kill(pid, SIGKILL);
- 			#endif
-diff -ruBbd cacti-spine-0.8.7g.old/snmp.c cacti-spine-0.8.7g/snmp.c
---- cacti-spine-0.8.7g.old/snmp.c	2010-07-09 17:39:53.000000000 -0400
-+++ cacti-spine-0.8.7g/snmp.c	2010-08-31 20:18:58.000000000 -0400
-@@ -499,13 +499,9 @@
- 	size_t out_len = 0;
- 
- 	if ((buf = (u_char *) calloc(buf_len, 1)) != 0) {
--		if (sprint_realloc_value(&buf, &buf_len, &out_len, 1,
--				objid, objidlen, variable)) {
-+		sprint_realloc_by_type(&buf, &buf_len, &out_len, 1, variable, NULL, NULL, NULL);
- 			snprintf(obuf, buf_len, "%s", buf);
- 		}else{
--			snprintf(obuf, buf_len, "%s [TRUNCATED]", buf);
--		}
--	}else{
- 		SET_UNDEFINED(obuf);
- 	}
- 
-@@ -528,6 +524,7 @@
- 	int i;
- 	int array_count;
- 	int index_count;
-+	char   temp_result[RESULTS_BUFFER];
- 
- 	struct nameStruct {
- 	    oid             name[MAX_OID_LEN];
-@@ -570,11 +567,13 @@
- 				for(i = 0; i < num_oids && vars; i++) {
- 					if (!IS_UNDEFINED(snmp_oids[i].result)) {
- 						#ifdef USE_NET_SNMP
--						snmp_snprint_value(snmp_oids[i].result, RESULTS_BUFFER, vars->name, vars->name_length, vars);
-+						snmp_snprint_value(temp_result, RESULTS_BUFFER, vars->name, vars->name_length, vars);
- 						#else
--						sprint_value(snmp_oids[i].result, vars->name, vars->name_length, vars);
-+						sprint_value(temp_result, vars->name, vars->name_length, vars);
- 						#endif
- 						
-+						snprintf(snmp_oids[i].result, RESULTS_BUFFER, "%s", trim(temp_result));
-+						
- 						vars = vars->next_variable;
- 					}
- 				}
-diff -ruBbd cacti-spine-0.8.7g.old/spine.c cacti-spine-0.8.7g/spine.c
---- cacti-spine-0.8.7g.old/spine.c	2010-07-09 17:39:53.000000000 -0400
-+++ cacti-spine-0.8.7g/spine.c	2010-08-31 20:18:58.000000000 -0400
-@@ -94,6 +94,7 @@
- int num_hosts = 0;
- int active_threads = 0;
- int active_scripts = 0;
-+int thread_ready   = FALSE;
- 
- config_t set;
- php_t	*php_processes = 0;
-@@ -134,7 +135,7 @@
- 	int poller_counter = 0;
- 	int last_active_threads = 0;
- 	int valid_conf_file = FALSE;
--	long int EXTERNAL_THREAD_SLEEP = 5000;
-+	long int EXTERNAL_THREAD_SLEEP = 50;
- 	long int internal_thread_sleep;
- 	char querybuf[BIG_BUFSIZE], *qp = querybuf;
- 	char *host_time = NULL;
-@@ -196,6 +197,7 @@
- 
- 	/* we attempt to support scripts better in cygwin */
- 	#if defined(__CYGWIN__)
-+	setenv("CYGWIN", "nodosfilewarning", 1);
- 	if (file_exists("./sh.exe")) {
- 		set.cygwinshloc = 0;
- 		printf("NOTE: The Shell Command Exists in the current directory\n");
-@@ -281,7 +283,7 @@
- 
- 		else if (STRMATCH(arg, "-H") ||
- 				 STRIMATCH(arg, "--hostlist")) {
--			snprintf(set.host_id_list, BIG_BUFSIZE, getarg(opt, &argv));
-+			snprintf(set.host_id_list, BIG_BUFSIZE, "%s", getarg(opt, &argv));
- 		}
- 
- 		else if (STRMATCH(arg, "-h") ||
-@@ -584,6 +586,11 @@
- 				poller_details->host_data_ids    = itemsPT;
- 				poller_details->host_time        = host_time;
- 
-+				/* this variable tells us that the child had loaded the poller
-+				 * poller_details structure and we can move on to the next thread
-+				 */
-+				thread_ready = FALSE;
-+
- 				/* create child process */
- 				thread_status = pthread_create(&threads[device_counter], &attr, child, poller_details);
- 
-@@ -596,6 +603,11 @@
- 						}
- 						active_threads++;
- 
-+						/* wait for the child to read and process the structure */
-+						while (!thread_ready) { 
-+							usleep(internal_thread_sleep);
-+						}
-+
- 						SPINE_LOG_DEBUG(("DEBUG: The Value of Active Threads is %i", active_threads));
- 
- 						break;
-@@ -603,7 +615,7 @@
- 						SPINE_LOG(("ERROR: The System Lacked the Resources to Create a Thread"));
- 						break;
- 					case EFAULT:
--						SPINE_LOG(("ERROR: The Thread or Attribute Was Invalid"));
-+						SPINE_LOG(("ERROR: The Thread or Attribute were Invalid"));
- 						break;
- 					case EINVAL:
- 						SPINE_LOG(("ERROR: The Thread Attribute is Not Initialized"));
-@@ -613,6 +625,8 @@
- 						break;
- 				}
- 
-+				thread_mutex_unlock(LOCK_THREAD);
-+
- 				/* get current time and exit program if time limit exceeded */
- 				if (poller_counter >= 20) {
- 					current_time = get_time_as_double();
-diff -ruBbd cacti-spine-0.8.7g.old/spine.h cacti-spine-0.8.7g/spine.h
---- cacti-spine-0.8.7g.old/spine.h	2010-07-09 17:39:53.000000000 -0400
-+++ cacti-spine-0.8.7g/spine.h	2010-08-31 20:18:58.000000000 -0400
-@@ -504,5 +504,6 @@
- extern char   start_datetime[20];
- extern char   config_paths[CONFIG_PATHS][BUFSIZE];
- extern int    active_threads;
-+extern int    thread_ready;
- 
- #endif /* not _SPINE_H_ */
-diff -ruBbd cacti-spine-0.8.7g.old/util.c cacti-spine-0.8.7g/util.c
---- cacti-spine-0.8.7g.old/util.c	2010-07-09 17:39:53.000000000 -0400
-+++ cacti-spine-0.8.7g/util.c	2010-08-31 20:18:58.000000000 -0400
-@@ -755,7 +755,7 @@
- 	/* empty string is not all digits */
- 	if ( *string == '\0' ) return FALSE;
- 
--	while ( isdigit(*string) )
-+	while ( isdigit((int)*string) )
- 		string++;
- 
- 	return *string == '\0';
-@@ -773,7 +773,7 @@
-  */
- int is_ipaddress(const char *string) {
- 	while (*string) {
--		if ((isdigit(*string)) ||
-+		if ((isdigit((int)*string)) ||
- 			(*string == '.') ||
- 			(*string == ':')) {
- 			string++;
-@@ -887,7 +887,7 @@
- 	i = strlen(string);
- 
- 	while (i >= 0) {
--		if (isdigit(string[i])) {
-+		if (isdigit((int)string[i])) {
- 			break;
- 		}else{
- 			string[i] = '\0';
-@@ -898,17 +898,15 @@
- 	return string;
- }
- 
--/*! \fn char *add_slashes(char *string, int arguments_2_strip)
-- *  \brief change all backslashes to forward slashes for the first n arguements.
-+/*! \fn char *add_slashes(char *string)
-+ *  \brief add escaping to back slashes on for Windows type commands.
-  *  \param string the string to replace slashes
-- *  \param arguments_2_strip the number of space delimited arguments to reverse
-  *
-  *  \return a pointer to the modified string. Variable must be freed by parent.
-  *
-  */
--char *add_slashes(char *string, int arguments_2_strip) {
-+char *add_slashes(char *string) {
- 	int length;
--	int space_count;
- 	int position;
- 	int new_position;
- 	char *return_str;
-@@ -919,9 +917,8 @@
- 	return_str[0] = '\0';
- 
- 	length = strlen(string);
--	space_count = 0;
- 	position = 0;
--	new_position = position;
-+	new_position = 0;
- 
- 	/* simply return on blank string */
- 	if (!length) {
-@@ -931,17 +928,9 @@
- 	while (position < length) {
- 		/* backslash detected, change to forward slash */
- 		if (string[position] == '\\') {
--			/* only add slashes for first x arguments */
--			if (space_count < arguments_2_strip) {
--				return_str[new_position] = '/';
--			}else{
--				return_str[new_position] = string[position];
--			}
--		/* end of argument detected */
--		}else if (string[position] == ' ') {
--			return_str[new_position] = ' ';
--			space_count++;
--		/* normal character detected */
-+			return_str[new_position] = '\\';
-+			new_position++;
-+			return_str[new_position] = '\\';
- 		}else{
- 			return_str[new_position] = string[position];
- 		}
-@@ -1248,7 +1237,7 @@
- 	seteuid(0);
- 
- 	if (geteuid() != 0) {
--		SPINE_LOG_DEBUG(("WARNING: Spine NOT running asroot.  This is require if using ICMP.  Please run \"chmod +s;chown root:root spine\" to resolve."));
-+		SPINE_LOG_DEBUG(("WARNING: Spine NOT running asroot.  This is required if using ICMP.  Please run \"chmod +s;chown root:root spine\" to resolve."));
- 		set.icmp_avail = FALSE;
- 	}else{
- 		SPINE_LOG_DEBUG(("DEBUG: Spine is running asroot."));
-diff -ruBbd cacti-spine-0.8.7g.old/util.h cacti-spine-0.8.7g/util.h
---- cacti-spine-0.8.7g.old/util.h	2010-07-09 17:39:53.000000000 -0400
-+++ cacti-spine-0.8.7g/util.h	2010-08-31 20:18:58.000000000 -0400
-@@ -54,7 +54,7 @@
- extern int is_hexadecimal(const char * str, const short ignore_space);
- 
- /* string and file functions */
--extern char *add_slashes(char *string, int arguments_2_strip);
-+extern char *add_slashes(char *string);
- extern int file_exists(const char *filename);
- extern char *strip_alpha(char *string);
- extern char *strncopy(char *dst, const char *src, size_t n);


More information about the SM-Commit mailing list