diff options
author | marcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059> | 2008-05-26 03:01:01 +0800 |
---|---|---|
committer | marcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059> | 2008-05-26 03:01:01 +0800 |
commit | 1aa90d302b2e551b7129d0d3aa4bbe10b8ceb45b (patch) | |
tree | 07afd4fcfb5eae51435877b7b895e3b67d4fe11e /devel/libgtop | |
parent | 0c79b39e253288cc65fe2c2b8a2cad28845d764c (diff) | |
download | marcuscom-ports-1aa90d302b2e551b7129d0d3aa4bbe10b8ceb45b.tar marcuscom-ports-1aa90d302b2e551b7129d0d3aa4bbe10b8ceb45b.tar.gz marcuscom-ports-1aa90d302b2e551b7129d0d3aa4bbe10b8ceb45b.tar.bz2 marcuscom-ports-1aa90d302b2e551b7129d0d3aa4bbe10b8ceb45b.tar.lz marcuscom-ports-1aa90d302b2e551b7129d0d3aa4bbe10b8ceb45b.tar.xz marcuscom-ports-1aa90d302b2e551b7129d0d3aa4bbe10b8ceb45b.tar.zst marcuscom-ports-1aa90d302b2e551b7129d0d3aa4bbe10b8ceb45b.zip |
Update to 2.23.2.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@10979 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'devel/libgtop')
-rw-r--r-- | devel/libgtop/Makefile | 50 | ||||
-rw-r--r-- | devel/libgtop/distinfo | 3 | ||||
-rw-r--r-- | devel/libgtop/files/patch-configure | 11 | ||||
-rw-r--r-- | devel/libgtop/files/patch-src_daemon_server.c | 17 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_Makefile.in | 37 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_fsusage.c | 61 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_glibtop_server.h | 10 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_mountlist.c | 171 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_procaffinity.c | 87 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_procopenfiles.c | 229 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_procwd.c | 94 | ||||
-rw-r--r-- | devel/libgtop/files/patch-sysdeps_freebsd_shm_limits.c | 22 | ||||
-rw-r--r-- | devel/libgtop/files/pkg-message | 13 | ||||
-rw-r--r-- | devel/libgtop/pkg-descr | 3 | ||||
-rw-r--r-- | devel/libgtop/pkg-plist | 200 |
15 files changed, 1008 insertions, 0 deletions
diff --git a/devel/libgtop/Makefile b/devel/libgtop/Makefile new file mode 100644 index 000000000..521c1de1f --- /dev/null +++ b/devel/libgtop/Makefile @@ -0,0 +1,50 @@ +# New ports collection makefile for: libgtop2 +# Date Created: 29 April 2002 +# Whom: Joe Marcus Clarke <marcus@FreeBSD.org> +# +# $FreeBSD$ +# $MCom: ports/devel/libgtop/Makefile,v 1.34 2008/03/10 21:59:17 mezz Exp $ +# + +PORTNAME= libgtop +PORTVERSION= 2.23.2 +CATEGORIES= devel gnome +MASTER_SITES= GNOME +DIST_SUBDIR= gnome2 + +MAINTAINER= gnome@FreeBSD.org +COMMENT= GNOME 2 top library + +USE_BZIP2= yes +USE_PERL5_BUILD=yes +USE_GETTEXT= yes +USE_GMAKE= yes +USE_GNOME= gnomehack glib20 ltverhack intlhack +USE_LDCONFIG= yes +USE_AUTOTOOLS= libtool:15 +CONFIGURE_ARGS= --disable-gtk-doc \ + --with-html-dir=${PREFIX}/share/doc +CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ + LDFLAGS="-L${LOCALBASE}/lib" + +INFO= libgtop2 + +.include <bsd.port.pre.mk> + +.if ( ${OSVERSION} >= 800000 && ${OSVERSION} < 800019 ) || \ + ${OSVERSION} < 700104 +RUN_DEPENDS+= lsof:${PORTSDIR}/sysutils/lsof +.endif + +.if ${OSVERSION} >= 600000 +PKGMESSAGE= ${FILESDIR}/pkg-message +.endif + +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 000000000..9dd11ae6f --- /dev/null +++ b/devel/libgtop/distinfo @@ -0,0 +1,3 @@ +MD5 (gnome2/libgtop-2.23.2.tar.bz2) = c07b668eb39c511c257c60577862c846 +SHA256 (gnome2/libgtop-2.23.2.tar.bz2) = 719f9261284df8d5f36ae99f3d3b54d2629c5d8122fa9c436a642c80aafb3717 +SIZE (gnome2/libgtop-2.23.2.tar.bz2) = 788360 diff --git a/devel/libgtop/files/patch-configure b/devel/libgtop/files/patch-configure new file mode 100644 index 000000000..b1d337570 --- /dev/null +++ b/devel/libgtop/files/patch-configure @@ -0,0 +1,11 @@ +--- configure.orig 2008-04-05 01:45:43.000000000 -0400 ++++ configure 2008-04-05 01:45:50.000000000 -0400 +@@ -21523,6 +21523,8 @@ echo $ECHO_N "checking for libgtop sysde + libgtop_sysdeps_dir=freebsd + libgtop_use_machine_h=yes + libgtop_need_server=yes ++ libgtop_sysdeps_private_mountlist=yes ++ libgtop_sysdeps_private_fsusage=yes + libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2755 $(bindir)/libgtop_server2' + ;; + solaris*) 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 000000000..bf0bba5c7 --- /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_Makefile.in b/devel/libgtop/files/patch-sysdeps_freebsd_Makefile.in new file mode 100644 index 000000000..01e8330ea --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_Makefile.in @@ -0,0 +1,37 @@ +--- sysdeps/freebsd/Makefile.in.orig 2008-05-25 14:23:40.000000000 -0400 ++++ sysdeps/freebsd/Makefile.in 2008-05-25 14:43:33.000000000 -0400 +@@ -54,7 +54,7 @@ libgtop_sysdeps_2_0_la_LIBADD = + am_libgtop_sysdeps_2_0_la_OBJECTS = nosuid.lo siglist.lo sysinfo.lo \ + shm_limits.lo cpu.lo msg_limits.lo sem_limits.lo loadavg.lo \ + uptime.lo netlist.lo fsusage.lo mem.lo procopenfiles.lo \ +- procwd.lo glibtop_private.lo ++ procwd.lo procaffinity.lo glibtop_private.lo mountlist.lo + libgtop_sysdeps_2_0_la_OBJECTS = $(am_libgtop_sysdeps_2_0_la_OBJECTS) + am__DEPENDENCIES_1 = + libgtop_sysdeps_suid_2_0_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ +@@ -306,7 +306,8 @@ libgtop_sysdeps_2_0_la_SOURCES = nosuid. + cpu.c msg_limits.c sem_limits.c loadavg.c \ + uptime.c netlist.c fsusage.c mem.c \ + procopenfiles.c procwd.c \ +- glibtop_private.c ++ procaffinity.c \ ++ glibtop_private.c mountlist.c + + libgtop_sysdeps_2_0_la_LDFLAGS = $(LT_VERSION_INFO) + libgtop_sysdeps_suid_2_0_la_LIBADD = $(KVM_LIBS) $(EXTRA_SYSDEPS_LIBS) +@@ -377,6 +378,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsusage.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mountlist.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glibtop_private.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loadavg.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mem.Plo@am__quote@ +@@ -398,6 +400,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proctime.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/procuid.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/procwd.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/procaffinity.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sem_limits.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shm_limits.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siglist.Plo@am__quote@ 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 000000000..90da05b1b --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_fsusage.c @@ -0,0 +1,61 @@ +--- sysdeps/freebsd/fsusage.c.orig 2007-06-03 16:06:05.000000000 -0400 ++++ sysdeps/freebsd/fsusage.c 2008-02-09 19:50:44.000000000 -0500 +@@ -10,6 +10,7 @@ + #include <unistd.h> + #include <sys/param.h> + #include <sys/mount.h> ++#include <sys/statvfs.h> + #if __FreeBSD_version >= 600000 || defined(__FreeBSD_kernel__) + #include <libgeom.h> + #include <sys/resource.h> +@@ -21,15 +22,13 @@ + #include <string.h> + #include <stdlib.h> + +-void +-_glibtop_freebsd_get_fsusage_read_write(glibtop *server, +- glibtop_fsusage *buf, +- const char *path); ++static const unsigned long _glibtop_sysdeps_fsusage = ++(1L << GLIBTOP_FSUSAGE_BLOCKS) + (1L << GLIBTOP_FSUSAGE_BFREE) +++ (1L << GLIBTOP_FSUSAGE_BAVAIL) + (1L << GLIBTOP_FSUSAGE_FILES) +++ (1L << GLIBTOP_FSUSAGE_FFREE) + (1L << GLIBTOP_FSUSAGE_BLOCK_SIZE); + +-void +-_glibtop_freebsd_get_fsusage_read_write(glibtop *server, +- glibtop_fsusage *buf, +- const char *path) ++static void ++_glibtop_get_fsusage_read_write (glibtop *server, glibtop_fsusage *buf, const char *path) + { + int result; + struct statfs sfs; +@@ -135,3 +134,28 @@ _glibtop_freebsd_get_fsusage_read_write( + #endif + buf->flags |= (1 << GLIBTOP_FSUSAGE_READ) | (1 << GLIBTOP_FSUSAGE_WRITE); + } ++ ++void ++glibtop_get_fsusage_s(glibtop *server, glibtop_fsusage *buf, const char *path) ++{ ++ struct statvfs fsd; ++ ++ glibtop_init_r (&server, 0, 0); ++ ++ memset (buf, 0, sizeof (glibtop_fsusage)); ++ ++ if (statvfs (path, &fsd) < 0) ++ return; ++ ++ buf->block_size = fsd.f_frsize; ++ buf->blocks = fsd.f_blocks; ++ buf->bfree = fsd.f_bfree; ++ buf->bavail = (fsd.f_bavail > fsd.f_bfree) ? 0 : fsd.f_bavail; ++ buf->files = fsd.f_files; ++ buf->ffree = fsd.f_ffree; ++ ++ buf->flags = _glibtop_sysdeps_fsusage; ++ ++ _glibtop_get_fsusage_read_write(server, buf, path); ++} ++ 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 000000000..ee797acf6 --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_glibtop_server.h @@ -0,0 +1,10 @@ +--- sysdeps/freebsd/glibtop_server.h.orig 2008-05-25 14:26:13.000000000 -0400 ++++ sysdeps/freebsd/glibtop_server.h 2008-05-25 14:26:30.000000000 -0400 +@@ -46,6 +46,7 @@ G_BEGIN_DECLS + #define GLIBTOP_SUID_SEM_LIMITS 0 + #define GLIBTOP_SUID_NETLIST 0 + #define GLIBTOP_SUID_PROC_WD 0 ++#define GLIBTOP_SUID_PROC_AFFINITY 0 + + G_END_DECLS + diff --git a/devel/libgtop/files/patch-sysdeps_freebsd_mountlist.c b/devel/libgtop/files/patch-sysdeps_freebsd_mountlist.c new file mode 100644 index 000000000..7c1b1774c --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_mountlist.c @@ -0,0 +1,171 @@ +--- sysdeps/freebsd/mountlist.c.orig 2008-02-15 02:11:59.000000000 -0500 ++++ sysdeps/freebsd/mountlist.c 2008-02-15 02:28:14.000000000 -0500 +@@ -0,0 +1,168 @@ ++/* mountlist.c -- return a list of mounted filesystems ++ Copyright (C) 1991, 1992 Free Software Foundation, Inc. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software Foundation, ++ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ++ ++#include <config.h> ++ ++#include <glib.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <sys/types.h> ++#include <sys/param.h> ++#include <sys/mount.h> ++ ++#include <string.h> ++ ++#include <glibtop.h> ++#include <glibtop/mountlist.h> ++ ++/* A mount table entry. */ ++struct mount_entry ++{ ++ char *me_devname; /* Device node pathname, including "/dev/". */ ++ char *me_mountdir; /* Mount point directory pathname. */ ++ char *me_type; /* "nfs", "4.2", etc. */ ++ dev_t me_dev; /* Device number of me_mountdir. */ ++ struct mount_entry *me_next; ++}; ++ ++static struct mount_entry *read_filesystem_list (void); ++ ++/* Return a list of the currently mounted filesystems, or NULL on error. ++ Add each entry to the tail of the list so that they stay in order. ++*/ ++ ++static struct mount_entry * ++read_filesystem_list (void) ++{ ++ struct mount_entry *mount_list; ++ struct mount_entry *me; ++ struct mount_entry *mtail; ++ ++ /* Start the list off with a dummy entry. */ ++ me = g_new (struct mount_entry, 1); ++ me->me_next = NULL; ++ mount_list = mtail = me; ++ { ++ struct statfs *fsp; ++ int entries; ++ ++ entries = getmntinfo (&fsp, MNT_NOWAIT); ++ if (entries < 0) ++ return NULL; ++ while (entries-- > 0) ++ { ++ 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); ++ me->me_type = g_strdup (fsp->f_fstypename); ++ me->me_dev = (dev_t) -1; /* Magic; means not known yet. */ ++ me->me_next = NULL; ++ ++ /* Add to the linked list. */ ++ mtail->me_next = me; ++ mtail = me; ++ fsp++; ++ } ++ } ++ ++ /* Free the dummy head. */ ++ me = mount_list; ++ mount_list = mount_list->me_next; ++ g_free (me); ++ return mount_list; ++} ++ ++static gboolean ignore_mount_entry(const struct mount_entry *me) ++{ ++ /* keep sorted */ ++ static const char ignored[][17] = { ++ "autofs", ++ "devfs", ++ "fusectl", ++ "linprocfs", ++ "linsysfs", ++ "mfs", ++ "none", ++ "nfs", ++ "nullfs", ++ "nwfs", ++ "portalfs", ++ "proc", ++ "procfs", ++ "smbfs", ++ "tmpfs", ++ "unionfs", ++ "unknown" ++ }; ++ ++ typedef int (*Comparator)(const void*, const void*); ++ ++ return bsearch(me->me_type, ++ ignored, G_N_ELEMENTS(ignored), sizeof ignored[0], ++ (Comparator) strcmp) != NULL; ++} ++ ++ ++glibtop_mountentry * ++glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs) ++{ ++ struct mount_entry *entries, *cur, *next; ++ ++ GArray *mount_array = g_array_new(FALSE, FALSE, ++ sizeof(glibtop_mountentry)); ++ ++ glibtop_init_r (&server, 0, 0); ++ ++ memset (buf, 0, sizeof (glibtop_mountlist)); ++ ++ /* Read filesystem list. */ ++ ++ if((entries = read_filesystem_list ()) == NULL) ++ return NULL; ++ ++ for (cur = &entries[0]; cur != NULL; cur = next) { ++ ++ if(all_fs || !ignore_mount_entry(cur)) { ++ /* add a new glibtop_mountentry */ ++ glibtop_mountentry e; ++ ++ g_strlcpy(e.devname, cur->me_devname, sizeof e.devname); ++ g_strlcpy(e.mountdir, cur->me_mountdir, sizeof e.mountdir); ++ g_strlcpy(e.type, cur->me_type, sizeof e.type); ++ e.dev = cur->me_dev; ++ ++ g_array_append_val(mount_array, e); ++ } ++ ++ /* free current mount_entry and move to the next */ ++ next = cur->me_next; ++ g_free(cur->me_devname); ++ g_free(cur->me_mountdir); ++ g_free(cur->me_type); ++ g_free(cur); ++ } ++ ++ buf->size = sizeof (glibtop_mountentry); ++ buf->number = mount_array->len; ++ buf->total = buf->number * buf->size; ++ ++ buf->flags = (1 << GLIBTOP_MOUNTLIST_SIZE) ++ | (1 << GLIBTOP_MOUNTLIST_NUMBER) ++ | (1 << GLIBTOP_MOUNTLIST_TOTAL); ++ ++ return (glibtop_mountentry*) g_array_free(mount_array, FALSE); ++} diff --git a/devel/libgtop/files/patch-sysdeps_freebsd_procaffinity.c b/devel/libgtop/files/patch-sysdeps_freebsd_procaffinity.c new file mode 100644 index 000000000..8b0e82960 --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_procaffinity.c @@ -0,0 +1,87 @@ +--- sysdeps/freebsd/procaffinity.c.orig 2008-05-25 14:42:56.000000000 -0400 ++++ sysdeps/freebsd/procaffinity.c 2008-05-25 14:44:25.000000000 -0400 +@@ -0,0 +1,84 @@ ++/* Copyright (C) 2007 Joe Marcus Clarke <marcus@FreeBSD.org> ++ This file is part of LibGTop 2. ++ ++ LibGTop is free software; you can redistribute it and/or modify it ++ under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, ++ or (at your option) any later version. ++ ++ LibGTop is distributed in the hope that it will be useful, but WITHOUT ++ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with LibGTop; see the file COPYING. If not, write to the ++ Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. ++*/ ++ ++#include <config.h> ++#include <glibtop/procaffinity.h> ++#include <glibtop/error.h> ++ ++#include <glibtop_private.h> ++ ++#include <sys/param.h> ++#if __FreeBSD_version > 800024 ++#include <sys/cpuset.h> ++#endif ++ ++void ++_glibtop_init_proc_affinity_s(glibtop *server) ++{ ++ server->sysdeps.proc_affinity = ++ (1 << GLIBTOP_PROC_AFFINITY_NUMBER) | ++ (1 << GLIBTOP_PROC_AFFINITY_ALL); ++ ++} ++ ++ ++guint16 * ++glibtop_get_proc_affinity_s(glibtop *server, glibtop_proc_affinity *buf, pid_t pid) ++{ ++#if __FreeBSD_version > 800024 ++ id_t id; ++ cpulevel_t level; ++ cpuwhich_t which; ++ cpuset_t mask; ++ size_t i; ++ GArray* cpus; ++ ++ memset(buf, 0, sizeof *buf); ++ ++ which = CPU_WHICH_PID; ++ level = CPU_LEVEL_WHICH; ++ id = pid; ++ ++ if (cpuset_getaffinity(level, which, id, sizeof(mask), &mask) != 0) { ++ glibtop_error_r(server, "cpuset_getaffinity failed"); ++ return NULL; ++ } ++ ++ cpus = g_array_new(FALSE, FALSE, sizeof(guint16)); ++ ++ for (i = 0; i < MIN(CPU_SETSIZE, (size_t)(server->ncpu + 1)); i++) { ++ if (CPU_ISSET(i, &mask)) { ++ guint16 n = i; ++ g_array_append_val(cpus, n); ++ } ++ } ++ ++ buf->number = cpus->len; ++ buf->all = (cpus->len == (size_t)(server->ncpu + 1)); ++ buf->flags = (1 << GLIBTOP_PROC_AFFINITY_NUMBER) ++ | (1 << GLIBTOP_PROC_AFFINITY_ALL); ++ ++ return (guint16*) g_array_free(cpus, FALSE); ++#else ++ memset(buf, 0, sizeof *buf); ++ ++ return NULL; ++#endif ++} ++ diff --git a/devel/libgtop/files/patch-sysdeps_freebsd_procopenfiles.c b/devel/libgtop/files/patch-sysdeps_freebsd_procopenfiles.c new file mode 100644 index 000000000..8c83d13f2 --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_procopenfiles.c @@ -0,0 +1,229 @@ +--- sysdeps/freebsd/procopenfiles.c.orig 2008-05-23 18:13:23.000000000 -0400 ++++ sysdeps/freebsd/procopenfiles.c 2008-05-25 14:58:20.000000000 -0400 +@@ -28,6 +28,13 @@ + #include <glibtop/error.h> + #include <glibtop/procopenfiles.h> + #include <sys/types.h> ++#include <sys/socket.h> ++#include <sys/param.h> ++#include <sys/sysctl.h> ++#include <sys/un.h> ++#include <sys/user.h> ++#include <netinet/in.h> ++#include <arpa/inet.h> + #include <string.h> + #include <stdlib.h> + +@@ -46,6 +53,63 @@ _glibtop_init_proc_open_files_s (glibtop + server->sysdeps.proc_open_files = _glibtop_sysdeps_proc_open_files; + } + ++#if __FreeBSD_version > 800018 || (__FreeBSD_version < 800000 && __FreeBSD_version >= 700104) ++static char * ++addr_to_string(struct sockaddr_storage *ss) ++{ ++ char *buffer = NULL; ++ char buffer2[INET6_ADDRSTRLEN]; ++ struct sockaddr_in6 *sin6; ++ struct sockaddr_in *sin; ++ struct sockaddr_un *sun; ++ ++ switch (ss->ss_family) { ++ case AF_LOCAL: ++ sun = (struct sockaddr_un *)ss; ++ if (strlen(sun->sun_path) == 0) ++ buffer = g_strdup("-"); ++ else ++ buffer = g_strdup(sun->sun_path); ++ break; ++ case AF_INET: ++ sin = (struct sockaddr_in *)ss; ++ buffer = g_strdup(inet_ntoa(sin->sin_addr)); ++ break; ++ case AF_INET6: ++ sin6 = (struct sockaddr_in6 *)ss; ++ if (inet_ntop(AF_INET6, &sin6->sin6_addr, buffer2, ++ sizeof(buffer2)) != NULL) ++ buffer = g_strdup(buffer2); ++ else ++ buffer = g_strdup("-"); ++ break; ++ } ++ ++ return buffer; ++} ++ ++static int ++addr_to_port(struct sockaddr_storage *ss) ++{ ++ int port = 0; ++ struct sockaddr_in6 *sin6; ++ struct sockaddr_in *sin; ++ ++ switch (ss->ss_family) { ++ case AF_INET: ++ sin = (struct sockaddr_in *)ss; ++ port = ntohs(sin->sin_port); ++ break; ++ case AF_INET6: ++ sin6 = (struct sockaddr_in6 *)ss; ++ port = ntohs(sin6->sin6_port); ++ break; ++ } ++ ++ return port; ++} ++#else ++ + static GArray * + parse_output(const char *output) { + GArray *entries; +@@ -143,6 +207,39 @@ parse_output(const char *output) { + entry.info.sock.dest_port = atoi(remote_host[1]); + + g_strfreev(remote_host); ++ } else if (!strcmp(ftype, "IPv6")) { ++ char **hosts; ++ char **remote_host; ++ ++ if (!strstr(fname, "->")) { ++ remote_host = g_strsplit(fname, ":", 0); ++ } else { ++ hosts = g_strsplit(fname, "->", 0); ++ if (g_strv_length(hosts) < 2) { ++ g_strfreev(hosts); ++ continue; ++ } ++ ++ remote_host = g_strsplit(hosts[1], "]", 0); ++ g_strfreev(hosts); ++ } ++ ++ if (g_strv_length(remote_host) < 2) { ++ g_strfreev(remote_host); ++ continue; ++ } ++ ++ entry.type = GLIBTOP_FILE_TYPE_INET6SOCKET; ++ if (!strcmp(remote_host[0], "*")) ++ g_strlcpy(entry.info.sock.dest_host, "0.0.0.0", ++ sizeof(entry.info.sock.dest_host)); ++ else ++ g_strlcpy(entry.info.sock.dest_host, ++ remote_host[0] + 1, ++ sizeof(entry.info.sock.dest_host)); ++ entry.info.sock.dest_port = atoi(remote_host[1] + 1); ++ ++ g_strfreev(remote_host); + } else + continue; + +@@ -159,21 +256,108 @@ parse_output(const char *output) { + + return entries; + } ++#endif + + glibtop_open_files_entry * + glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid) + { ++#if __FreeBSD_version > 800018 || (__FreeBSD_version < 800000 && __FreeBSD_version >= 700104) ++ struct kinfo_file *freep, *kif; ++ int name[4]; ++ size_t len; ++ size_t i; ++#else + char *output; ++#endif + GArray *entries; + + memset(buf, 0, sizeof (glibtop_proc_open_files)); + ++#if __FreeBSD_version > 800018 || (__FreeBSD_version < 800000 && __FreeBSD_version >= 700104) ++ name[0] = CTL_KERN; ++ name[1] = KERN_PROC; ++ name[2] = KERN_PROC_FILEDESC; ++ name[3] = pid; ++ ++ if (sysctl(name, 4, NULL, &len, NULL, 0) < 0) ++ return NULL; ++ ++ freep = kif = g_malloc(len); ++ if (sysctl(name, 4, kif, &len, NULL, 0) < 0) { ++ g_free(freep); ++ return NULL; ++ } ++ ++ entries = g_array_new(FALSE, FALSE, sizeof(glibtop_open_files_entry)); ++ ++ for (i = 0; i < len / sizeof(*kif); i++, kif++) { ++ glibtop_open_files_entry entry = {0}; ++ ++ if (kif->kf_fd < 0) ++ continue; ++ ++ if (kif->kf_type == KF_TYPE_SOCKET) { ++ if (kif->kf_sock_domain == AF_LOCAL) { ++ struct sockaddr_un *sun; ++ ++ entry.type = GLIBTOP_FILE_TYPE_LOCALSOCKET; ++ sun = (struct sockaddr_un *)&kif->kf_sa_local; ++ ++ if (sun->sun_path[0]) { ++ char *addrstr; ++ ++ addrstr = addr_to_string(&kif->kf_sa_local); ++ g_strlcpy(entry.info.localsock.name, ++ addrstr, ++ sizeof(entry.info.localsock.name)); ++ g_free(addrstr); ++ } else { ++ char *addrstr; ++ ++ addrstr = addr_to_string(&kif->kf_sa_peer); ++ g_strlcpy(entry.info.localsock.name, ++ addrstr, ++ sizeof(entry.info.localsock.name)); ++ g_free(addrstr); ++ } ++ } else if (kif->kf_sock_domain == AF_INET || ++ kif->kf_sock_domain == AF_INET6) { ++ char *addrstr; ++ ++ if (kif->kf_sock_domain == AF_INET) ++ entry.type = GLIBTOP_FILE_TYPE_INETSOCKET; ++ else ++ entry.type = GLIBTOP_FILE_TYPE_INET6SOCKET; ++ addrstr = addr_to_string(&kif->kf_sa_peer); ++ g_strlcpy(entry.info.sock.dest_host, ++ addrstr, ++ sizeof(entry.info.sock.dest_host)); ++ g_free(addrstr); ++ entry.info.sock.dest_port = addr_to_port(&kif->kf_sa_peer); ++ } ++ } else if (kif->kf_type == KF_TYPE_PIPE) { ++ entry.type = GLIBTOP_FILE_TYPE_PIPE; ++ } else if (kif->kf_type == KF_TYPE_VNODE) { ++ entry.type = GLIBTOP_FILE_TYPE_FILE; ++ g_strlcpy(entry.info.file.name, kif->kf_path, ++ sizeof(entry.info.file.name)); ++ } else ++ continue; ++ ++ entry.fd = kif->kf_fd; ++ ++ g_array_append_val(entries, entry); ++ } ++ g_free(freep); ++#else ++ + output = execute_lsof(pid); + if (output == NULL) return NULL; + + entries = parse_output(output); + + g_free(output); ++#endif + + buf->flags = _glibtop_sysdeps_proc_open_files; + buf->number = entries->len; diff --git a/devel/libgtop/files/patch-sysdeps_freebsd_procwd.c b/devel/libgtop/files/patch-sysdeps_freebsd_procwd.c new file mode 100644 index 000000000..d6fb5063d --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_procwd.c @@ -0,0 +1,94 @@ +--- sysdeps/freebsd/procwd.c.orig 2008-02-09 12:46:32.000000000 -0500 ++++ sysdeps/freebsd/procwd.c 2008-02-09 12:48:24.000000000 -0500 +@@ -24,7 +24,9 @@ + #include <glibtop_private.h> + + #include <sys/types.h> ++#include <sys/sysctl.h> + #include <sys/param.h> ++#include <sys/user.h> + #include <string.h> + + static const unsigned long _glibtop_sysdeps_proc_wd = +@@ -38,6 +40,7 @@ _glibtop_init_proc_wd_s(glibtop *server) + server->sysdeps.proc_wd = _glibtop_sysdeps_proc_wd; + } + ++#if (__FreeBSD_version >= 800000 && __FreeBSD_version < 800019) || _FreeBSD_version < 700104 + static GPtrArray * + parse_output(const char *output, glibtop_proc_wd *buf) + { +@@ -89,12 +92,21 @@ parse_output(const char *output, glibtop + + return dirs; + } ++#endif + + char** + glibtop_get_proc_wd_s(glibtop *server, glibtop_proc_wd *buf, pid_t pid) + { + char path[MAXPATHLEN]; ++#if __FreeBSD_version > 800018 || (__FreeBSD_version < 800000 && __FreeBSD_version >= 700104) ++ struct kinfo_file *freep, *kif; ++ GPtrArray *dirs; ++ size_t len; ++ int i; ++ int name[4]; ++#else + char *output; ++#endif + + memset (buf, 0, sizeof (glibtop_proc_wd)); + +@@ -102,6 +114,43 @@ glibtop_get_proc_wd_s(glibtop *server, g + if (safe_readlink(path, buf->exe, sizeof(buf->exe))) + buf->flags |= (1 << GLIBTOP_PROC_WD_EXE); + ++#if __FreeBSD_version > 800018 || (__FreeBSD_version < 800000 && __FreeBSD_version >= 700104) ++ name[0] = CTL_KERN; ++ name[1] = KERN_PROC; ++ name[2] = KERN_PROC_FILEDESC; ++ name[3] = pid; ++ ++ if (sysctl(name, 4, NULL, &len, NULL, 0) < 0) ++ return NULL; ++ freep = kif = g_malloc(len); ++ if (sysctl(name, 4, kif, &len, NULL, 0) < 0) { ++ g_free(freep); ++ return NULL; ++ } ++ ++ dirs = g_ptr_array_sized_new(1); ++ ++ for (i = 0; i < len / sizeof(*kif); i++, kif++) { ++ switch (kif->kf_fd) { ++ case KF_FD_TYPE_ROOT: ++ g_strlcpy(buf->root, kif->kf_path, ++ sizeof(buf->root)); ++ buf->flags |= (1 << GLIBTOP_PROC_WD_ROOT); ++ break; ++ case KF_FD_TYPE_CWD: ++ g_ptr_array_add(dirs, g_strdup (kif->kf_path)); ++ break; ++ } ++ } ++ g_free(freep); ++ ++ buf->number = dirs->len; ++ buf->flags |= (1 << GLIBTOP_PROC_WD_NUMBER); ++ ++ g_ptr_array_add(dirs, NULL); ++ ++ return (char **)g_ptr_array_free(dirs, FALSE); ++#else + output = execute_lsof(pid); + if (output != NULL) { + GPtrArray *dirs; +@@ -116,6 +165,7 @@ glibtop_get_proc_wd_s(glibtop *server, g + + return (char **)g_ptr_array_free(dirs, FALSE); + } ++#endif + + return NULL; + } diff --git a/devel/libgtop/files/patch-sysdeps_freebsd_shm_limits.c b/devel/libgtop/files/patch-sysdeps_freebsd_shm_limits.c new file mode 100644 index 000000000..8fa00f388 --- /dev/null +++ b/devel/libgtop/files/patch-sysdeps_freebsd_shm_limits.c @@ -0,0 +1,22 @@ +--- sysdeps/freebsd/shm_limits.c.orig 2008-02-14 12:26:46.000000000 -0500 ++++ sysdeps/freebsd/shm_limits.c 2008-02-14 12:26:29.000000000 -0500 +@@ -25,6 +25,7 @@ + #include <glibtop/shm_limits.h> + + #include <sys/types.h> ++#include <sys/param.h> + #include <sys/sysctl.h> + + static unsigned long _glibtop_sysdeps_shm_limits = +@@ -46,7 +47,11 @@ void + glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf) + { + size_t len; ++#if __FreeBSD_version < 700002 + int shmmax, shmmin, shmmni, shmseg, shmall; ++#else ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall; ++#endif + + glibtop_init_s (&server, GLIBTOP_SYSDEPS_SHM_LIMITS, 0); + diff --git a/devel/libgtop/files/pkg-message b/devel/libgtop/files/pkg-message new file mode 100644 index 000000000..dacaf62a9 --- /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 000000000..f263f1127 --- /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 000000000..39ec1d217 --- /dev/null +++ b/devel/libgtop/pkg-plist @@ -0,0 +1,200 @@ +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/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/procaffinity.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/procwd.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_private.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 +%%DOCSDIR%%/home.png +%%DOCSDIR%%/index.html +%%DOCSDIR%%/index.sgml +%%DOCSDIR%%/left.png +%%DOCSDIR%%/libgtop-Close.html +%%DOCSDIR%%/libgtop-Command.html +%%DOCSDIR%%/libgtop-GlibTop-Server.html +%%DOCSDIR%%/libgtop-GlibTop.html +%%DOCSDIR%%/libgtop-Net-List.html +%%DOCSDIR%%/libgtop-Net-Load.html +%%DOCSDIR%%/libgtop-PPP.html +%%DOCSDIR%%/libgtop-Shared-Memory-Limits.html +%%DOCSDIR%%/libgtop-Uptime.html +%%DOCSDIR%%/libgtop-cpu.html +%%DOCSDIR%%/libgtop-fsusage.html +%%DOCSDIR%%/libgtop-lib.html +%%DOCSDIR%%/libgtop-loadavg.html +%%DOCSDIR%%/libgtop-mem.html +%%DOCSDIR%%/libgtop-mountlist.html +%%DOCSDIR%%/libgtop-msg-limits.html +%%DOCSDIR%%/libgtop-open.html +%%DOCSDIR%%/libgtop-parameter.html +%%DOCSDIR%%/libgtop-procargs.html +%%DOCSDIR%%/libgtop-prockernel.html +%%DOCSDIR%%/libgtop-proclist.html +%%DOCSDIR%%/libgtop-procmap.html +%%DOCSDIR%%/libgtop-procmem.html +%%DOCSDIR%%/libgtop-procopenfiles.html +%%DOCSDIR%%/libgtop-procsegment.html +%%DOCSDIR%%/libgtop-procsignal.html +%%DOCSDIR%%/libgtop-procstate.html +%%DOCSDIR%%/libgtop-proctime.html +%%DOCSDIR%%/libgtop-procuid.html +%%DOCSDIR%%/libgtop-sem-limits.html +%%DOCSDIR%%/libgtop-signal.html +%%DOCSDIR%%/libgtop-swap.html +%%DOCSDIR%%/libgtop-sysdeps.html +%%DOCSDIR%%/libgtop-sysinfo.html +%%DOCSDIR%%/libgtop-union.html +%%DOCSDIR%%/libgtop-version.html +%%DOCSDIR%%/libgtop-white-paper-overview.html +%%DOCSDIR%%/libgtop-white-paper.html +%%DOCSDIR%%/libgtop.devhelp +%%DOCSDIR%%/libgtop.devhelp2 +%%DOCSDIR%%/right.png +%%DOCSDIR%%/style.css +%%DOCSDIR%%/up.png +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/dz/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/mr/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/oc/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/te/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 %%DOCSDIR%% +@dirrm include/libgtop-2.0/glibtop +@dirrm include/libgtop-2.0 +@dirrmtry share/locale/zh_HK/LC_MESSAGES +@dirrmtry share/locale/zh_HK +@dirrmtry share/locale/xh/LC_MESSAGES +@dirrmtry share/locale/xh +@dirrmtry share/locale/te/LC_MESSAGES +@dirrmtry share/locale/te +@dirrmtry share/locale/rw/LC_MESSAGES +@dirrmtry share/locale/rw +@dirrmtry share/locale/oc/LC_MESSAGES +@dirrmtry share/locale/oc +@dirrmtry share/locale/mr/LC_MESSAGES +@dirrmtry share/locale/mr +@dirrmtry share/locale/mi/LC_MESSAGES +@dirrmtry share/locale/mi +@dirrmtry share/locale/mg/LC_MESSAGES +@dirrmtry share/locale/mg +@dirrmtry share/locale/ky/LC_MESSAGES +@dirrmtry share/locale/ky +@dirrmtry share/locale/ku/LC_MESSAGES +@dirrmtry share/locale/ku +@dirrmtry share/locale/dz/LC_MESSAGES +@dirrmtry share/locale/dz +@dirrmtry share/locale/bn_IN/LC_MESSAGES +@dirrmtry share/locale/bn_IN |