diff -urNbB conky.o/Makefile conky/Makefile
--- conky.o/Makefile	2012-03-08 07:07:13.000000000 +0200
+++ conky/Makefile	2012-07-18 19:42:44.000000000 +0300
@@ -6,8 +6,7 @@
 #
 
 PORTNAME=	conky
-PORTVERSION=	1.8.1
-PORTREVISION=	5
+PORTVERSION=	1.9.0
 CATEGORIES=	sysutils
 MASTER_SITES=	SF
 
diff -urNbB conky.o/distinfo conky/distinfo
--- conky.o/distinfo	2010-10-30 14:43:47.000000000 +0300
+++ conky/distinfo	2012-07-18 19:43:09.000000000 +0300
@@ -1,2 +1,2 @@
-SHA256 (conky-1.8.1.tar.bz2) = f85a278f2869596b1fd68b6d26d58c93af8dcc39d5186bbcfd587d4c545e5e43
-SIZE (conky-1.8.1.tar.bz2) = 612481
+SHA256 (conky-1.9.0.tar.bz2) = baf1b550f135fbfb53e5e286a33aadc03a667d63bf6c4d52ba7637366295bb6f
+SIZE (conky-1.9.0.tar.bz2) = 626555
diff -urNbB conky.o/files/patch-configure conky/files/patch-configure
--- conky.o/files/patch-configure	2012-03-08 07:07:14.000000000 +0200
+++ conky/files/patch-configure	2012-07-18 20:26:45.000000000 +0300
@@ -1,6 +1,6 @@
---- configure.orig
-+++ configure
-@@ -1002,6 +1002,7 @@
+--- configure.orig	2012-05-04 00:47:40.000000000 +0300
++++ configure	2012-07-18 20:26:28.000000000 +0300
+@@ -895,6 +895,7 @@
  enable_xft
  enable_nvidia
  enable_alsa
@@ -8,7 +8,7 @@
  enable_debug
  enable_testing
  enable_profiling
-@@ -1729,6 +1730,7 @@
+@@ -1620,6 +1621,7 @@
    --enable-nvidia         enable if you want nvidia support [default=no]
    --disable-alsa          disable if you do not want ALSA support
                            [default=yes]
@@ -16,25 +16,20 @@
    --enable-debug          compile with debug symbols [default=no]
    --enable-testing        use strict compiler flags for testing [default=no]
    --enable-profiling      specify compiler flags for use with gprof and gcov
-@@ -11647,7 +11649,7 @@
- 
- 
- if test x$want_apcupsd = xyes; then
--  if test x"$uname" != xLinux; then
-+  if test x"$uname" != xLinux -a x"$uname" != xFreeBSD; then
-       { $as_echo "$as_me:${as_lineno-$LINENO}: apcupsd not supported on $uname... disabling" >&5
- $as_echo "$as_me: apcupsd not supported on $uname... disabling" >&6;}
-       want_apcupsd="not supported on $uname"
-@@ -11675,7 +11675,7 @@
- 
- 
- if test x$want_iostats = xyes; then
--  if test x"$uname" != xLinux; then
-+  if test x"$uname" != xLinux -a x"$uname" != xFreeBSD; then
-       { $as_echo "$as_me:${as_lineno-$LINENO}: iostats not supported on $uname... disabling" >&5
- $as_echo "$as_me: iostats not supported on $uname... disabling" >&6;}
-       want_iostats="not supported on $uname"
-@@ -16071,20 +16073,65 @@
+@@ -11930,7 +11932,11 @@
+   Linux*)
+     WANT_SYSINFO=yes
+     ;;
+-  FreeBSD*|GNU/kFreeBSD*)
++  FreeBSD*)
++    WANT_KVM=yes
++    WANT_DEVSTAT=yes
++    ;;
++  GNU/kFreeBSD*)
+     WANT_KVM=yes
+     WANT_DEVSTAT=yes
+     WANT_OPTRESET=yes
+@@ -16998,18 +17004,63 @@
  
  done
  
@@ -42,29 +37,26 @@
 -for ac_header in sys/inotify.h
 -do :
 -  ac_fn_c_check_header_mongrel "$LINENO" "sys/inotify.h" "ac_cv_header_sys_inotify_h" "$ac_includes_default"
--if test "x$ac_cv_header_sys_inotify_h" = x""yes; then :
--  cat >>confdefs.h <<_ACEOF
--#define HAVE_SYS_INOTIFY_H 1
--_ACEOF
- 
++
 +# Check whether --enable-inotify was given.
 +if test "${enable_inotify+set}" = set; then :
 +  enableval=$enable_inotify; want_inotify="$enableval"
 +else
 +  want_inotify=no
- fi
- 
--done
++fi
++
 +if test x$want_inotify = xyes; then
 +    ac_fn_c_check_header_mongrel "$LINENO" "sys/inotify.h" "ac_cv_header_sys_inotify_h" "$ac_includes_default"
-+if test "x$ac_cv_header_sys_inotify_h" = xyes; then :
+ if test "x$ac_cv_header_sys_inotify_h" = xyes; then :
+-  cat >>confdefs.h <<_ACEOF
+-#define HAVE_SYS_INOTIFY_H 1
+-_ACEOF
 + 
 +else
 +  want_inotify=no
 +fi
  
- 
-+fi
+ fi
 +if test x$want_inotify = xyes; then
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inotify_init in -linotify" >&5
 +$as_echo_n "checking for inotify_init in -linotify... " >&6; }
@@ -75,7 +67,8 @@
 +LIBS="-linotify  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
-+
+ 
+-done
 +#include <sys/inotify.h>
 +
 +char inotify_init ();
@@ -105,16 +98,6 @@
 +fi
 +
 +fi
-+
- 
- 
- $as_echo "#define DEFAULTNETDEV \"eth0\"" >>confdefs.h
-@@ -16102,7 +16153,7 @@
- $as_echo "#define DEFAULT_TEXT_BUFFER_SIZE 256" >>confdefs.h
- 
- 
--$as_echo "#define MAX_NET_INTERFACES 16" >>confdefs.h
-+$as_echo "#define MAX_NET_INTERFACES 64" >>confdefs.h
  
  
  
diff -urNbB conky.o/files/patch-src-ccurl_thread.c conky/files/patch-src-ccurl_thread.c
--- conky.o/files/patch-src-ccurl_thread.c	2012-03-08 07:07:14.000000000 +0200
+++ conky/files/patch-src-ccurl_thread.c	1970-01-01 02:00:00.000000000 +0200
@@ -1,10 +0,0 @@
---- src/ccurl_thread.c.orig	2010-10-06 00:29:36.000000000 +0300
-+++ src/ccurl_thread.c	2012-03-05 01:08:23.000000000 +0200
-@@ -33,7 +33,6 @@
- #endif /* DEBUG */
- 
- #include <curl/curl.h>
--#include <curl/types.h>
- #include <curl/easy.h>
- 
- /*
diff -urNbB conky.o/files/patch-src-conky.c conky/files/patch-src-conky.c
--- conky.o/files/patch-src-conky.c	2012-03-08 07:07:14.000000000 +0200
+++ conky/files/patch-src-conky.c	2012-07-18 19:55:13.000000000 +0300
@@ -9,34 +9,6 @@
  #include <bsd/bsd.h>
  #endif
  
-@@ -2072,9 +2072,11 @@
- 			OBJ(xmms2_percent) {
- 				snprintf(p, p_max_size, "%2.0f", cur->xmms2.progress * 100);
- 			}
-+#ifdef X11
- 			OBJ(xmms2_bar) {
- 				new_bar(obj, p, p_max_size, (int) (cur->xmms2.progress * 255.0f));
- 			}
-+#endif /* X11 */
- 			OBJ(xmms2_playlist) {
- 				snprintf(p, p_max_size, "%s", cur->xmms2.playlist);
- 			}
-@@ -2150,6 +2152,7 @@
- 				snprintf(p, p_max_size, "%s",
- 					cur->audacious.items[AUDACIOUS_MAIN_VOLUME]);
- 			}
-+#ifdef X11
- 			OBJ(audacious_bar) {
- 				double progress;
- 
-@@ -2158,6 +2161,7 @@
- 					atof(cur->audacious.items[AUDACIOUS_LENGTH_SECONDS]);
- 				new_bar(obj, p, p_max_size, (int) (progress * 255.0f));
- 			}
-+#endif /* X11 */
- #endif /* AUDACIOUS */
- 
- #ifdef BMPX
 @@ -5716,6 +5720,7 @@
  			"kvm_open")) == NULL) {
  		CRIT_ERR(NULL, NULL, "cannot read kvm");
@@ -45,14 +17,6 @@
  #endif
  
  	while (1) {
-@@ -5999,6 +6004,7 @@
- 
- #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
- 	kvm_close(kd);
-+	pthread_mutex_destroy(&kvm_proc_mutex);
- #endif
- 
- 	return 0;
 @@ -6007,7 +6013,7 @@
  
  void alarm_handler(void) {
diff -urNbB conky.o/files/patch-src-core.c conky/files/patch-src-core.c
--- conky.o/files/patch-src-core.c	2010-10-19 04:12:52.000000000 +0300
+++ conky/files/patch-src-core.c	1970-01-01 02:00:00.000000000 +0200
@@ -1,59 +0,0 @@
---- src/core.c.orig	2010-10-06 00:29:36.000000000 +0300
-+++ src/core.c	2010-10-09 23:51:18.000000000 +0300
-@@ -541,11 +541,11 @@
- 		parse_platform_sensor(obj, arg);
- 	END OBJ_ARG(hwmon, 0, "hwmon needs argumanets")
- 		parse_hwmon_sensor(obj, arg);
--	END OBJ(addr, &update_net_stats)
--		parse_net_stat_arg(obj, arg, free_at_crash);
- 	END OBJ(addrs, &update_net_stats)
- 		parse_net_stat_arg(obj, arg, free_at_crash);
- #endif /* __linux__ */
-+	END OBJ(addr, &update_net_stats)
-+		parse_net_stat_arg(obj, arg, free_at_crash);
- 	END
- 	/* we have four different types of top (top, top_mem, top_time and top_io). To
- 	 * avoid having almost-same code four times, we have this special
-@@ -577,7 +577,7 @@
- 		obj->data.s = strndup(arg, text_buffer_size);
- 	END OBJ_IF_ARG(if_mounted, 0, "if_mounted needs an argument")
- 		obj->data.s = strndup(arg, text_buffer_size);
--#ifdef __linux__
-+#if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
- 	END OBJ_IF_ARG(if_running, &update_top, "if_running needs an argument")
- 		top_running = 1;
- 		obj->data.s = strndup(arg, text_buffer_size);
-@@ -787,9 +787,9 @@
- 		obj->sub = malloc(sizeof(struct text_object));
- 		extract_variable_text_internal(obj->sub, arg);
- 	END OBJ(processes, &update_total_processes)
-+#ifdef __linux__
- 	END OBJ(running_processes, &update_top)
- 		top_running = 1;
--#ifdef __linux__
- 	END OBJ(threads, &update_threads)
- 	END OBJ(running_threads, &update_stat)
- #else
-@@ -967,8 +967,10 @@
- 	END OBJ(xmms2_size, &update_xmms2)
- 	END OBJ(xmms2_status, &update_xmms2)
- 	END OBJ(xmms2_percent, &update_xmms2)
-+#ifdef X11
- 	END OBJ(xmms2_bar, &update_xmms2)
- 		scan_bar(obj, arg);
-+#endif
- 	END OBJ(xmms2_smart, &update_xmms2)
- 	END OBJ(xmms2_playlist, &update_xmms2)
- 	END OBJ(xmms2_timesplayed, &update_xmms2)
-@@ -994,9 +996,11 @@
- 	END OBJ(audacious_playlist_length, &update_audacious)
- 	END OBJ(audacious_playlist_position, &update_audacious)
- 	END OBJ(audacious_main_volume, &update_audacious)
-+#ifdef X11
- 	END OBJ(audacious_bar, &update_audacious)
- 		scan_bar(obj, arg);
- #endif
-+#endif
- #ifdef BMPX
- 	END OBJ(bmpx_title, &update_bmpx)
- 		memset(&(info.bmpx), 0, sizeof(struct bmpx_s));
diff -urNbB conky.o/files/patch-src-exec.c conky/files/patch-src-exec.c
--- conky.o/files/patch-src-exec.c	2010-10-30 14:43:47.000000000 +0300
+++ conky/files/patch-src-exec.c	1970-01-01 02:00:00.000000000 +0200
@@ -1,28 +0,0 @@
---- src/exec.c.orig	2010-10-27 20:19:48.000000000 +0300
-+++ src/exec.c	2010-10-27 20:19:52.000000000 +0300
-@@ -93,6 +93,7 @@
- 		} else {
- 			close(1);
- 		}
-+		close(parentend);
- 		dup(childend);	//by dupping childend, the returned fd will have close-on-exec turned off
- 		execl("/bin/sh", "sh", "-c", command, (char *) NULL);
- 		_exit(EXIT_FAILURE); //child should die here, (normally execl will take care of this but it can fail)
-@@ -156,7 +157,7 @@
- 		int length;
- 
- 		length = fread(buf, 1, size, fp);
--		pclose(fp);
-+		fclose(fp);
- 		buf[length] = '\0';
- 		if (length > 0 && buf[length - 1] == '\n') {
- 			buf[length - 1] = '\0';
-@@ -320,7 +321,7 @@
- 			ed->buffer = malloc(text_buffer_size);
- 
- 		length = fread(ed->buffer, 1, text_buffer_size, fp);
--		pclose(fp);
-+		fclose(fp);
- 
- 		output = ed->buffer;
- 		output[length] = '\0';
diff -urNbB conky.o/files/patch-src-freebsd.c conky/files/patch-src-freebsd.c
--- conky.o/files/patch-src-freebsd.c	2012-03-08 07:07:14.000000000 +0200
+++ conky/files/patch-src-freebsd.c	2012-07-18 20:08:35.000000000 +0300
@@ -12,21 +12,8 @@
  #include <net/if.h>
  #include <net/if_mib.h>
  #include <net/if_media.h>
-@@ -266,7 +271,9 @@
- {
- 	int n_processes;
- 
-+	pthread_mutex_lock(&kvm_proc_mutex);
- 	kvm_getprocs(kd, KERN_PROC_ALL, 0, &n_processes);
-+	pthread_mutex_unlock(&kvm_proc_mutex);
- 
- 	info.procs = n_processes;
- 	return 0;
-@@ -278,9 +285,10 @@
- 	int n_processes;
- 	int i, cnt = 0;
- 
-+	pthread_mutex_lock(&kvm_proc_mutex);
+@@ -278,7 +288,7 @@
+ 	pthread_mutex_lock(&kvm_proc_mutex);
  	p = kvm_getprocs(kd, KERN_PROC_ALL, 0, &n_processes);
  	for (i = 0; i < n_processes; i++) {
 -#if (__FreeBSD__ < 5) && (__FreeBSD_kernel__ < 5)
@@ -34,14 +21,6 @@
  		if (p[i].kp_proc.p_stat == SRUN) {
  #else
  		if (p[i].ki_stat == SRUN) {
-@@ -288,6 +296,7 @@
- 			cnt++;
- 		}
- 	}
-+	pthread_mutex_unlock(&kvm_proc_mutex);
- 
- 	info.run_procs = cnt;
- 	return 0;
 @@ -296,7 +305,6 @@
  void get_cpu_count(void)
  {
@@ -50,19 +29,3 @@
  
  	if (GETSYSCTL("hw.ncpu", cpu_count) == 0) {
  		info.cpu_count = cpu_count;
-@@ -748,6 +756,7 @@
- 		CRIT_ERR(NULL, NULL, "Cannot read sysctl \"vm.stats.vm.v_page_count\"");
- 	}
- 
-+	pthread_mutex_lock(&kvm_proc_mutex);
- 	p = kvm_getprocs(kd, KERN_PROC_PROC, 0, &n_processes);
- 	processes = malloc(n_processes * sizeof(struct process));
- 
-@@ -764,6 +769,7 @@
- 			j++;
- 		}
- 	}
-+	pthread_mutex_unlock(&kvm_proc_mutex);
- 
- 	qsort(processes, j - 1, sizeof(struct process), comparemem);
- 	for (i = 0; i < 10 && i < n_processes; i++) {
diff -urNbB conky.o/files/patch-src-freebsd.h conky/files/patch-src-freebsd.h
--- conky.o/files/patch-src-freebsd.h	2010-10-30 14:43:47.000000000 +0300
+++ conky/files/patch-src-freebsd.h	1970-01-01 02:00:00.000000000 +0200
@@ -1,16 +0,0 @@
---- src/freebsd.h.orig	2010-10-24 03:14:11.000000000 +0300
-+++ src/freebsd.h	2010-10-24 03:13:05.000000000 +0300
-@@ -9,11 +9,13 @@
- #include <sys/ucred.h>
- #include <fcntl.h>
- #include <kvm.h>
-+#include <pthread.h>
- #if (defined(i386) || defined(__i386__))
- #include <machine/apm_bios.h>
- #endif /* i386 || __i386__ */
- 
- kvm_t *kd;
-+pthread_mutex_t kvm_proc_mutex;
- 
- int get_entropy_avail(unsigned int *);
- int get_entropy_poolsize(unsigned int *);
diff -urNbB conky.o/files/patch-src-fs.c conky/files/patch-src-fs.c
--- conky.o/files/patch-src-fs.c	1970-01-01 02:00:00.000000000 +0200
+++ conky/files/patch-src-fs.c	2012-07-18 20:24:48.000000000 +0300
@@ -0,0 +1,18 @@
+--- src/fs.c.orig	2012-05-04 00:08:27.000000000 +0300
++++ src/fs.c	2012-07-18 20:24:10.000000000 +0300
+@@ -118,9 +118,15 @@
+ 
+ static void update_fs_stat(struct fs_stat *fs)
+ {
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++	struct statfs s;
++
++	if (statfs(fs->path, &s) == 0) {
++#else
+ 	struct statfs64 s;
+ 
+ 	if (statfs64(fs->path, &s) == 0) {
++#endif
+ 		fs->size = (long long)s.f_blocks * s.f_bsize;
+ 		/* bfree (root) or bavail (non-roots) ? */
+ 		fs->avail = (long long)s.f_bavail * s.f_bsize;
diff -urNbB conky.o/files/patch-src-xmms2.c conky/files/patch-src-xmms2.c
--- conky.o/files/patch-src-xmms2.c	2010-10-19 04:12:52.000000000 +0300
+++ conky/files/patch-src-xmms2.c	1970-01-01 02:00:00.000000000 +0200
@@ -1,11 +0,0 @@
---- src/xmms2.c.orig	2010-09-29 04:54:10.000000000 +0300
-+++ src/xmms2.c	2010-09-29 04:55:19.000000000 +0300
-@@ -223,7 +223,7 @@
- 				break;
- 			case XMMS_PLAYBACK_STATUS_STOP:
- 				strncpy(ptr->xmms2.status, "Stopped", text_buffer_size - 1);
--				ptr->xmms2.elapsed = ptr->xmms2.progress = ptr->xmms2.percent = 0;
-+				ptr->xmms2.elapsed = ptr->xmms2.progress = 0;
- 				break;
- 			default:
- 				strncpy(ptr->xmms2.status, "Unknown", text_buffer_size - 1);
