diff options
author | Jeremy Messenger <mezz@FreeBSD.org> | 2006-05-28 05:04:56 +0000 |
---|---|---|
committer | Jeremy Messenger <mezz@FreeBSD.org> | 2006-05-28 05:04:56 +0000 |
commit | c97b5b3ca34e50650f058d404ecb9d8fb2405771 (patch) | |
tree | 5c85e3a4222b6bc5ef3f01643dd52652ae191e26 /devel/libgtop | |
parent | 1d41172ec56f2145f41aa44356368142ff2ee38f (diff) | |
download | ports-c97b5b3ca34e50650f058d404ecb9d8fb2405771.tar.gz ports-c97b5b3ca34e50650f058d404ecb9d8fb2405771.zip |
Notes
Diffstat (limited to 'devel/libgtop')
-rw-r--r-- | devel/libgtop/Makefile | 55 | ||||
-rw-r--r-- | devel/libgtop/distinfo | 3 | ||||
-rw-r--r-- | devel/libgtop/files/extra-67-patch-sysdeps_freebsd_Makefile.in | 20 | ||||
-rw-r--r-- | devel/libgtop/files/patch-configure | 19 | ||||
-rw-r--r-- | devel/libgtop/files/patch-lib::read.c | 30 | ||||
-rw-r--r-- | devel/libgtop/files/patch-lib::write.c | 32 | ||||
-rw-r--r-- | devel/libgtop/files/patch-src::daemon::io.c | 57 | ||||
-rw-r--r-- | devel/libgtop/files/patch-src_daemon_server.c | 17 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_fsusage.c | 134 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_glibtop_server.h | 13 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_netload.c | 102 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_siglist.c | 41 | ||||
-rw-r--r-- | devel/libgtop/files/patch-systeps::freebsd::prockernel.c | 15 | ||||
-rw-r--r-- | devel/libgtop/files/patch-systeps::freebsd::procmap.c | 155 | ||||
-rw-r--r-- | devel/libgtop/files/patch-systeps::freebsd::proctime.c | 31 | ||||
-rw-r--r-- | devel/libgtop/files/pkg-message | 13 | ||||
-rw-r--r-- | devel/libgtop/pkg-descr | 3 | ||||
-rw-r--r-- | devel/libgtop/pkg-plist | 129 |
18 files changed, 869 insertions, 0 deletions
diff --git a/devel/libgtop/Makefile b/devel/libgtop/Makefile new file mode 100644 index 000000000000..1b471d91f5a9 --- /dev/null +++ b/devel/libgtop/Makefile @@ -0,0 +1,55 @@ +# New ports collection makefile for: libgtop2 +# Date Created: 29 April 2002 +# Whom: Joe Marcus Clarke <marcus@FreeBSD.org> +# +# $FreeBSD$ +# $MCom: ports/devel/libgtop2/Makefile,v 1.70 2006/04/15 05:49:08 marcus Exp $ +# + +PORTNAME= libgtop +PORTVERSION= 2.14.1 +PORTREVISION= 1 +CATEGORIES= devel gnome +MASTER_SITES= ${MASTER_SITE_GNOME} +MASTER_SITE_SUBDIR= sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/} +DIST_SUBDIR= gnome2 + +MAINTAINER= gnome@FreeBSD.org +COMMENT= GNOME 2 top library + +LIB_DEPENDS= popt.0:${PORTSDIR}/devel/popt + +USE_BZIP2= yes +USE_PERL5_BUILD=yes +USE_GETTEXT= yes +USE_X_PREFIX= yes +USE_GMAKE= yes +USE_GNOME= gnomehack glib20 ltverhack +INSTALLS_SHLIB= yes +USE_AUTOTOOLS= libtool:15 +CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ + LDFLAGS="-L${LOCALBASE}/lib" + +INFO= libgtop2 + +.include <bsd.port.pre.mk> + +.if ${OSVERSION} >= 600000 +PKGMESSAGE= ${FILESDIR}/pkg-message +EXTRA_PATCHES+= ${FILESDIR}/extra-67-patch-sysdeps_freebsd_Makefile.in +.endif + +post-patch: + @${REINPLACE_CMD} -e 's|int64_t|gint64|g' \ + ${WRKSRC}/include/glibtop/command.h \ + ${WRKSRC}/include/glibtop/proclist.h \ + ${WRKSRC}/lib/lib.pl + +post-install: + @${CHGRP} kmem ${PREFIX}/bin/libgtop_server2 + @${CHMOD} 2555 ${PREFIX}/bin/libgtop_server2 +.if ${OSVERSION} >= 600000 + @${CAT} ${PKGMESSAGE} +.endif + +.include <bsd.port.post.mk> diff --git a/devel/libgtop/distinfo b/devel/libgtop/distinfo new file mode 100644 index 000000000000..dd81ddab3cba --- /dev/null +++ b/devel/libgtop/distinfo @@ -0,0 +1,3 @@ +MD5 (gnome2/libgtop-2.14.1.tar.bz2) = 59cc661ae518fcae158517cc029b2add +SHA256 (gnome2/libgtop-2.14.1.tar.bz2) = b0658ab0327bf833295bb8d2467ab16747c017c8cd26ff6936a927def6818fb2 +SIZE (gnome2/libgtop-2.14.1.tar.bz2) = 661846 diff --git a/devel/libgtop/files/extra-67-patch-sysdeps_freebsd_Makefile.in b/devel/libgtop/files/extra-67-patch-sysdeps_freebsd_Makefile.in new file mode 100644 index 000000000000..1258d576f76d --- /dev/null +++ b/devel/libgtop/files/extra-67-patch-sysdeps_freebsd_Makefile.in @@ -0,0 +1,20 @@ +--- sysdeps/freebsd/Makefile.in.orig Mon Apr 10 14:08:39 2006 ++++ sysdeps/freebsd/Makefile.in Mon Apr 10 14:11:50 2006 +@@ -50,7 +50,7 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/m + CONFIG_HEADER = $(top_builddir)/config.h + CONFIG_CLEAN_FILES = + LTLIBRARIES = $(noinst_LTLIBRARIES) +-libgtop_sysdeps_2_0_la_LIBADD = ++libgtop_sysdeps_2_0_la_LIBADD = -lgeom -ldevstat + am_libgtop_sysdeps_2_0_la_OBJECTS = nosuid.lo siglist.lo sysinfo.lo + libgtop_sysdeps_2_0_la_OBJECTS = $(am_libgtop_sysdeps_2_0_la_OBJECTS) + am__DEPENDENCIES_1 = +@@ -260,7 +260,7 @@ target_vendor = @target_vendor@ + noinst_LTLIBRARIES = libgtop_sysdeps-2.0.la libgtop_sysdeps_suid-2.0.la + libgtop_sysdeps_2_0_la_SOURCES = nosuid.c siglist.c sysinfo.c + libgtop_sysdeps_2_0_la_LDFLAGS = $(LT_VERSION_INFO) +-libgtop_sysdeps_suid_2_0_la_LIBADD = $(KVM_LIBS) ++libgtop_sysdeps_suid_2_0_la_LIBADD = $(KVM_LIBS) -lgeom -ldevstat + libgtop_sysdeps_suid_2_0_la_SOURCES = open.c close.c cpu.c mem.c swap.c \ + uptime.c loadavg.c shm_limits.c msg_limits.c \ + sem_limits.c proclist.c procstate.c procuid.c \ diff --git a/devel/libgtop/files/patch-configure b/devel/libgtop/files/patch-configure new file mode 100644 index 000000000000..934f89e79fdc --- /dev/null +++ b/devel/libgtop/files/patch-configure @@ -0,0 +1,19 @@ +--- configure.orig Mon Apr 10 15:28:24 2006 ++++ configure Mon Apr 10 15:30:40 2006 +@@ -20568,6 +20568,7 @@ else + for def in nothing KERNEL _KERNEL; do + cat >conftest.$ac_ext <<_ACEOF + #define $def ++#include <sys/types.h> + #include <sys/ipc.h> + #include <sys/msg.h> + #include <stdio.h> +@@ -23458,7 +23459,7 @@ fi + + + case "$host_os" in +- solaris*) ++ solaris*|freebsd*) + + echo "$as_me:$LINENO: checking for kstat_open in -lkstat" >&5 + echo $ECHO_N "checking for kstat_open in -lkstat... $ECHO_C" >&6 diff --git a/devel/libgtop/files/patch-lib::read.c b/devel/libgtop/files/patch-lib::read.c new file mode 100644 index 000000000000..18c837d377c2 --- /dev/null +++ b/devel/libgtop/files/patch-lib::read.c @@ -0,0 +1,30 @@ +--- lib/read.c.orig Mon Apr 10 04:41:46 2006 ++++ lib/read.c Mon Apr 10 15:12:31 2006 +@@ -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/devel/libgtop/files/patch-lib::write.c b/devel/libgtop/files/patch-lib::write.c new file mode 100644 index 000000000000..acb63c489cc1 --- /dev/null +++ b/devel/libgtop/files/patch-lib::write.c @@ -0,0 +1,32 @@ +--- lib/write.c.orig Mon Apr 10 04:41:46 2006 ++++ lib/write.c Mon Apr 10 15:37:00 2006 +@@ -22,7 +22,7 @@ + */ + + #include <config.h> +- ++#include <errno.h> + #include <glibtop/write.h> + #include <glibtop/error.h> + #include <glib/gi18n-lib.h> +@@ -42,15 +42,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/devel/libgtop/files/patch-src::daemon::io.c b/devel/libgtop/files/patch-src::daemon::io.c new file mode 100644 index 000000000000..f8fb71b0378b --- /dev/null +++ b/devel/libgtop/files/patch-src::daemon::io.c @@ -0,0 +1,57 @@ +--- src/daemon/io.c.orig Mon Dec 12 05:09:38 2005 ++++ src/daemon/io.c Wed Dec 14 18:58:01 2005 +@@ -21,6 +21,7 @@ + Boston, MA 02111-1307, USA. + */ + ++#include <errno.h> + #include <config.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/devel/libgtop/files/patch-src_daemon_server.c b/devel/libgtop/files/patch-src_daemon_server.c new file mode 100644 index 000000000000..bf0bba5c7f21 --- /dev/null +++ b/devel/libgtop/files/patch-src_daemon_server.c @@ -0,0 +1,17 @@ +--- src/daemon/server.c.orig Mon Feb 17 15:22:19 2003 ++++ src/daemon/server.c Mon Feb 17 15:23:31 2003 +@@ -88,11 +88,12 @@ + 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/devel/libgtop/files/patch-sysdeps_freebsd_fsusage.c b/devel/libgtop/files/patch-sysdeps_freebsd_fsusage.c new file mode 100644 index 000000000000..85c9822f86f9 --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_fsusage.c @@ -0,0 +1,134 @@ +--- sysdeps/freebsd/jfsusage.c.orig Sun Apr 9 12:52:45 2006 ++++ sysdeps/freebsd/fsusage.c Mon Apr 10 15:34:42 2006 +@@ -9,10 +9,12 @@ + + #include <unistd.h> + #include <sys/param.h> +-#if defined (HAVE_SYS_STATVFS_H) +-#include <sys/statvfs.h> +-#else + #include <sys/mount.h> ++#if __FreeBSD_version >= 600000 ++#include <libgeom.h> ++#include <sys/resource.h> ++#include <devstat.h> ++#include <sys/devicestat.h> + #endif + + #include <stdio.h> +@@ -31,24 +33,108 @@ _glibtop_freebsd_get_fsusage_read_write( + const char *path) + { + int result; +-#if defined (STAT_STATVFS) +- struct statvfs sfs; +-#else + struct statfs sfs; ++#if __FreeBSD_version >= 600000 ++ struct devstat *ds; ++ void *sc; ++ struct timespec ts; ++ struct gprovider *gp; ++ struct gident *gid; ++ struct gmesh gmp; ++ double etime; ++ uint64_t ld[2]; + #endif + +-#if defined (STAT_STATVFS) +- result = statvfs (path, &sfs); +-#else + result = statfs (path, &sfs); +-#endif + + if (result == -1) { ++ glibtop_warn_io_r (server, "statfs"); ++ return; ++ } ++#if __FreeBSD_version >= 600000 ++ ld[0] = 0; ++ ld[1] = 0; ++ result = geom_gettree (&gmp); ++ if (result != 0) { ++ glibtop_warn_io_r (server, "geom_gettree = %d", result); ++ return; ++ } ++ ++ result = geom_stats_open (); ++ if (result) { ++ glibtop_warn_io_r (server, "geom_stats_open()"); ++ geom_deletetree (&gmp); ++ return; ++ } ++ ++ sc = geom_stats_snapshot_get (); ++ if (sc == NULL) { ++ glibtop_warn_io_r (server, "geom_stats_snapshot_get()"); ++ geom_stats_close (); ++ geom_deletetree (&gmp); + return; + } + ++ geom_stats_snapshot_timestamp (sc, &ts); ++ etime = ts.tv_sec + (ts.tv_nsec * 1e-9); ++ geom_stats_snapshot_reset (sc); ++ ++ for (;;) { ++ ds = geom_stats_snapshot_next (sc); ++ if (ds == NULL) { ++ break; ++ } ++ if (ds->id == NULL) { ++ continue; ++ } ++ ++ gid = geom_lookupid (&gmp, ds->id); ++ if (gid == NULL) { ++ geom_deletetree (&gmp); ++ result = geom_gettree (&gmp); ++ gid = geom_lookupid (&gmp, ds->id); ++ } ++ ++ if (gid == NULL) { ++ continue; ++ } ++ if (gid->lg_what == ISCONSUMER) { ++ continue; ++ } ++ ++ gp = gid->lg_ptr; ++ ++ if (!g_str_has_suffix (sfs.f_mntfromname, gp->lg_name)) { ++ continue; ++ } ++ else { ++ result = devstat_compute_statistics (ds, NULL, etime, ++ DSM_TOTAL_TRANSFERS_READ, ++ &ld[0], ++ DSM_TOTAL_TRANSFERS_WRITE, ++ &ld[1], DSM_NONE); ++ if (result != 0) { ++ glibtop_warn_io_r (server, ++ "devstat_compute_statistics()"); ++ geom_stats_snapshot_free (sc); ++ geom_stats_close (); ++ geom_deletetree (&gmp); ++ return; ++ } ++ break; ++ } ++ } ++ ++ geom_stats_snapshot_free (sc); ++ geom_stats_close (); ++ geom_deletetree (&gmp); ++ ++ buf->read = ld[0]; ++ buf->write = ld[1]; ++#else + buf->read = sfs.f_syncreads + sfs.f_asyncreads; + buf->write = sfs.f_syncwrites + sfs.f_asyncwrites; ++#endif + + buf->flags |= (1 << GLIBTOP_FSUSAGE_READ) | (1 << GLIBTOP_FSUSAGE_WRITE); + } diff --git a/devel/libgtop/files/patch-sysdeps_freebsd_glibtop_server.h b/devel/libgtop/files/patch-sysdeps_freebsd_glibtop_server.h new file mode 100644 index 000000000000..4955aed65da5 --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_glibtop_server.h @@ -0,0 +1,13 @@ +--- sysdeps/freebsd/glibtop_server.h.orig Tue Apr 4 16:06:13 2006 ++++ sysdeps/freebsd/glibtop_server.h Mon Apr 10 15:27:11 2006 +@@ -21,8 +21,8 @@ + Boston, MA 02111-1307, USA. + */ + +-#ifndef __GLIBTOP_SERVER_H__ +-#define __GLIBTOP_SERVER_H__ ++#ifndef __FREEBSD__GLIBTOP_SERVER_H__ ++#define __FREEBSD__GLIBTOP_SERVER_H__ + + G_BEGIN_DECLS + diff --git a/devel/libgtop/files/patch-sysdeps_freebsd_netload.c b/devel/libgtop/files/patch-sysdeps_freebsd_netload.c new file mode 100644 index 000000000000..bb6d286e03f6 --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_netload.c @@ -0,0 +1,102 @@ +--- sysdeps/freebsd/netload.c.orig Mon Dec 12 05:09:39 2005 ++++ sysdeps/freebsd/netload.c Wed May 3 13:46:08 2006 +@@ -28,6 +28,8 @@ + + #include <glibtop_suid.h> + ++#include <string.h> ++ + #include <net/if.h> + #include <net/if_dl.h> + #include <net/if_types.h> +@@ -83,9 +85,11 @@ glibtop_get_netload_p (glibtop *server, + const char *interface) + { + struct ifnet ifnet; +- u_long ifnetaddr, ifnetfound, ifaddraddr; ++ u_long ifnetaddr, ifnetfound; + struct sockaddr *sa = NULL; ++#if (defined(__FreeBSD__) && (__FreeBSD_version < 501113)) || defined(__bsdi__) + char tname [16]; ++#endif + char name [32]; + + union { +@@ -101,12 +105,12 @@ glibtop_get_netload_p (glibtop *server, + &ifnetaddr, sizeof (ifnetaddr)) != sizeof (ifnetaddr)) + glibtop_error_io_r (server, "kvm_read (ifnet)"); + +- ifaddraddr = 0; +- while (ifnetaddr || ifaddraddr) { ++ while (ifnetaddr) { + struct sockaddr_in *sin; + register char *cp; ++ u_long ifaddraddr; + +- if (ifaddraddr == 0) { ++ { + ifnetfound = ifnetaddr; + + if (kvm_read (server->machine.kd, ifnetaddr, &ifnet, +@@ -151,7 +155,11 @@ glibtop_get_netload_p (glibtop *server, + buf->if_flags |= (1L << GLIBTOP_IF_FLAGS_LOOPBACK); + if (ifnet.if_flags & IFF_POINTOPOINT) + buf->if_flags |= (1L << GLIBTOP_IF_FLAGS_POINTOPOINT); ++#ifdef IFF_DRV_RUNNING ++ if (ifnet.if_drv_flags & IFF_DRV_RUNNING) ++#else + if (ifnet.if_flags & IFF_RUNNING) ++#endif + buf->if_flags |= (1L << GLIBTOP_IF_FLAGS_RUNNING); + if (ifnet.if_flags & IFF_NOARP) + buf->if_flags |= (1L << GLIBTOP_IF_FLAGS_NOARP); +@@ -159,7 +167,11 @@ glibtop_get_netload_p (glibtop *server, + buf->if_flags |= (1L << GLIBTOP_IF_FLAGS_PROMISC); + if (ifnet.if_flags & IFF_ALLMULTI) + buf->if_flags |= (1L << GLIBTOP_IF_FLAGS_ALLMULTI); ++#ifdef IFF_DRV_OACTIVE ++ if (ifnet.if_drv_flags & IFF_DRV_OACTIVE) ++#else + if (ifnet.if_flags & IFF_OACTIVE) ++#endif + buf->if_flags |= (1L << GLIBTOP_IF_FLAGS_OACTIVE); + if (ifnet.if_flags & IFF_SIMPLEX) + buf->if_flags |= (1L << GLIBTOP_IF_FLAGS_SIMPLEX); +@@ -191,7 +203,7 @@ glibtop_get_netload_p (glibtop *server, + buf->collisions = ifnet.if_collisions; + buf->flags = _glibtop_sysdeps_netload; + +- if (ifaddraddr) { ++ while (ifaddraddr) { + if ((kvm_read (server->machine.kd, ifaddraddr, &ifaddr, + sizeof (ifaddr)) != sizeof (ifaddr))) + glibtop_error_io_r (server, "kvm_read (ifaddraddr)"); +@@ -201,7 +213,12 @@ glibtop_get_netload_p (glibtop *server, + CP(&ifaddr); + sa = (struct sockaddr *)cp; + +- if (sa->sa_family == AF_INET) { ++ if (sa->sa_family == AF_LINK) { ++ struct sockaddr_dl *dl = (struct sockaddr_dl *) sa; ++ ++ memcpy (buf->hwaddress, LLADDR (dl), sizeof (buf->hwaddress)); ++ buf->flags |= GLIBTOP_NETLOAD_HWADDRESS; ++ } else if (sa->sa_family == AF_INET) { + sin = (struct sockaddr_in *)sa; + #if !defined(__bsdi__) + /* Commenting out to "fix" #13345. */ +@@ -211,8 +228,14 @@ glibtop_get_netload_p (glibtop *server, + buf->mtu = ifnet.if_mtu; + + buf->flags |= _glibtop_sysdeps_netload_data; ++ } else if (sa->sa_family == AF_INET6) { ++ struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) sa; + ++ memcpy (buf->address6, &sin6->sin6_addr, sizeof (buf->address6)); ++ buf->flags |= GLIBTOP_NETLOAD_ADDRESS6; + } ++ /* FIXME prefix6, scope6 */ ++ ifaddraddr = (u_long) ifaddr.ifa.ifa_link.tqe_next; + } + return; + } diff --git a/devel/libgtop/files/patch-sysdeps_freebsd_siglist.c b/devel/libgtop/files/patch-sysdeps_freebsd_siglist.c new file mode 100644 index 000000000000..6881723bd3ad --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_siglist.c @@ -0,0 +1,41 @@ +--- sysdeps/freebsd/siglist.c.orig Fri Jan 20 02:56:40 2006 ++++ sysdeps/freebsd/siglist.c Fri Jan 20 02:56:44 2006 +@@ -26,4 +26,37 @@ + #include <glibtop/signal.h> + + const glibtop_signame glibtop_sys_siglist [] = +-{ { 0, NULL, NULL } }; ++{ { 1, "SIGHUP", "Hangup" }, ++ { 2, "SIGINT", "Interrupt" }, ++ { 3, "SIGQUIT", "Quit" }, ++ { 4, "SIGILL", "Illegal Instruction" }, ++ { 5, "SIGTRAP", "Trace/Breakpoint Trap" }, ++ { 6, "SIGABRT", "Abort" }, ++ { 7, "SIGEMT", "Emulation Trap" }, ++ { 8, "SIGFPE", "Arithmetic Exception" }, ++ { 9, "SIGKILL", "Killed" }, ++ { 10, "SIGBUS", "Bus Error" }, ++ { 11, "SIGSEGV", "Segmentation Fault" }, ++ { 12, "SIGSYS", "Bad System Call" }, ++ { 13, "SIGPIPE", "Broken Pipe" }, ++ { 14, "SIGALRM", "Alarm Clock" }, ++ { 15, "SIGTERM", "Terminated" }, ++ { 16, "SIGURG", "Urgent Condition Present On Socket" }, ++ { 17, "SIGSTOP", "Stop (cannot be caught or ignored)" }, ++ { 18, "SIGTSTP", "Stop Signal Generated From Keyboard" }, ++ { 19, "SIGCONT", "Continue After Stop" }, ++ { 20, "SIGCHLD", "Child Status Has Changed" }, ++ { 21, "SIGTTIN", "Background Read Attempted From Control Terminal" }, ++ { 22, "SIGTTOU", "Background Write Attempted To Control Terminal" }, ++ { 23, "SIGIO", "I/O Is Possible On A Descriptor" }, ++ { 24, "SIGXCPU", "CPU Time Limit Exceeded" }, ++ { 25, "SIGXFSZ", "File Size Limit Exceeded" }, ++ { 26, "SIGVTALRM","Virtual Time Alarm" }, ++ { 27, "SIGPROF", "Profiling Timer Alarm" }, ++ { 28, "SIGWINCH","Window Size Change" }, ++ { 29, "SIGINFO", "Status Request From Keyboard" }, ++ { 30, "SIGUSR1", "User Defined Signal 1" }, ++ { 31, "SIGUSR2", "User Defined Signal 2" }, ++ { 32, "SIGTHR", "Thread Interrupt" }, ++ { 0, NULL, NULL } ++}; diff --git a/devel/libgtop/files/patch-systeps::freebsd::prockernel.c b/devel/libgtop/files/patch-systeps::freebsd::prockernel.c new file mode 100644 index 000000000000..f23b1cdaeb4e --- /dev/null +++ b/devel/libgtop/files/patch-systeps::freebsd::prockernel.c @@ -0,0 +1,15 @@ +--- sysdeps/freebsd/prockernel.c Mon Jul 19 05:33:56 2004 ++++ sysdeps/freebsd/prockernel.c.orig Sat Mar 19 02:39:47 2005 +@@ -115,8 +115,10 @@ + + /* 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) + diff --git a/devel/libgtop/files/patch-systeps::freebsd::procmap.c b/devel/libgtop/files/patch-systeps::freebsd::procmap.c new file mode 100644 index 000000000000..43923f3ba5a6 --- /dev/null +++ b/devel/libgtop/files/patch-systeps::freebsd::procmap.c @@ -0,0 +1,155 @@ +--- sysdeps/freebsd/procmap.c.orig Mon Dec 12 19:09:39 2005 ++++ sysdeps/freebsd/procmap.c Tue May 2 12:46:49 2006 +@@ -108,14 +108,16 @@ + #else + struct vm_object object; + #endif +- glibtop_map_entry *maps; ++ GArray *maps = g_array_sized_new(FALSE, FALSE, ++ sizeof(glibtop_map_entry), ++ 100); + #if defined __FreeBSD__ + struct vnode vnode; + #if __FreeBSD_version < 500039 + struct inode inode; + #endif + #endif +- int count, i = 0; ++ int count; + int update = 0; + + glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_MAP), 0); +@@ -123,15 +125,15 @@ + memset (buf, 0, sizeof (glibtop_proc_map)); + + /* It does not work for the swapper task. */ +- if (pid == 0) return NULL; ++ if (pid == 0) return (glibtop_map_entry*) g_array_free(maps, TRUE); + + glibtop_suid_enter (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); +- return NULL; ++ glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid); ++ return (glibtop_map_entry*) g_array_free(maps, TRUE); + } + + /* Now we get the memory maps. */ +@@ -159,8 +161,6 @@ + + buf->total = buf->number * buf->size; + +- maps = g_malloc0(buf->total); +- + buf->flags = _glibtop_sysdeps_proc_map; + + /* Walk through the `vm_map_entry' list ... */ +@@ -170,6 +170,10 @@ + * to OBJT_DEFAULT so if seems this really works. */ + + do { ++ glibtop_map_entry *mentry; ++ unsigned long inum, dev; ++ guint len; ++ + if (update) { + if (kvm_read (server->machine.kd, + (unsigned long) entry.next, +@@ -197,22 +201,6 @@ + #endif + #endif + +- maps [i].flags = _glibtop_sysdeps_map_entry; +- +- maps [i].start = entry.start; +- maps [i].end = entry.end; +- maps [i].offset = entry.offset; +- +- maps [i].perm = 0; +- +- if (entry.protection & VM_PROT_READ) +- maps [i].perm |= GLIBTOP_MAP_PERM_READ; +- if (entry.protection & VM_PROT_WRITE) +- maps [i].perm |= GLIBTOP_MAP_PERM_WRITE; +- if (entry.protection & VM_PROT_EXECUTE) +- maps [i].perm |= GLIBTOP_MAP_PERM_EXECUTE; +- +- i++; + + #if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000) + if (!entry.object.uvm_obj) +@@ -224,7 +212,7 @@ + (unsigned long) entry.object.uvm_obj, + &vnode, sizeof (vnode)) != sizeof (vnode)) { + glibtop_warn_io_r (server, "kvm_read (vnode)"); +- return NULL; ++ return (glibtop_map_entry*) g_array_free(maps, TRUE); + } + #else + if (!entry.object.vm_object) +@@ -251,8 +239,8 @@ + &inode, sizeof (inode)) != sizeof (inode)) + glibtop_error_io_r (server, "kvm_read (inode)"); + +- maps [i-1].inode = inode.i_number; +- maps [i-1].device = inode.i_dev; ++ inum = inode.i_number; ++ dev = inode.i_dev; + #endif + + +@@ -274,8 +262,8 @@ + switch (vnode.v_type) { + case VREG: + #if __FreeBSD_version < 600006 +- maps [i-1].inode = vnode.v_cachedid; +- maps [i-1].device = vnode.v_cachedfs; ++ inum = vnode.v_cachedid; ++ dev = vnode.v_cachedfs; + #endif + default: + continue; +@@ -289,11 +277,37 @@ + &inode, sizeof (inode)) != sizeof (inode)) + glibtop_error_io_r (server, "kvm_read (inode)"); + +- maps [i-1].inode = inode.i_number; +- maps [i-1].device = inode.i_dev; ++ inum = inode.i_number; ++ dev = inode.i_dev; + #endif + #endif ++ len = maps->len; ++ g_array_set_size(maps, len + 1); ++ mentry = &g_array_index(maps, glibtop_map_entry, len); ++ ++ mentry->flags = _glibtop_sysdeps_map_entry; ++ ++ mentry->start = (guint64) entry.start; ++ mentry->end = (guint64) entry.end; ++ mentry->offset = (guint64) entry.offset; ++ mentry->device = (guint64) dev; ++ mentry->inode = (guint64) inum; ++ ++ mentry->perm = (guint64) 0; ++ ++ if (entry.protection & VM_PROT_READ) ++ mentry->perm |= GLIBTOP_MAP_PERM_READ; ++ if (entry.protection & VM_PROT_WRITE) ++ mentry->perm |= GLIBTOP_MAP_PERM_WRITE; ++ if (entry.protection & VM_PROT_EXECUTE) ++ mentry->perm |= GLIBTOP_MAP_PERM_EXECUTE; + } while (entry.next != first); + +- return maps; ++ buf->flags = _glibtop_sysdeps_proc_map; ++ ++ buf->number = maps->len; ++ buf->size = sizeof (glibtop_map_entry); ++ buf->total = buf->number * buf->size; ++ ++ return (glibtop_map_entry*) g_array_free(maps, FALSE); + } diff --git a/devel/libgtop/files/patch-systeps::freebsd::proctime.c b/devel/libgtop/files/patch-systeps::freebsd::proctime.c new file mode 100644 index 000000000000..9857d6cb856d --- /dev/null +++ b/devel/libgtop/files/patch-systeps::freebsd::proctime.c @@ -0,0 +1,31 @@ +--- sysdeps/freebsd/proctime.c.orig Wed Feb 23 03:20:45 2005 ++++ sysdeps/freebsd/proctime.c Tue Aug 2 12:49:38 2005 +@@ -146,8 +146,10 @@ 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; +@@ -193,9 +195,13 @@ 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; + } diff --git a/devel/libgtop/files/pkg-message b/devel/libgtop/files/pkg-message new file mode 100644 index 000000000000..dacaf62a9c39 --- /dev/null +++ b/devel/libgtop/files/pkg-message @@ -0,0 +1,13 @@ +=============================================================================== + +In order to use the File System read/write monitor, you must chmod +/dev/devstat so that all users can open it read-only. For example: + +# chmod 0444 /dev/devstat + +In order for this to persist across reboots, add the following to +/etc/devfs.conf: + +perm devstat 0444 + +=============================================================================== diff --git a/devel/libgtop/pkg-descr b/devel/libgtop/pkg-descr new file mode 100644 index 000000000000..f263f1127244 --- /dev/null +++ b/devel/libgtop/pkg-descr @@ -0,0 +1,3 @@ +This library provides the backend for gtop2, a GNOME 2.0 version +of top(1) that allows display and manipulation of running +processes. diff --git a/devel/libgtop/pkg-plist b/devel/libgtop/pkg-plist new file mode 100644 index 000000000000..020a91183bd2 --- /dev/null +++ b/devel/libgtop/pkg-plist @@ -0,0 +1,129 @@ +bin/libgtop_daemon2 +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 +include/libgtop-2.0/glibtop_suid.h +include/libgtop-2.0/libgtopconfig.h +lib/libgtop-2.0.a +lib/libgtop-2.0.la +lib/libgtop-2.0.so +lib/libgtop-2.0.so.7 +libdata/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/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/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/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/no/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_TW/LC_MESSAGES/libgtop-2.0.mo +@dirrm include/libgtop-2.0/glibtop +@dirrm include/libgtop-2.0 +@dirrmtry share/locale/xh/LC_MESSAGES +@dirrmtry share/locale/xh +@dirrmtry share/locale/rw/LC_MESSAGES +@dirrmtry share/locale/rw +@dirrmtry share/locale/mi/LC_MESSAGES +@dirrmtry share/locale/mi +@dirrmtry share/locale/ky/LC_MESSAGES +@dirrmtry share/locale/ky +@dirrmtry share/locale/ku/LC_MESSAGES +@dirrmtry share/locale/ku |