summaryrefslogtreecommitdiff
path: root/sysutils/libgtop
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2007-09-20 21:12:04 +0000
committerwiz <wiz@pkgsrc.org>2007-09-20 21:12:04 +0000
commit179070a57e970617b66a0d1bfe1033836574cec1 (patch)
treeb4185a9eb19f8e143ede900b0f54448ab2e53a59 /sysutils/libgtop
parent1f9fdbf7f8c91b79a3958758e68f873d16eafdeb (diff)
downloadpkgsrc-179070a57e970617b66a0d1bfe1033836574cec1.tar.gz
Rename libgtop2 to libgtop, to match upstream name.
Diffstat (limited to 'sysutils/libgtop')
-rw-r--r--sysutils/libgtop/DESCR4
-rw-r--r--sysutils/libgtop/Makefile99
-rw-r--r--sysutils/libgtop/PLIST121
-rw-r--r--sysutils/libgtop/buildlink3.mk23
-rw-r--r--sysutils/libgtop/distinfo27
-rw-r--r--sysutils/libgtop/patches/patch-aa241
-rw-r--r--sysutils/libgtop/patches/patch-ab94
-rw-r--r--sysutils/libgtop/patches/patch-ac34
-rw-r--r--sysutils/libgtop/patches/patch-ad19
-rw-r--r--sysutils/libgtop/patches/patch-ae87
-rw-r--r--sysutils/libgtop/patches/patch-af14
-rw-r--r--sysutils/libgtop/patches/patch-ag159
-rw-r--r--sysutils/libgtop/patches/patch-ah12
-rw-r--r--sysutils/libgtop/patches/patch-ai46
-rw-r--r--sysutils/libgtop/patches/patch-aj16
-rw-r--r--sysutils/libgtop/patches/patch-ak70
-rw-r--r--sysutils/libgtop/patches/patch-al39
-rw-r--r--sysutils/libgtop/patches/patch-am111
-rw-r--r--sysutils/libgtop/patches/patch-an19
-rw-r--r--sysutils/libgtop/patches/patch-ao74
-rw-r--r--sysutils/libgtop/patches/patch-ap69
-rw-r--r--sysutils/libgtop/patches/patch-aq13
-rw-r--r--sysutils/libgtop/patches/patch-ba34
-rw-r--r--sysutils/libgtop/patches/patch-bb35
-rw-r--r--sysutils/libgtop/patches/patch-bc61
-rw-r--r--sysutils/libgtop/patches/patch-bd22
-rw-r--r--sysutils/libgtop/patches/patch-bg30
27 files changed, 1573 insertions, 0 deletions
diff --git a/sysutils/libgtop/DESCR b/sysutils/libgtop/DESCR
new file mode 100644
index 00000000000..55f3012d616
--- /dev/null
+++ b/sysutils/libgtop/DESCR
@@ -0,0 +1,4 @@
+libgtop is a library that fetches system information about the running
+system such as cpu and memory usage, active processes etc. It
+provides a setgid server that fetches the information and a
+client-side library that talks to this server.
diff --git a/sysutils/libgtop/Makefile b/sysutils/libgtop/Makefile
new file mode 100644
index 00000000000..c81c2cf7a5b
--- /dev/null
+++ b/sysutils/libgtop/Makefile
@@ -0,0 +1,99 @@
+# $NetBSD: Makefile,v 1.11 2007/09/20 21:12:04 wiz Exp $
+
+DISTNAME= libgtop-2.14.2
+PKGREVISION= 5
+CATEGORIES= sysutils gnome
+MASTER_SITES= ${MASTER_SITE_GNOME:=sources/libgtop/2.14/}
+EXTRACT_SUFX= .tar.bz2
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= http://www.gnome.org/
+COMMENT= Library to retrieve system information, used in GNOME2
+
+OSVERSION_SPECIFIC= YES
+
+USE_PKGLOCALEDIR= YES
+USE_TOOLS+= gmake makeinfo msgfmt perl pkg-config intltool
+USE_LIBTOOL= YES
+PKGCONFIG_OVERRIDE= libgtop-2.0.pc.in
+PKGCONFIG_OVERRIDE+= support/gnome-support-2.0.pc.in
+INFO_FILES= YES
+TEXINFO_REQD= 4.6
+CONFLICTS+= libgtop2-[0-9]*
+
+# The following flags are for debugging purposes. They don't need to
+# be used unless you are actively developing/debugging libgtop.
+#CPPFLAGS+= -DLIBGTOP_ENABLE_DEBUG -DLIBGTOP_FATAL_WARNINGS
+#CFLAGS+= -g
+#LDFLAGS+= -g
+
+GNU_CONFIGURE= YES
+CONFIGURE_ARGS+= --with-glib-prefix=${BUILDLINK_PREFIX.glib2}
+CONFIGURE_ARGS+= --with-catgets --with-libgtop-guile=no
+CONFIGURE_ARGS+= --without-x
+CONFIGURE_ENV+= LN_S="${LN} -s"
+
+PRINT_PLIST_AWK+= /^bin\/libgtop_server2$$/ \
+ { print "$${LIBGTOP_SERVER}" $$0; next }
+PRINT_PLIST_AWK+= /^include\/libgtop-2.0\/glibtop_suid.h$$/ \
+ { print "$${LIBGTOP_SUID_H}" $$0; next }
+
+.include "../../mk/bsd.prefs.mk"
+
+.if ${OPSYS} == NetBSD
+. if (${MACHINE_ARCH} != alpha) && \
+ (${MACHINE_ARCH} != arm) && (${MACHINE_ARCH} != arm32) && \
+ (${MACHINE_ARCH} != i386) && (${MACHINE_ARCH} != m68k) && \
+ (${MACHINE_ARCH} != mipsel) && (${MACHINE_ARCH} != powerpc) && \
+ (${MACHINE_ARCH} != sparc) && (${MACHINE_ARCH} != sparc64) && \
+ (${MACHINE_ARCH} != x86_64)
+PKG_FAIL_REASON+= "${PKGNAME} has not yet been ported to ${MACHINE_ARCH}."
+PKG_FAIL_REASON+= "Please look at /usr/include/${MACHINE_ARCH}/pcb.h"
+PKG_FAIL_REASON+= "and update ${WRKSRC}/sysdeps/freebsd/prockernel.c appropriately."
+PKG_FAIL_REASON+= "(More information can be found in libgtop.info.)"
+. endif
+.endif
+
+.if ${OPSYS} == "Linux"
+PLIST_SUBST+= LIBGTOP_SERVER="@comment "
+PLIST_SUBST+= LIBGTOP_SUID_H="@comment "
+.elif ${OPSYS} == "SunOS"
+PLIST_SUBST+= LIBGTOP_SERVER=""
+PLIST_SUBST+= LIBGTOP_SUID_H="@comment "
+.else
+PLIST_SUBST+= LIBGTOP_SERVER=""
+PLIST_SUBST+= LIBGTOP_SUID_H=""
+.endif
+
+.if ${OPSYS} != "Linux"
+post-install:
+ ${CHMOD} g+s ${PREFIX}/bin/libgtop_server2
+.endif
+
+# XXX This needs a check in the configure script, which should be clean
+# enough to be integrated in the mainstream sources.
+statvfs_h= /usr/include/sys/statvfs.h
+.if exists(${statvfs_h})
+reads_count!= if ${GREP} f_syncreads ${statvfs_h} >/dev/null; then \
+ ${ECHO} yes; else ${ECHO} no; fi
+. if ${reads_count} == "yes"
+CPPFLAGS+= -DHAVE_STATVFS_READS_COUNT
+. endif
+. undef reads_count
+
+writes_count!= if ${GREP} f_syncwrites ${statvfs_h} >/dev/null; then \
+ ${ECHO} yes; else ${ECHO} no; fi
+. if ${writes_count} == "yes"
+CPPFLAGS+= -DHAVE_STATVFS_WRITES_COUNT
+. endif
+. undef writes_count
+.endif
+.undef statvfs_h
+
+BUILDLINK_API_DEPENDS.glib2+= glib2>=2.6.0
+
+.include "../../devel/gettext-lib/buildlink3.mk"
+.include "../../devel/glib2/buildlink3.mk"
+.include "../../devel/libgnome/buildlink3.mk"
+.include "../../devel/popt/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/sysutils/libgtop/PLIST b/sysutils/libgtop/PLIST
new file mode 100644
index 00000000000..8e9bf4e98a0
--- /dev/null
+++ b/sysutils/libgtop/PLIST
@@ -0,0 +1,121 @@
+@comment $NetBSD: PLIST,v 1.4 2007/09/20 21:12:05 wiz Exp $
+${LIBGTOP_SERVER}bin/libgtop_daemon2
+${LIBGTOP_SERVER}bin/libgtop_server2
+include/libgtop-2.0/glibtop.h
+include/libgtop-2.0/glibtop/close.h
+include/libgtop-2.0/glibtop/command.h
+include/libgtop-2.0/glibtop/cpu.h
+include/libgtop-2.0/glibtop/fsusage.h
+include/libgtop-2.0/glibtop/global.h
+include/libgtop-2.0/glibtop/gnuserv.h
+include/libgtop-2.0/glibtop/inodedb.h
+include/libgtop-2.0/glibtop/loadavg.h
+include/libgtop-2.0/glibtop/mem.h
+include/libgtop-2.0/glibtop/mountlist.h
+include/libgtop-2.0/glibtop/msg_limits.h
+include/libgtop-2.0/glibtop/netlist.h
+include/libgtop-2.0/glibtop/netload.h
+include/libgtop-2.0/glibtop/open.h
+include/libgtop-2.0/glibtop/parameter.h
+include/libgtop-2.0/glibtop/ppp.h
+include/libgtop-2.0/glibtop/procargs.h
+include/libgtop-2.0/glibtop/prockernel.h
+include/libgtop-2.0/glibtop/proclist.h
+include/libgtop-2.0/glibtop/procmap.h
+include/libgtop-2.0/glibtop/procmem.h
+include/libgtop-2.0/glibtop/procopenfiles.h
+include/libgtop-2.0/glibtop/procsegment.h
+include/libgtop-2.0/glibtop/procsignal.h
+include/libgtop-2.0/glibtop/procstate.h
+include/libgtop-2.0/glibtop/proctime.h
+include/libgtop-2.0/glibtop/procuid.h
+include/libgtop-2.0/glibtop/sem_limits.h
+include/libgtop-2.0/glibtop/shm_limits.h
+include/libgtop-2.0/glibtop/signal.h
+include/libgtop-2.0/glibtop/swap.h
+include/libgtop-2.0/glibtop/sysdeps.h
+include/libgtop-2.0/glibtop/sysinfo.h
+include/libgtop-2.0/glibtop/union.h
+include/libgtop-2.0/glibtop/uptime.h
+include/libgtop-2.0/glibtop/version.h
+include/libgtop-2.0/glibtop_machine.h
+include/libgtop-2.0/glibtop_server.h
+${LIBGTOP_SUID_H}include/libgtop-2.0/glibtop_suid.h
+include/libgtop-2.0/libgtopconfig.h
+info/libgtop2.info
+lib/libgtop-2.0.la
+lib/pkgconfig/libgtop-2.0.pc
+share/locale/am/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ar/LC_MESSAGES/libgtop-2.0.mo
+share/locale/az/LC_MESSAGES/libgtop-2.0.mo
+share/locale/be/LC_MESSAGES/libgtop-2.0.mo
+share/locale/bg/LC_MESSAGES/libgtop-2.0.mo
+share/locale/bn/LC_MESSAGES/libgtop-2.0.mo
+share/locale/bn_IN/LC_MESSAGES/libgtop-2.0.mo
+share/locale/bs/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ca/LC_MESSAGES/libgtop-2.0.mo
+share/locale/cs/LC_MESSAGES/libgtop-2.0.mo
+share/locale/cy/LC_MESSAGES/libgtop-2.0.mo
+share/locale/da/LC_MESSAGES/libgtop-2.0.mo
+share/locale/de/LC_MESSAGES/libgtop-2.0.mo
+share/locale/el/LC_MESSAGES/libgtop-2.0.mo
+share/locale/en_CA/LC_MESSAGES/libgtop-2.0.mo
+share/locale/en_GB/LC_MESSAGES/libgtop-2.0.mo
+share/locale/eo/LC_MESSAGES/libgtop-2.0.mo
+share/locale/es/LC_MESSAGES/libgtop-2.0.mo
+share/locale/et/LC_MESSAGES/libgtop-2.0.mo
+share/locale/eu/LC_MESSAGES/libgtop-2.0.mo
+share/locale/fa/LC_MESSAGES/libgtop-2.0.mo
+share/locale/fi/LC_MESSAGES/libgtop-2.0.mo
+share/locale/fr/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ga/LC_MESSAGES/libgtop-2.0.mo
+share/locale/gl/LC_MESSAGES/libgtop-2.0.mo
+share/locale/gu/LC_MESSAGES/libgtop-2.0.mo
+share/locale/he/LC_MESSAGES/libgtop-2.0.mo
+share/locale/hi/LC_MESSAGES/libgtop-2.0.mo
+share/locale/hr/LC_MESSAGES/libgtop-2.0.mo
+share/locale/hu/LC_MESSAGES/libgtop-2.0.mo
+share/locale/id/LC_MESSAGES/libgtop-2.0.mo
+share/locale/it/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ja/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ka/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ko/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ku/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ky/LC_MESSAGES/libgtop-2.0.mo
+share/locale/lt/LC_MESSAGES/libgtop-2.0.mo
+share/locale/lv/LC_MESSAGES/libgtop-2.0.mo
+share/locale/mg/LC_MESSAGES/libgtop-2.0.mo
+share/locale/mi/LC_MESSAGES/libgtop-2.0.mo
+share/locale/mk/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ml/LC_MESSAGES/libgtop-2.0.mo
+share/locale/mn/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ms/LC_MESSAGES/libgtop-2.0.mo
+share/locale/nb/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ne/LC_MESSAGES/libgtop-2.0.mo
+share/locale/nl/LC_MESSAGES/libgtop-2.0.mo
+share/locale/nn/LC_MESSAGES/libgtop-2.0.mo
+share/locale/or/LC_MESSAGES/libgtop-2.0.mo
+share/locale/pa/LC_MESSAGES/libgtop-2.0.mo
+share/locale/pl/LC_MESSAGES/libgtop-2.0.mo
+share/locale/pt/LC_MESSAGES/libgtop-2.0.mo
+share/locale/pt_BR/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ro/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ru/LC_MESSAGES/libgtop-2.0.mo
+share/locale/rw/LC_MESSAGES/libgtop-2.0.mo
+share/locale/sk/LC_MESSAGES/libgtop-2.0.mo
+share/locale/sl/LC_MESSAGES/libgtop-2.0.mo
+share/locale/sq/LC_MESSAGES/libgtop-2.0.mo
+share/locale/sr/LC_MESSAGES/libgtop-2.0.mo
+share/locale/sr@Latn/LC_MESSAGES/libgtop-2.0.mo
+share/locale/sv/LC_MESSAGES/libgtop-2.0.mo
+share/locale/ta/LC_MESSAGES/libgtop-2.0.mo
+share/locale/th/LC_MESSAGES/libgtop-2.0.mo
+share/locale/tr/LC_MESSAGES/libgtop-2.0.mo
+share/locale/uk/LC_MESSAGES/libgtop-2.0.mo
+share/locale/vi/LC_MESSAGES/libgtop-2.0.mo
+share/locale/xh/LC_MESSAGES/libgtop-2.0.mo
+share/locale/zh_CN/LC_MESSAGES/libgtop-2.0.mo
+share/locale/zh_HK/LC_MESSAGES/libgtop-2.0.mo
+share/locale/zh_TW/LC_MESSAGES/libgtop-2.0.mo
+@dirrm include/libgtop-2.0/glibtop
+@dirrm include/libgtop-2.0
diff --git a/sysutils/libgtop/buildlink3.mk b/sysutils/libgtop/buildlink3.mk
new file mode 100644
index 00000000000..eec7d85b026
--- /dev/null
+++ b/sysutils/libgtop/buildlink3.mk
@@ -0,0 +1,23 @@
+# $NetBSD: buildlink3.mk,v 1.4 2007/09/20 21:12:05 wiz Exp $
+
+BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+
+LIBGTOP_BUILDLINK3_MK:= ${LIBGTOP_BUILDLINK3_MK}+
+
+.if !empty(BUILDLINK_DEPTH:M+)
+BUILDLINK_DEPENDS+= libgtop
+.endif
+
+BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Nlibgtop}
+BUILDLINK_PACKAGES+= libgtop
+BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}libgtop
+
+.if !empty(LIBGTOP_BUILDLINK3_MK:M+)
+BUILDLINK_API_DEPENDS.libgtop+= libgtop>=2.14.0
+BUILDLINK_PKGSRCDIR.libgtop?= ../../sysutils/libgtop
+.endif # LIBGTOP_BUILDLINK3_MK
+
+.include "../../devel/gettext-lib/buildlink3.mk"
+.include "../../devel/glib2/buildlink3.mk"
+.include "../../devel/popt/buildlink3.mk"
+
+BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//}
diff --git a/sysutils/libgtop/distinfo b/sysutils/libgtop/distinfo
new file mode 100644
index 00000000000..8fb19f4aa52
--- /dev/null
+++ b/sysutils/libgtop/distinfo
@@ -0,0 +1,27 @@
+$NetBSD: distinfo,v 1.4 2007/09/20 21:12:06 wiz Exp $
+
+SHA1 (libgtop-2.14.2.tar.bz2) = 20e79a58c08e06e5f5e68d8ebbd575471f754e96
+RMD160 (libgtop-2.14.2.tar.bz2) = cb51f7252e015e17dcf3f1f991b36bf3e5496efe
+Size (libgtop-2.14.2.tar.bz2) = 664817 bytes
+SHA1 (patch-aa) = 01f43f6786e1d2727b68acb0083283e33cbc9ae5
+SHA1 (patch-ab) = 3a00a1c4f0d895d0e2ecc2bceabc4bbc5dbaa422
+SHA1 (patch-ac) = c645307376eddb5c469ab00bd7ec8217feb3e2d5
+SHA1 (patch-ad) = ada3c0128c0b7d3b670f8d30c910fe4c1e2e351a
+SHA1 (patch-ae) = 035419a4e8a505c672f727c843dbd977acd8ce35
+SHA1 (patch-af) = 520dbdec4a8cba6e82b08c169d97c3caebacd419
+SHA1 (patch-ag) = 2329761a8f0278e8f04a5704b4ab2f63d6b24576
+SHA1 (patch-ah) = 57d112d551149190a6b9c24074427457f8591691
+SHA1 (patch-ai) = 57d891785a45ec532757a48e77adafec091f3953
+SHA1 (patch-aj) = c244b5c60e61594c3d2c0bc95e05e12ad68938db
+SHA1 (patch-ak) = b8365370cd25da8626fc636d4c9faf91a626067d
+SHA1 (patch-al) = 5f7fb52914005c089c72589e8883bc062d3f14ab
+SHA1 (patch-am) = 42bfab5f3e65734e98cee0c4035b17dc515514cf
+SHA1 (patch-an) = 57a79bddc3f0e8237b72486aa8f8906f318ca38d
+SHA1 (patch-ao) = 456feb151050332f1bc6577363329da175499dbc
+SHA1 (patch-ap) = 1b842a59b821b2703b68935f59a65ffb6db3a68f
+SHA1 (patch-aq) = bb44484df341a009aa269fbaf5039e351e105e6c
+SHA1 (patch-ba) = fc99c68ec9765439bc82a38223a74bde319d26d5
+SHA1 (patch-bb) = 2940eeb9468f34683bd6d8adca196b669c412bfd
+SHA1 (patch-bc) = 3638dfee30a4f10bc9662c23063df3f6a8cdc914
+SHA1 (patch-bd) = 7825fd4d2e6c06510fa3d76b4efa4d2ffab2a7d8
+SHA1 (patch-bg) = f4adb1f60c777a92e63f4ad0fef6d9addea5f856
diff --git a/sysutils/libgtop/patches/patch-aa b/sysutils/libgtop/patches/patch-aa
new file mode 100644
index 00000000000..d04d24882ce
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-aa
@@ -0,0 +1,241 @@
+$NetBSD: patch-aa,v 1.5 2007/09/20 21:12:06 wiz Exp $
+
+--- configure.orig 2006-07-27 18:43:37.000000000 +0000
++++ configure
+@@ -20112,17 +20112,17 @@ echo $ECHO_N "checking for libgtop sysde
+ libgtop_have_sysinfo=yes
+ libgtop_need_server=no
+ ;;
+- freebsd*|netbsd*|openbsd*|bsdi*)
++ freebsd*|netbsd*|openbsd*|bsdi*|dragonfly*)
+ libgtop_sysdeps_dir=freebsd
+ libgtop_use_machine_h=yes
+ libgtop_need_server=yes
+- libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
++ libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2755 $(bindir)/libgtop_server'
+ ;;
+ solaris*)
+ libgtop_sysdeps_dir=solaris
+ libgtop_use_machine_h=yes
+ libgtop_need_server=yes
+- libgtop_postinstall='chgrp sys $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
++ libgtop_postinstall='chgrp sys $(bindir)/libgtop_server2 && chmod 2755 $(bindir)/libgtop_server'
+ ;;
+ aix*)
+ libgtop_sysdeps_dir=aix
+@@ -20170,7 +20170,7 @@ echo "${ECHO_T}$libgtop_sysdeps_dir" >&6
+
+
+ case "$host_os" in
+- *bsd*)
++ *bsd* | *dragonfly*)
+ echo "$as_me:$LINENO: checking for kvm_open in -lkvm" >&5
+ echo $ECHO_N "checking for kvm_open in -lkvm... $ECHO_C" >&6
+ if test "${ac_cv_lib_kvm_kvm_open+set}" = set; then
+@@ -20413,7 +20413,9 @@ cat >>conftest.$ac_ext <<_ACEOF
+ #include <net/netisr.h>
+ #include <net/route.h>
+
+-#if defined(__FreeBSD__) || defined(__NetBSD__)
++#if defined(__DragonFly__)
++#include <net/sppp/if_sppp.h>
++#elif defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <net/if_sppp.h>
+ #else
+ #include <i4b/sppp/if_sppp.h>
+@@ -20488,7 +20490,9 @@ cat >>conftest.$ac_ext <<_ACEOF
+ #include <net/netisr.h>
+ #include <net/route.h>
+
+-#if defined(__FreeBSD__) || defined(__NetBSD__)
++#if defined(__DragonFly__)
++#include <net/sppp/if_sppp.h>
++#elif defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <net/if_sppp.h>
+ #else
+ #include <i4b/sppp/if_sppp.h>
+@@ -20561,9 +20565,10 @@ echo $ECHO_N "checking what we need to d
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ msginfo_needs=
+- for def in nothing KERNEL _KERNEL; do
++ for def in nothing KERNEL _KERNEL_STRUCTURES _KERNEL; do
+ cat >conftest.$ac_ext <<_ACEOF
+ #define $def
++#include <sys/types.h>
+ #include <sys/ipc.h>
+ #include <sys/msg.h>
+ #include <stdio.h>
+@@ -23925,6 +23930,146 @@ fi
+ esac
+
+
++echo "$as_me:$LINENO: checking for kvm_open in -lkvm" >&5
++echo $ECHO_N "checking for kvm_open in -lkvm... $ECHO_C" >&6
++if test "${ac_cv_lib_mach_kvm_open+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lkvm $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char kvm_open ();
++int
++main ()
++{
++kvm_open ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++ (eval $ac_link) 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_lib_mach_kvm_open=yes
++else
++ echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_lib_mach_kvm_open=no
++fi
++rm -f conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_mach_kvm_open" >&5
++echo "${ECHO_T}$ac_cv_lib_mach_kvm_open" >&6
++if test $ac_cv_lib_mach_kvm_open = yes; then
++ cat >>confdefs.h <<_ACEOF
++#define HAVE_LIBMACH 1
++_ACEOF
++
++ KVM_LIBS="-lkvm $KVM_LIBS"
++
++fi
++
++echo "$as_me:$LINENO: checking for kinfo_get_sched_hz in -lkinfo" >&5
++echo $ECHO_N "checking for kinfo_get_sched_hz in -lkinfo... $ECHO_C" >&6
++if test "${ac_cv_lib_kinfo_kinfo_get_sched_gz+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lkinfo $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char kinfo_get_sched_hz ();
++int
++main ()
++{
++kinfo_get_sched_hz ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++ (eval $ac_link) 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_lib_kinfo_kinfo_get_sched_hz=yes
++else
++ echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_lib_kinfo_kinfo_get_sched_hz=no
++fi
++rm -f conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_kinfo_kinfo_get_sched_hz" >&5
++echo "${ECHO_T}$ac_cv_lib_kinfo_kinfo_get_sched_hz" >&6
++if test $ac_cv_lib_kinfo_kinfo_get_sched_hz = yes; then
++
++ LIBS="-lkinfo $LIBS" # we need kvm as well
++fi
++
+ echo "$as_me:$LINENO: checking for vm_statistics in -lmach" >&5
+ echo $ECHO_N "checking for vm_statistics in -lmach... $ECHO_C" >&6
+ if test "${ac_cv_lib_mach_vm_statistics+set}" = set; then
+@@ -29952,7 +30097,7 @@ if test x$cross_compiling = xyes ; then
+ sunos*)
+ fu_cv_sys_stat_statfs4=yes
+ ;;
+- freebsd*)
++ freebsd* | dragonfly*)
+ fu_cv_sys_stat_statfs2_bsize=yes
+ ;;
+ osf*)
+@@ -30603,7 +30748,7 @@ cat >>conftest.$ac_ext <<_ACEOF
+
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+- $EGREP "f_type;" >/dev/null 2>&1; then
++ $EGREP "f_type;|struct statvfs" >/dev/null 2>&1; then
+ ok=yes
+ fi
+ rm -f conftest*
+@@ -32141,6 +32290,7 @@ s,@ECHO_C@,$ECHO_C,;t t
+ s,@ECHO_N@,$ECHO_N,;t t
+ s,@ECHO_T@,$ECHO_T,;t t
+ s,@LIBS@,$LIBS,;t t
++s,@KVM_LIBS@,$KVM_LIBS,;t t
+ s,@build@,$build,;t t
+ s,@build_cpu@,$build_cpu,;t t
+ s,@build_vendor@,$build_vendor,;t t
diff --git a/sysutils/libgtop/patches/patch-ab b/sysutils/libgtop/patches/patch-ab
new file mode 100644
index 00000000000..26d01995973
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-ab
@@ -0,0 +1,94 @@
+$NetBSD: patch-ab,v 1.6 2007/09/20 21:12:06 wiz Exp $
+
+--- sysdeps/freebsd/proctime.c.orig 2006-04-04 20:01:43.000000000 +0000
++++ sysdeps/freebsd/proctime.c
+@@ -32,6 +32,10 @@
+ #include <osreldate.h>
+ #endif
+
++#ifdef __NetBSD__
++#include <sys/resourcevar.h>
++#endif
++
+ static const unsigned long _glibtop_sysdeps_proc_time =
+ (1L << GLIBTOP_PROC_TIME_RTIME) + (1L << GLIBTOP_PROC_TIME_FREQUENCY);
+
+@@ -58,7 +62,7 @@ glibtop_init_proc_time_p (glibtop *serve
+ * system, and interrupt time usage.
+ */
+
+-#ifndef __FreeBSD__
++#if !defined(__FreeBSD__) && !defined(__DragonFly__)
+
+ #ifndef __FreeBSD__
+ static void
+@@ -125,7 +129,9 @@ glibtop_get_proc_time_p (glibtop *server
+ #else
+ struct user *u_addr = (struct user *)USRSTACK;
+ #endif
++#if !defined(__DragonFly__)
+ struct pstats pstats;
++#endif
+ int count;
+
+ glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_TIME), 0);
+@@ -142,11 +148,15 @@ glibtop_get_proc_time_p (glibtop *server
+
+ /* Get the process information */
+ pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
+- if ((pinfo == NULL) || (count != 1))
+- glibtop_error_io_r (server, "kvm_getprocs (%d)", pid);
++ if ((pinfo == NULL) || (count != 1)) {
++ glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
++ return;
++ }
+
+ #if defined(__FreeBSD__) && (__FreeBSD_version >= 500013)
+ buf->rtime = pinfo [0].ki_runtime;
++#elif defined(__DragonFly__)
++ buf->rtime = pinfo [0].kp_eproc.e_uticks / 100000;
+ #elif (defined __FreeBSD__) && (__FreeBSD_version <= 500013)
+ buf->rtime = pinfo [0].kp_proc.p_runtime;
+ #else
+@@ -189,16 +199,38 @@ glibtop_get_proc_time_p (glibtop *server
+ if ((pinfo [0].ki_flag & P_INMEM)) {
+ #endif
+ buf->utime = pinfo [0].ki_runtime;
+- buf->stime = 0; /* XXX */
++ buf->stime = tv2sec (pinfo [0].ki_rusage.ru_stime);
+ buf->cutime = tv2sec (pinfo [0].ki_childtime);
+- buf->cstime = 0; /* XXX */
++#if __FreeBSD_version >= 600000
++ buf->cstime = tv2sec (pinfo [0].ki_rusage_ch.ru_stime);
++#else
++ buf->cstime = 0;
++#endif
+ buf->start_time = tv2sec (pinfo [0].ki_start);
+ buf->flags = _glibtop_sysdeps_proc_time_user;
+ }
+
+ glibtop_suid_enter (server);
+
+-#elif (__FreeBSD_version <= 500013)
++#elif defined(__DragonFly__)
++
++ if ((pinfo [0].kp_proc.p_flag & P_SWAPPEDOUT) == 0)
++ {
++
++ buf->utime = pinfo[0].kp_eproc.e_uticks / 1000000;
++ buf->stime = pinfo[0].kp_eproc.e_sticks / 1000000;
++#if __DragonFly_version >= 180000
++ buf->cutime = 0; /* XXX no idea about this */
++ buf->cstime = 0;
++#else
++ buf->cutime = tv2sec (pinfo[0].kp_eproc.e_stats.p_cru.ru_utime);
++ buf->cstime = tv2sec (pinfo[0].kp_eproc.e_stats.p_cru.ru_stime);
++#endif
++ buf->start_time = tv2sec (pinfo[0].kp_thread.td_start);
++ buf->flags = _glibtop_sysdeps_proc_time_user;
++ glibtop_suid_leave (server);
++ }
++#elif defined(__FreeBSD__) && (__FreeBSD_version <= 500013)
+
+ if ((pinfo [0].kp_proc.p_flag & P_INMEM) &&
+ kvm_uread (server->machine.kd, &(pinfo [0]).kp_proc,
diff --git a/sysutils/libgtop/patches/patch-ac b/sysutils/libgtop/patches/patch-ac
new file mode 100644
index 00000000000..0e07b0f12d5
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-ac
@@ -0,0 +1,34 @@
+$NetBSD: patch-ac,v 1.5 2007/09/20 21:12:07 wiz Exp $
+
+--- sysdeps/common/mountlist.c.orig 2003-10-20 09:29:03.000000000 -0500
++++ sysdeps/common/mountlist.c
+@@ -106,7 +106,7 @@ static struct mount_entry *read_filesyst
+ #endif
+
+
+-#if defined (MOUNTED_GETMNTINFO) && !defined (__NetBSD__) && !defined (__OpenBSD__) && !defined(__FreeBSD__)
++#if defined (MOUNTED_GETMNTINFO) && !defined (__NetBSD__) && !defined (__OpenBSD__) && !defined(__FreeBSD__) && !defined(__DragonFly__)
+ static const char *
+ fstype_to_string (short t)
+ {
+@@ -298,7 +298,11 @@ read_filesystem_list (void)
+
+ #ifdef MOUNTED_GETMNTINFO /* 4.4BSD. */
+ {
++#if defined(STAT_STATVFS) && !defined(__DragonFly__)
++ struct statvfs *fsp;
++#else
+ struct statfs *fsp;
++#endif
+ int entries;
+
+ entries = getmntinfo (&fsp, MNT_NOWAIT);
+@@ -309,7 +313,7 @@ read_filesystem_list (void)
+ me = (struct mount_entry *) g_malloc (sizeof (struct mount_entry));
+ me->me_devname = g_strdup (fsp->f_mntfromname);
+ me->me_mountdir = g_strdup (fsp->f_mntonname);
+-#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
+ me->me_type = g_strdup (fsp->f_fstypename);
+ #else
+ me->me_type = g_strdup (fstype_to_string (fsp->f_type));
diff --git a/sysutils/libgtop/patches/patch-ad b/sysutils/libgtop/patches/patch-ad
new file mode 100644
index 00000000000..d4945f851bc
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-ad
@@ -0,0 +1,19 @@
+$NetBSD: patch-ad,v 1.5 2007/09/20 21:12:07 wiz Exp $
+
+--- sysdeps/freebsd/fsusage.c.orig 2006-04-09 18:52:45.000000000 +0200
++++ sysdeps/freebsd/fsusage.c
+@@ -47,8 +47,12 @@ _glibtop_freebsd_get_fsusage_read_write(
+ return;
+ }
+
++#ifdef HAVE_STATVFS_READS_COUNT
+ buf->read = sfs.f_syncreads + sfs.f_asyncreads;
++ buf->flags |= (1 << GLIBTOP_FSUSAGE_READ);
++#endif
++#ifdef HAVE_STATVFS_WRITES_COUNT
+ buf->write = sfs.f_syncwrites + sfs.f_asyncwrites;
+-
+- buf->flags |= (1 << GLIBTOP_FSUSAGE_READ) | (1 << GLIBTOP_FSUSAGE_WRITE);
++ buf->flags |= (1 << GLIBTOP_FSUSAGE_WRITE);
++#endif
+ }
diff --git a/sysutils/libgtop/patches/patch-ae b/sysutils/libgtop/patches/patch-ae
new file mode 100644
index 00000000000..ec08de45b8e
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-ae
@@ -0,0 +1,87 @@
+$NetBSD: patch-ae,v 1.5 2007/09/20 21:12:08 wiz Exp $
+
+--- sysdeps/freebsd/cpu.c.orig 2005-07-08 19:49:56.000000000 +0000
++++ sysdeps/freebsd/cpu.c
+@@ -27,16 +27,73 @@
+
+ #include <glibtop_suid.h>
+
+-#ifdef __NetBSD__
+-#include <sys/sched.h>
+-#endif
+-
+ static const unsigned long _glibtop_sysdeps_cpu =
+ (1L << GLIBTOP_CPU_TOTAL) + (1L << GLIBTOP_CPU_USER) +
+ (1L << GLIBTOP_CPU_NICE) + (1L << GLIBTOP_CPU_SYS) +
+ (1L << GLIBTOP_CPU_IDLE) + (1L << GLIBTOP_CPU_FREQUENCY) +
+ (1L << GLIBTOP_CPU_IOWAIT);
+
++#if defined(__DragonFly__)
++#include <kinfo.h>
++
++/* Init function. */
++
++void
++glibtop_init_cpu_p (glibtop *server)
++{
++ server->sysdeps.cpu = _glibtop_sysdeps_cpu;
++}
++
++/* Provides information about cpu usage. */
++void
++glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf)
++{
++ struct kinfo_cputime cp_time;
++ int hz;
++
++ glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_CPU), 0);
++
++ memset (buf, 0, sizeof (glibtop_cpu));
++
++ /* If this fails, the module was not setuped. */
++ if (server->sysdeps.cpu == 0)
++ return;
++
++ if (kinfo_get_sched_cputime(&cp_time)) {
++ glibtop_warn_io_r (server, "kinfo_get_sched_cputime");
++ return;
++ }
++ if (kinfo_get_sched_hz(&hz)) {
++ glibtop_warn_io_r (server, "kinfo_get_sched hz");
++ return;
++ }
++ /* set user time */
++ buf->user = cp_time.cp_user;
++ /* set nice time */
++ buf->nice = cp_time.cp_nice;
++ /* set sys time */
++ buf->sys = cp_time.cp_sys;
++ /* set idle time */
++ buf->idle = cp_time.cp_idle;
++ /* set iowait (really just interrupt) time */
++ buf->iowait = cp_time.cp_idle;
++
++ /* set frequency */
++ buf->frequency = hz;
++ /* set total */
++ buf->total = cp_time.cp_user + cp_time.cp_sys + cp_time.cp_nice +
++ cp_time.cp_idle;
++
++ /* Set the flags last. */
++ buf->flags = _glibtop_sysdeps_cpu;
++}
++
++#else
++
++#ifdef __NetBSD__
++#include <sys/sched.h>
++#endif
++
+ #ifndef KERN_CP_TIME
+ /* nlist structure for kernel access */
+ static struct nlist nlst [] = {
+@@ -141,3 +198,4 @@ glibtop_get_cpu_p (glibtop *server, glib
+ /* Set the flags last. */
+ buf->flags = _glibtop_sysdeps_cpu;
+ }
++#endif
diff --git a/sysutils/libgtop/patches/patch-af b/sysutils/libgtop/patches/patch-af
new file mode 100644
index 00000000000..377d489ff19
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-af
@@ -0,0 +1,14 @@
+$NetBSD: patch-af,v 1.5 2007/09/20 21:12:08 wiz Exp $
+
+--- sysdeps/freebsd/glibtop_machine.h.orig 2005-07-08 19:00:00.000000000 +0000
++++ sysdeps/freebsd/glibtop_machine.h
+@@ -27,7 +27,9 @@
+ #include <sys/param.h>
+ #include <nlist.h>
+ #include <kvm.h>
++#ifndef __DragonFly__
+ #include <sys/dkstat.h>
++#endif
+ #include <time.h>
+ #include <sys/user.h>
+ #include <sys/types.h>
diff --git a/sysutils/libgtop/patches/patch-ag b/sysutils/libgtop/patches/patch-ag
new file mode 100644
index 00000000000..e71cc708693
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-ag
@@ -0,0 +1,159 @@
+$NetBSD: patch-ag,v 1.5 2007/09/20 21:12:08 wiz Exp $
+
+--- sysdeps/freebsd/mem.c.orig 2005-12-12 11:09:39.000000000 +0100
++++ sysdeps/freebsd/mem.c
+@@ -28,6 +28,10 @@
+
+ #include <glibtop_suid.h>
+
++#if defined(__DragonFly__)
++#include <kinfo.h>
++#endif
++
+ #include <sys/sysctl.h>
+ #include <sys/vmmeter.h>
+ #if defined(__NetBSD__) && (__NetBSD_Version__ < 105020000)
+@@ -58,6 +62,7 @@ static int pageshift; /* log base 2 of
+ /* define pagetok in terms of pageshift */
+ #define pagetok(size) ((size) << pageshift)
+
++#if !defined(__DragonFly__)
+ /* nlist structure for kernel access */
+ static struct nlist nlst [] = {
+ #if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
+@@ -75,6 +80,7 @@ static struct nlist nlst [] = {
+ { 0 }
+ #endif
+ };
++#endif
+
+ /* MIB array for sysctl */
+ #ifdef __bsdi__
+@@ -83,7 +89,9 @@ static int mib [] = { CTL_VM, VM_TOTAL }
+ static int mib [] = { CTL_VM, VM_METER };
+ #endif
+
+-#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000)
++static int mib_uvmexp [] = { CTL_VM, VM_UVMEXP2 };
++#elif defined(__OpenBSD__)
+ static int mib_uvmexp [] = { CTL_VM, VM_UVMEXP };
+ #endif
+
+@@ -94,10 +102,12 @@ glibtop_init_mem_p (glibtop *server)
+ {
+ register int pagesize;
+
++#if !defined(__DragonFly__)
+ if (kvm_nlist (server->machine.kd, nlst) < 0) {
+ glibtop_warn_io_r (server, "kvm_nlist (mem)");
+ return;
+ }
++#endif
+
+ /* get the page size with "getpagesize" and calculate pageshift
+ * from it */
+@@ -119,9 +129,15 @@ glibtop_get_mem_p (glibtop *server, glib
+ {
+ struct vmtotal vmt;
+ size_t length_vmt;
+-#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000)
++ struct uvmexp_sysctl uvmexp;
++ size_t length_uvmexp;
++#elif defined(__OpenBSD__)
+ struct uvmexp uvmexp;
+ size_t length_uvmexp;
++#elif defined(__DragonFly__)
++ struct vmstats vms;
++ size_t vms_size;
+ #else
+ struct vmmeter vmm;
+ #endif
+@@ -142,11 +158,19 @@ glibtop_get_mem_p (glibtop *server, glib
+ * here.] */
+
+ /* Get the data from sysctl */
++#if defined(__DragonFly__)
++ length_vmt = sizeof (vmt);
++ if (sysctlbyname ("vm.vmtotal", &vmt, &length_vmt, NULL, 0)) {
++ glibtop_warn_io_r (server, "sysctl (vmt)");
++ return;
++ }
++#else
+ length_vmt = sizeof (vmt);
+ if (sysctl (mib, 2, &vmt, &length_vmt, NULL, 0)) {
+ glibtop_warn_io_r (server, "sysctl (vmt)");
+ return;
+ }
++#endif
+
+ #if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
+ length_uvmexp = sizeof (uvmexp);
+@@ -154,6 +178,12 @@ glibtop_get_mem_p (glibtop *server, glib
+ glibtop_warn_io_r (server, "sysctl (uvmexp)");
+ return;
+ }
++#elif defined(__DragonFly__)
++ vms_size = sizeof(vms);
++ if (sysctlbyname("vm.vmstats", &vms, &vms_size, NULL, 0)) {
++ glibtop_warn_io_r (server, "kvm_read (vms)");
++ return;
++ }
+ #else
+ /* Get the data from kvm_* */
+ if (kvm_read (server->machine.kd, nlst[1].n_value,
+@@ -163,15 +193,24 @@ glibtop_get_mem_p (glibtop *server, glib
+ }
+ #endif
+
++#if defined(__DragonFly__)
++ if (kinfo_get_vfs_bufspace(&bufspace)) {
++ glibtop_warn_io_r (server, "kinfo_get_vfs_bufspace");
++ return;
++ }
++#else
+ if (kvm_read (server->machine.kd, nlst[0].n_value,
+ &bufspace, sizeof (bufspace)) != sizeof (bufspace)) {
+ glibtop_warn_io_r (server, "kvm_read (bufspace)");
+ return;
+ }
++#endif
+
+ /* convert memory stats to Kbytes */
+
+-#if defined(__FreeBSD__)
++#if defined(__DragonFly__)
++ v_total_count = vms.v_page_count;
++#elif defined(__FreeBSD__)
+ v_total_count = vmm.v_page_count;
+ #else
+ #if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
+@@ -189,6 +228,9 @@ glibtop_get_mem_p (glibtop *server, glib
+ #if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
+ v_used_count = uvmexp.active + uvmexp.inactive;
+ v_free_count = uvmexp.free;
++#elif defined(__DragonFly__)
++ v_used_count = vms.v_active_count + vms.v_inactive_count;
++ v_free_count = vms.v_free_count;
+ #else
+ v_used_count = vmm.v_active_count + vmm.v_inactive_count;
+ v_free_count = vmm.v_free_count;
+@@ -198,12 +240,16 @@ glibtop_get_mem_p (glibtop *server, glib
+ buf->used = (guint64) pagetok (v_used_count) << LOG1024;
+ buf->free = (guint64) pagetok (v_free_count) << LOG1024;
+
+-#ifdef __FreeBSD__
++#if defined(__DragonFly__)
++ buf->cached = (guint64) pagetok (vms.v_cache_count) << LOG1024;
++#elif defined(__FreeBSD__)
+ buf->cached = (guint64) pagetok (vmm.v_cache_count) << LOG1024;
+ #endif
+
+ #if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) || defined(__OpenBSD__)
+ buf->locked = (guint64) pagetok (uvmexp.wired) << LOG1024;
++#elif defined(__DragonFly__)
++ buf->locked = (guint64) pagetok (vms.v_wire_count) << LOG1024;
+ #else
+ buf->locked = (guint64) pagetok (vmm.v_wire_count) << LOG1024;
+ #endif
diff --git a/sysutils/libgtop/patches/patch-ah b/sysutils/libgtop/patches/patch-ah
new file mode 100644
index 00000000000..26fbce1068b
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-ah
@@ -0,0 +1,12 @@
+$NetBSD: patch-ah,v 1.3 2007/09/20 21:12:09 wiz Exp $
+
+--- sysdeps/freebsd/open.c.orig 2005-12-12 11:09:39.000000000 +0100
++++ sysdeps/freebsd/open.c
+@@ -23,6 +23,7 @@
+
+ #include <config.h>
+ #include <glibtop.h>
++#include <glibtop/error.h>
+ #include <glibtop/open.h>
+ #include <glibtop/init_hooks.h>
+
diff --git a/sysutils/libgtop/patches/patch-ai b/sysutils/libgtop/patches/patch-ai
new file mode 100644
index 00000000000..34b62efa818
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-ai
@@ -0,0 +1,46 @@
+$NetBSD: patch-ai,v 1.3 2007/09/20 21:12:09 wiz Exp $
+
+--- sysdeps/freebsd/prockernel.c.orig 2004-09-24 22:49:06.000000000 +0000
++++ sysdeps/freebsd/prockernel.c
+@@ -35,7 +35,7 @@
+ #include <sys/user.h>
+ #endif
+ #if !defined(__bsdi__) && !(defined(__FreeBSD__) && defined(__alpha__)) && \
+- !defined(__NetBSD__)
++ !defined(__NetBSD__) && !defined(__DragonFly__)
+ #include <machine/pcb.h>
+ #endif
+
+@@ -93,7 +93,7 @@ glibtop_get_proc_kernel_p (glibtop *serv
+ pid_t pid)
+ {
+ struct kinfo_proc *pinfo;
+-#ifndef __FreeBSD__
++#if !defined(__FreeBSD__) && !defined(__DragonFly__)
+ struct user *u_addr = (struct user *)USRSTACK;
+ struct pstats pstats;
+ struct pcb pcb;
+@@ -126,9 +126,14 @@ glibtop_get_proc_kernel_p (glibtop *serv
+
+ #else
+
++#ifdef __DragonFly__
++#define PROC_WCHAN kp_thread.td_wchan
++#define PROC_WMESG kp_thread.td_wmesg
++#else
+ #define PROC_WCHAN kp_proc.p_wchan
+ #define PROC_WMESG kp_proc.p_wmesg
+ #define PROC_WMESG kp_eproc.e_wmesg
++#endif
+
+ #endif
+
+@@ -146,7 +151,7 @@ glibtop_get_proc_kernel_p (glibtop *serv
+ }
+ #endif
+
+-#ifndef __FreeBSD__
++#if !defined(__FreeBSD__) && !defined(__DragonFly__)
+
+ /* Taken from `saveuser ()' in `/usr/src/bin/ps/ps.c'. */
+
diff --git a/sysutils/libgtop/patches/patch-aj b/sysutils/libgtop/patches/patch-aj
new file mode 100644
index 00000000000..9c31f6e43ef
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-aj
@@ -0,0 +1,16 @@
+$NetBSD: patch-aj,v 1.3 2007/09/20 21:12:09 wiz Exp $
+
+--- sysdeps/freebsd/proclist.c.orig 2004-09-23 22:44:19.000000000 +0000
++++ sysdeps/freebsd/proclist.c
+@@ -92,7 +92,11 @@ glibtop_get_proclist_p (glibtop *server,
+
+ #else
+ #define PROC_STAT kp_proc.p_stat
++#ifdef __DragonFly__
++#define PROC_RUID kp_eproc.e_ucred.cr_ruid
++#else
+ #define PROC_RUID kp_eproc.e_pcred.p_ruid
++#endif
+ #define PROC_PID kp_proc.p_pid
+
+ #endif
diff --git a/sysutils/libgtop/patches/patch-ak b/sysutils/libgtop/patches/patch-ak
new file mode 100644
index 00000000000..d3b0728effc
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-ak
@@ -0,0 +1,70 @@
+$NetBSD: patch-ak,v 1.3 2007/09/20 21:12:10 wiz Exp $
+
+--- sysdeps/freebsd/procmap.c.orig 2005-12-12 10:09:39.000000000 +0000
++++ sysdeps/freebsd/procmap.c
+@@ -21,6 +21,10 @@
+ Boston, MA 02111-1307, USA.
+ */
+
++#ifdef __DragonFly__
++#define _KERNEL_STRUCTURES
++#endif
++
+ #include <config.h>
+ #include <glibtop.h>
+ #include <glibtop/error.h>
+@@ -41,7 +45,7 @@
+ #else
+ #include <vm/vm_object.h>
+ #include <vm/vm_map.h>
+-#if (__FreeBSD_version >= 400011)
++#if defined(__DragonFly__) || (defined(__FreeBSD__) && __FreeBSD_version >= 400011)
+ #include <vm/vm.h>
+ #else
+ #include <vm/vm_prot.h>
+@@ -109,9 +113,9 @@ glibtop_get_proc_map_p (glibtop *server,
+ struct vm_object object;
+ #endif
+ glibtop_map_entry *maps;
+-#if defined __FreeBSD__
++#if defined(__FreeBSD__) || defined(__DragonFly__)
+ struct vnode vnode;
+-#if __FreeBSD_version < 500039
++#if (defined(__FreeBSD__) && __FreeBSD_version < 500039) || defined(__DragonFly__)
+ struct inode inode;
+ #endif
+ #endif
+@@ -130,7 +134,7 @@ glibtop_get_proc_map_p (glibtop *server,
+ /* Get the process data */
+ pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
+ if ((pinfo == NULL) || (count < 1)) {
+- glibtop_error_io_r (server, "kvm_getprocs (%d)", pid);
++ glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
+ return NULL;
+ }
+
+@@ -178,9 +182,12 @@ glibtop_get_proc_map_p (glibtop *server,
+ } else {
+ update = 1;
+ }
+-
+-#ifdef __FreeBSD__
+-#if __FreeBSD__ >= 4
++#if defined(__FreeBSD__) || defined(__DragonFly__)
++#if defined(__DragonFly__) && __DragonFly_version >= 180000
++ if (entry.eflags != VM_MAPTYPE_NORMAL &&
++ entry.eflags != VM_MAPTYPE_VPAGETABLE)
++ continue;
++#elif (defined(__FreeBSD__) && __FreeBSD__ >= 4) || defined(__DragonFly__)
+ if (entry.eflags & (MAP_ENTRY_IS_SUB_MAP))
+ continue;
+ #else
+@@ -256,7 +263,7 @@ glibtop_get_proc_map_p (glibtop *server,
+ #endif
+
+
+-#ifdef __FreeBSD__
++#if defined(__FreeBSD__) || defined(__DragonFly__)
+ /* If the object is of type vnode, add its size */
+
+ if (object.type != OBJT_VNODE)
diff --git a/sysutils/libgtop/patches/patch-al b/sysutils/libgtop/patches/patch-al
new file mode 100644
index 00000000000..aae582128eb
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-al
@@ -0,0 +1,39 @@
+$NetBSD: patch-al,v 1.5 2007/09/20 21:12:10 wiz Exp $
+
+--- sysdeps/freebsd/procmem.c.orig 2005-12-12 10:09:39.000000000 +0000
++++ sysdeps/freebsd/procmem.c
+@@ -41,7 +41,9 @@
+
+ #include <sys/vnode.h>
+ #include <ufs/ufs/quota.h>
++#if !defined(__DragonFly__)
+ #include <ufs/ufs/inode.h>
++#endif
+
+ #include <sys/ucred.h>
+ #if (!defined __OpenBSD__) && (!defined __bsdi__)
+@@ -63,6 +65,10 @@
+ #include <uvm/uvm.h>
+ #endif
+
++#ifdef __NetBSD__
++#include <sys/resourcevar.h>
++#endif
++
+ static const unsigned long _glibtop_sysdeps_proc_mem =
+ (1L << GLIBTOP_PROC_MEM_SIZE) +
+ (1L << GLIBTOP_PROC_MEM_VSIZE) +
+@@ -214,8 +220,11 @@ glibtop_get_proc_mem_p (glibtop *server,
+ return;
+ }
+
+-#ifdef __FreeBSD__
+-#if __FreeBSD__ >= 4
++#if defined(__DragonFly__) && (__DragonFly_version >= 180000)
++ if (entry.maptype != VM_MAPTYPE_NORMAL && entry.maptype != VM_MAPTYPE_VPAGETABLE)
++ continue;
++#elif defined(__FreeBSD__) || defined(__DragonFly__)
++#if defined(__DragonFly__) || (defined(__FreeBSD__) && __FreeBSD__ >= 4)
+ if (entry.eflags & (MAP_ENTRY_IS_SUB_MAP))
+ continue;
+ #else
diff --git a/sysutils/libgtop/patches/patch-am b/sysutils/libgtop/patches/patch-am
new file mode 100644
index 00000000000..1bc3876fd89
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-am
@@ -0,0 +1,111 @@
+$NetBSD: patch-am,v 1.4 2007/09/20 21:12:11 wiz Exp $
+
+--- sysdeps/freebsd/procsignal.c.orig 2005-12-12 10:09:39.000000000 +0000
++++ sysdeps/freebsd/procsignal.c
+@@ -53,7 +53,11 @@ glibtop_get_proc_signal_p (glibtop *serv
+ glibtop_proc_signal *buf,
+ pid_t pid)
+ {
++#if defined(KERN_PROC2)
++ struct kinfo_proc2 *pinfo;
++#else
+ struct kinfo_proc *pinfo;
++#endif
+ int count = 0;
+
+ glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_SIGNAL), 0);
+@@ -64,7 +68,12 @@ glibtop_get_proc_signal_p (glibtop *serv
+ if (pid == 0) return;
+
+ /* Get the process information */
++#if defined(KERN_PROC2)
++ pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid,
++ sizeof(struct kinfo_proc2), &count);
++#else
+ pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
++#endif
+ if ((pinfo == NULL) || (count != 1)) {
+ glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
+ return;
+@@ -77,6 +86,13 @@ glibtop_get_proc_signal_p (glibtop *serv
+ #define PROC_SIGIGNORE ki_sigignore
+ #define PROC_SIGCATCH ki_sigcatch
+
++#elif defined(KERN_PROC2)
++
++#define PROC_SIGLIST p_siglist
++#define PROC_SIGMASK p_sigmask
++#define PROC_SIGIGNORE p_sigignore
++#define PROC_SIGCATCH p_sigcatch
++
+ #else
+
+ #define PROC_SIGLIST kp_proc.p_siglist
+@@ -89,11 +105,12 @@ glibtop_get_proc_signal_p (glibtop *serv
+ /* signal: mask of pending signals.
+ * pinfo [0].kp_proc.p_siglist
+ */
+-#if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
+- buf->signal [0] = pinfo [0].kp_proc.p_sigctx.ps_siglist.__bits[0];
+-#elif (defined(__NetBSD__) && (NSIG > 32)) || \
+- (defined(__FreeBSD__) && (__FreeBSD_version >= 400011))
++#if (defined(__NetBSD__) && (NSIG > 32)) || \
++ (defined(__FreeBSD__) && (__FreeBSD_version >= 400011)) || \
++ defined(__DragonFly__)
+ buf->signal [0] = pinfo [0].PROC_SIGLIST.__bits[0];
++#elif defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
++ buf->signal [0] = pinfo [0].kp_proc.p_sigctx.ps_siglist.__bits[0];
+ #else
+ buf->signal [0] = pinfo [0].kp_proc.p_siglist;
+ #endif
+@@ -101,11 +118,12 @@ glibtop_get_proc_signal_p (glibtop *serv
+ /* blocked: mask of blocked signals.
+ * pinfo [0].kp_proc.p_sigmask
+ */
+-#if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
+- buf->blocked [0] = pinfo [0].kp_proc.p_sigctx.ps_sigmask.__bits[0];
+-#elif (defined(__NetBSD__) && (NSIG > 32)) || \
+- (defined(__FreeBSD__) && (__FreeBSD_version >= 400011))
++#if (defined(__NetBSD__) && (NSIG > 32)) || \
++ (defined(__FreeBSD__) && (__FreeBSD_version >= 400011)) || \
++ defined(__DragonFly__)
+ buf->blocked [0] = pinfo [0].PROC_SIGMASK.__bits[0];
++#elif defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
++ buf->blocked [0] = pinfo [0].kp_proc.p_sigctx.ps_sigmask.__bits[0];
+ #else
+ buf->blocked [0] = pinfo [0].kp_proc.p_sigmask;
+ #endif
+@@ -113,11 +131,12 @@ glibtop_get_proc_signal_p (glibtop *serv
+ /* sigignore: mask of ignored signals.
+ * pinfo [0].kp_proc.p_sigignore
+ */
+-#if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
+- buf->sigignore [0] = pinfo [0].kp_proc.p_sigctx.ps_sigignore.__bits[0];
+-#elif (defined(__NetBSD__) && (NSIG > 32)) || \
+- (defined(__FreeBSD__) && (__FreeBSD_version >= 400011))
++#if (defined(__NetBSD__) && (NSIG > 32)) || \
++ (defined(__FreeBSD__) && (__FreeBSD_version >= 400011)) || \
++ defined(__DragonFly__)
+ buf->sigignore [0] = pinfo [0].PROC_SIGIGNORE.__bits[0];
++#elif defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
++ buf->sigignore [0] = pinfo [0].kp_proc.p_sigctx.ps_sigignore.__bits[0];
+ #else
+ buf->sigignore [0] = pinfo [0].kp_proc.p_sigignore;
+ #endif
+@@ -125,11 +144,12 @@ glibtop_get_proc_signal_p (glibtop *serv
+ /* sigcatch: mask of caught signals.
+ * pinfo [0].kp_proc.p_sigcatch
+ */
+-#if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
+- buf->sigcatch [0] = pinfo [0].kp_proc.p_sigctx.ps_sigcatch.__bits[0];
+-#elif (defined(__NetBSD__) && (NSIG > 32)) || \
+- (defined(__FreeBSD__) && (__FreeBSD_version >= 400011))
++#if (defined(__NetBSD__) && (NSIG > 32)) || \
++ (defined(__FreeBSD__) && (__FreeBSD_version >= 400011)) || \
++ defined(__DragonFly__)
+ buf->sigcatch [0] = pinfo [0].PROC_SIGCATCH.__bits[0];
++#elif defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
++ buf->sigcatch [0] = pinfo [0].kp_proc.p_sigctx.ps_sigcatch.__bits[0];
+ #else
+ buf->sigcatch [0] = pinfo [0].kp_proc.p_sigcatch;
+ #endif
diff --git a/sysutils/libgtop/patches/patch-an b/sysutils/libgtop/patches/patch-an
new file mode 100644
index 00000000000..abf29aebeeb
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-an
@@ -0,0 +1,19 @@
+$NetBSD: patch-an,v 1.3 2007/09/20 21:12:11 wiz Exp $
+
+--- sysdeps/freebsd/procstate.c.orig 2004-09-24 22:49:06.000000000 +0000
++++ sysdeps/freebsd/procstate.c
+@@ -80,6 +80,14 @@ glibtop_get_proc_state_p (glibtop *serve
+ #define PROC_RGID ki_rgid
+ #define PROC_STAT ki_stat
+
++#elif defined(__DragonFly__)
++#define PROC_COMM kp_thread.td_comm
++#define PROC_SVUID kp_eproc.e_ucred.cr_svuid
++#define PROC_SVGID kp_eproc.e_ucred.cr_svgid
++#define PROC_RUID kp_eproc.e_ucred.cr_ruid
++#define PROC_RGID kp_eproc.e_ucred.cr_rgid
++#define PROC_STAT kp_proc.p_stat
++
+ #else
+ #define PROC_COMM kp_proc.p_comm
+ #define PROC_SVUID kp_eproc.e_pcred.p_svuid
diff --git a/sysutils/libgtop/patches/patch-ao b/sysutils/libgtop/patches/patch-ao
new file mode 100644
index 00000000000..72637764a62
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-ao
@@ -0,0 +1,74 @@
+$NetBSD: patch-ao,v 1.3 2007/09/20 21:12:11 wiz Exp $
+
+--- sysdeps/freebsd/procuid.c.orig 2005-12-12 10:09:39.000000000 +0000
++++ sysdeps/freebsd/procuid.c
+@@ -53,11 +53,16 @@ void
+ glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf,
+ pid_t pid)
+ {
++#if defined(KERN_PROC2)
++ struct kinfo_proc2 *pinfo;
++#else
+ struct kinfo_proc *pinfo;
++#endif
+ int count = 0;
+
+ #if LIBGTOP_VERSION_CODE >= 1001000
+-#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000)
++#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) \
++ && !defined(KERN_PROC2)
+ struct ucred ucred;
+ void *ucred_ptr;
+ #endif
+@@ -71,7 +76,12 @@ glibtop_get_proc_uid_p (glibtop *server,
+ if (pid == 0) return;
+
+ /* Get the process information */
++#if defined(KERN_PROC2)
++ pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid,
++ sizeof(struct kinfo_proc2), &count);
++#else
+ pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
++#endif
+ if ((pinfo == NULL) || (count != 1)) {
+ glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
+ return;
+@@ -92,8 +102,28 @@ glibtop_get_proc_uid_p (glibtop *server,
+ #else
+ #define PROC_PRIORITY ki_priority
+ #endif
+-#else
++#elif defined(__DragonFly__)
++#define PROC_RUID kp_eproc.e_ucred.cr_ruid
++#define PROC_SVUID kp_eproc.e_ucred.cr_svuid
++#define PROC_RGID kp_eproc.e_ucred.cr_rgid
++#define PROC_SVGID kp_eproc.e_ucred.cr_svgid
++#define PROC_PPID kp_eproc.e_ppid
++#define PROC_PGID kp_eproc.e_pgid
++#define PROC_TPGID kp_eproc.e_tpgid
++#define PROC_NICE kp_proc.p_nice
++
++#elif defined(KERN_PROC2) /* && defined(__NetBSD__) ? */
++#define PROC_RUID p_ruid
++#define PROC_SVUID p_svuid
++#define PROC_RGID p_rgid
++#define PROC_SVGID p_svgid
++#define PROC_PPID p_ppid
++#define PROC_PGID p__pgid
++#define PROC_TPGID p_tpgid
++#define PROC_NICE p_nice
++#define PROC_PRIORITY p_priority
+
++#else
+ #define PROC_RUID kp_eproc.e_pcred.p_ruid
+ #define PROC_SVUID kp_eproc.e_pcred.p_svuid
+ #define PROC_RGID kp_eproc.e_pcred.p_rgid
+@@ -116,7 +146,7 @@ glibtop_get_proc_uid_p (glibtop *server,
+ buf->tpgid = pinfo [0].PROC_TPGID;
+
+ buf->nice = pinfo [0].PROC_NICE;
+-#if defined(__NetBSD__) && defined(SACTIVE)
++#if defined(__DragonFly__) || (defined(__NetBSD__) && defined(SACTIVE))
+ buf->priority = 0;
+ #else
+ buf->priority = pinfo [0].PROC_PRIORITY;
diff --git a/sysutils/libgtop/patches/patch-ap b/sysutils/libgtop/patches/patch-ap
new file mode 100644
index 00000000000..fa113bcf882
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-ap
@@ -0,0 +1,69 @@
+$NetBSD: patch-ap,v 1.3 2007/09/20 21:12:12 wiz Exp $
+
+--- sysdeps/freebsd/swap.c.orig 2004-09-24 22:49:06.000000000 +0000
++++ sysdeps/freebsd/swap.c
+@@ -32,7 +32,10 @@ static const unsigned long _glibtop_sysd
+ (1L << GLIBTOP_SWAP_FREE) + (1L << GLIBTOP_SWAP_PAGEIN) +
+ (1L << GLIBTOP_SWAP_PAGEOUT);
+
+-#if defined(__FreeBSD__) || defined(__bsdi__)
++#if defined(__DragonFly__)
++#include <sys/vmmeter.h>
++
++#elif defined(__FreeBSD__) || defined(__bsdi__)
+
+ #include <sys/conf.h>
+ #ifdef __bsdi__
+@@ -93,8 +96,8 @@ static struct nlist nlst2 [] = {
+ void
+ glibtop_init_swap_p (glibtop *server)
+ {
+-#if defined(__FreeBSD__) || defined(__bsdi__)
+-#if __FreeBSD__ < 4 || defined(__bsdi__)
++#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__bsdi__)
++#if !defined(__DragonFly__) && (__FreeBSD__ < 4 || defined(__bsdi__))
+ if (kvm_nlist (server->machine.kd, nlst) < 0) {
+ glibtop_warn_io_r (server, "kvm_nlist (swap)");
+ return;
+@@ -129,9 +132,9 @@ glibtop_init_swap_p (glibtop *server)
+ void
+ glibtop_get_swap_p (glibtop *server, glibtop_swap *buf)
+ {
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__DragonFly__)
+
+-# if __FreeBSD__ < 4
++# if defined(__FreeBSD__) && __FreeBSD__ < 4
+ char *header;
+ int hlen, nswdev, dmmax;
+ int div, nfree, npfree;
+@@ -193,7 +196,7 @@ glibtop_get_swap_p (glibtop *server, gli
+ buf->pagein = 0;
+ buf->pageout = 0;
+ } else {
+-#ifdef __FreeBSD__
++#if defined(__FreeBSD__) || defined(__DragonFly__)
+ buf->pagein = vmm.v_swappgsin - swappgsin;
+ buf->pageout = vmm.v_swappgsout - swappgsout;
+ #else
+@@ -207,7 +210,7 @@ glibtop_get_swap_p (glibtop *server, gli
+ #endif
+ }
+
+-#ifdef __FreeBSD__
++#if defined(__FreeBSD__) || defined(__DragonFly__)
+ swappgsin = vmm.v_swappgsin;
+ swappgsout = vmm.v_swappgsout;
+ #else
+@@ -220,9 +223,9 @@ glibtop_get_swap_p (glibtop *server, gli
+ #endif
+ #endif
+
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__DragonFly__)
+
+-#if __FreeBSD__ < 4
++#if defined(__FreeBSD__) && __FreeBSD__ < 4
+
+ /* Size of largest swap device. */
+
diff --git a/sysutils/libgtop/patches/patch-aq b/sysutils/libgtop/patches/patch-aq
new file mode 100644
index 00000000000..b79ae12a297
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-aq
@@ -0,0 +1,13 @@
+$NetBSD: patch-aq,v 1.3 2007/09/20 21:12:12 wiz Exp $
+
+--- sysdeps/common/fsusage.c.orig 2006-09-22 16:31:47.000000000 +0200
++++ sysdeps/common/fsusage.c
+@@ -270,7 +270,7 @@ glibtop_get_fsusage_s (glibtop *server,
+ return;
+
+ #if (defined(sun) || defined(__sun)) && (defined(__SVR4) || defined(__svr4__)) \
+- || defined(__FreeBSD__)
++ || defined(__FreeBSD__) || defined(__NetBSD__)
+ /* Solaris but not SunOS and FreeBSD */
+ buf->block_size = fsd.f_frsize;
+ #else
diff --git a/sysutils/libgtop/patches/patch-ba b/sysutils/libgtop/patches/patch-ba
new file mode 100644
index 00000000000..c8a6499f258
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-ba
@@ -0,0 +1,34 @@
+$NetBSD: patch-ba,v 1.1 2007/09/20 21:12:13 wiz Exp $
+
+From FreeBSD's GNOME development repository.
+
+--- lib/read.c.orig 2006-04-10 10:41:46.000000000 +0200
++++ lib/read.c
+@@ -22,6 +22,7 @@
+ */
+
+ #include <config.h>
++#include <errno.h>
+ #include <glibtop/read.h>
+ #include <glibtop/error.h>
+ #include <glib/gi18n-lib.h>
+@@ -56,14 +57,18 @@ glibtop_read_l (glibtop *server, size_t
+ fprintf (stderr, "LIBRARY: really reading %d bytes.\n", (int)size);
+ #endif
+
++retry:
+ if (server->socket) {
+ do_read (server->socket, buf, size);
+ } else {
+- if(read (server->input [0], buf, size) < 0)
++ if(read (server->input [0], buf, size) < 0) {
++ if (errno == EINTR)
++ goto retry;
+ glibtop_error_io_r (
+ server,
+ ngettext ("read %d byte",
+ "read %d bytes", size),
+ (int)size);
++ }
+ }
+ }
diff --git a/sysutils/libgtop/patches/patch-bb b/sysutils/libgtop/patches/patch-bb
new file mode 100644
index 00000000000..1ec47ecc761
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-bb
@@ -0,0 +1,35 @@
+$NetBSD: patch-bb,v 1.1 2007/09/20 21:12:13 wiz Exp $
+
+From FreeBSD's GNOME development repository.
+
+--- lib/write.c.orig 2006-04-10 10:41:46.000000000 +0200
++++ lib/write.c
+@@ -22,6 +22,7 @@
+ */
+
+ #include <config.h>
++#include <errno.h>
+
+ #include <glibtop/write.h>
+ #include <glibtop/error.h>
+@@ -42,15 +43,19 @@ glibtop_write_l (glibtop *server, size_t
+ fprintf (stderr, "LIBRARY: really writing %d bytes.\n", (int)size);
+ #endif
+
++retry:
+ if (server->socket) {
+ ret = send (server->socket, buf, size, 0);
+ } else {
+ ret = write (server->output [1], buf, size);
+ }
+
+- if (ret < 0)
++ if (ret < 0) {
++ if (errno == EINTR)
++ goto retry;
+ glibtop_error_io_r (server,
+ ngettext("wrote %d byte",
+ "wrote %d bytes", size),
+ (int) size);
++ }
+ }
diff --git a/sysutils/libgtop/patches/patch-bc b/sysutils/libgtop/patches/patch-bc
new file mode 100644
index 00000000000..822bbde914a
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-bc
@@ -0,0 +1,61 @@
+$NetBSD: patch-bc,v 1.1 2007/09/20 21:12:13 wiz Exp $
+
+From FreeBSD's GNOME development repository.
+
+--- src/daemon/io.c.orig 2005-12-12 11:09:38.000000000 +0100
++++ src/daemon/io.c
+@@ -22,6 +22,7 @@
+ */
+
+ #include <config.h>
++#include <errno.h>
+ #include "daemon.h"
+ #include <glibtop/error.h>
+
+@@ -37,9 +38,13 @@ do_output (int s, glibtop_response *resp
+ resp->offset = offset;
+ resp->data_size = data_size;
+
++retry1:
+ if (s == 0) {
+- if (write (1, (const void *) resp, sizeof (glibtop_response)) < 0)
++ if (write (1, (const void *) resp, sizeof (glibtop_response)) < 0) {
++ if (errno == EINTR)
++ goto retry1;
+ glibtop_warn_io ("write");
++ }
+ } else {
+ if (send (s, (const void *) resp, sizeof (glibtop_response), 0) < 0)
+ glibtop_warn_io ("send");
+@@ -50,9 +55,13 @@ do_output (int s, glibtop_response *resp
+ fprintf (stderr, "Writing %d bytes of data.\n", resp->data_size);
+ #endif
+
++retry2:
+ if (s == 0) {
+- if (write (1, data, resp->data_size) < 0)
++ if (write (1, data, resp->data_size) < 0) {
++ if (errno == EINTR)
++ goto retry2;
+ glibtop_warn_io ("write");
++ }
+ } else {
+ if (send (s, data, resp->data_size, 0) , 0)
+ glibtop_warn_io ("send");
+@@ -68,6 +77,7 @@ do_read (int s, void *ptr, size_t total_
+ size_t already_read = 0, remaining = total_size;
+
+ while (already_read < total_size) {
++retry:
+ if (s)
+ nread = recv (s, ptr, remaining, 0);
+ else
+@@ -79,6 +89,8 @@ do_read (int s, void *ptr, size_t total_
+ }
+
+ if (nread <= 0) {
++ if (errno == EINTR)
++ goto retry;
+ glibtop_warn_io ("recv");
+ return 0;
+ }
diff --git a/sysutils/libgtop/patches/patch-bd b/sysutils/libgtop/patches/patch-bd
new file mode 100644
index 00000000000..3fa5b05a0dc
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-bd
@@ -0,0 +1,22 @@
+$NetBSD: patch-bd,v 1.1 2007/09/20 21:12:14 wiz Exp $
+
+From FreeBSD's GNOME development repository.
+
+--- src/daemon/server.c.orig 2004-06-09 20:52:21.000000000 +0200
++++ src/daemon/server.c
+@@ -88,11 +88,13 @@ main(int argc, char *argv[])
+ if (strcmp (uts.sysname, LIBGTOP_COMPILE_SYSTEM) ||
+ strcmp (uts.release, LIBGTOP_COMPILE_RELEASE) ||
+ strcmp (uts.machine, LIBGTOP_COMPILE_MACHINE)) {
+- fprintf (stderr, "Can only run on %s %s %s\n",
++ fprintf (stderr, "This libgtop was compiled on %s %s %s\n",
+ LIBGTOP_COMPILE_SYSTEM,
+ LIBGTOP_COMPILE_RELEASE,
+ LIBGTOP_COMPILE_MACHINE);
+- _exit (1);
++ fprintf (stderr, "If you see strange problems caused by it,\n");
++ fprintf (stderr, "you should recompile libgtop and dependent"
++ "applications.\n");
+ }
+ #endif
+
diff --git a/sysutils/libgtop/patches/patch-bg b/sysutils/libgtop/patches/patch-bg
new file mode 100644
index 00000000000..b60c1d5c36a
--- /dev/null
+++ b/sysutils/libgtop/patches/patch-bg
@@ -0,0 +1,30 @@
+$NetBSD: patch-bg,v 1.1 2007/09/20 21:12:14 wiz Exp $
+
+--- sysdeps/freebsd/prockernel.c.orig 2006-06-13 22:20:53.000000000 +0200
++++ sysdeps/freebsd/prockernel.c
+@@ -56,11 +56,7 @@
+ #endif
+
+ #ifdef __NetBSD__
+-#include <machine/vmparam.h>
+-#include <machine/pmap.h>
+-#ifdef __arm32__
+-#define KERNBASE KERNEL_BASE
+-#endif
++#include <sys/resourcevar.h>
+ #endif
+
+
+@@ -116,8 +112,10 @@ glibtop_get_proc_kernel_p (glibtop *serv
+
+ /* Get the process information */
+ pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count);
+- if ((pinfo == NULL) || (count != 1))
+- glibtop_error_io_r (server, "kvm_getprocs (%d)", pid);
++ if ((pinfo == NULL) || (count != 1)) {
++ glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
++ return;
++ }
+
+ #if defined(__FreeBSD__) && (__FreeBSD_version >= 500013)
+