diff options
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/wmmon/README | 6 | ||||
-rw-r--r-- | desktop/wmmon/doinst.sh | 2 | ||||
-rw-r--r-- | desktop/wmmon/patches/manpage_window_not_clock.diff | 21 | ||||
-rw-r--r-- | desktop/wmmon/patches/rc_file_parser.diff | 12 | ||||
-rw-r--r-- | desktop/wmmon/patches/wmmon_1.0b2-p14.diff | 996 | ||||
-rw-r--r-- | desktop/wmmon/slack-desc | 19 | ||||
-rw-r--r-- | desktop/wmmon/wmmon.SlackBuild | 84 | ||||
-rw-r--r-- | desktop/wmmon/wmmon.info | 8 | ||||
-rw-r--r-- | desktop/wmmon/wmmonrc | 11 |
9 files changed, 1159 insertions, 0 deletions
diff --git a/desktop/wmmon/README b/desktop/wmmon/README new file mode 100644 index 0000000000..0da8e71022 --- /dev/null +++ b/desktop/wmmon/README @@ -0,0 +1,6 @@ +WMMon monitors the your CPU, Disk I/O, Memory and Swap usage, and shows +an average load for CPU and Disk I/O. It also displays your uptime. You +just click on it to toggle the display. + +This build includes security fixes and 2.6 kernel support added by Simon +Law (maintainer of the wmmon Debian package). diff --git a/desktop/wmmon/doinst.sh b/desktop/wmmon/doinst.sh new file mode 100644 index 0000000000..0d298a369b --- /dev/null +++ b/desktop/wmmon/doinst.sh @@ -0,0 +1,2 @@ +[ ! -r etc/wmmonrc ] && cat etc/wmmonrc.sample > etc/wmmonrc + diff --git a/desktop/wmmon/patches/manpage_window_not_clock.diff b/desktop/wmmon/patches/manpage_window_not_clock.diff new file mode 100644 index 0000000000..d32d08ee2d --- /dev/null +++ b/desktop/wmmon/patches/manpage_window_not_clock.diff @@ -0,0 +1,21 @@ +diff -Naur wmmon.app/wmmon/wmmon.1 wmmon.app.patched/wmmon/wmmon.1 +--- wmmon.app/wmmon/wmmon.1 2009-04-20 17:55:39.000000000 -0400 ++++ wmmon.app.patched/wmmon/wmmon.1 2009-04-20 17:56:52.000000000 -0400 +@@ -64,7 +64,7 @@ + + .TP + .BI \-geometry \ geometry +-This option specifies the preferred position of clock; see ++This option specifies the preferred position of the window; see + .IR X(7x) . + + .TP +@@ -159,7 +159,7 @@ + .B WMMon + detects a + .I $HOME/.wmmonrc +-file, it will launch the appropriate command when you click on the clock. ++file, it will launch the appropriate command when you click on the window. + + The system administrator can define default commands in + .IR /etc/wmmonrc . diff --git a/desktop/wmmon/patches/rc_file_parser.diff b/desktop/wmmon/patches/rc_file_parser.diff new file mode 100644 index 0000000000..376fcc72d1 --- /dev/null +++ b/desktop/wmmon/patches/rc_file_parser.diff @@ -0,0 +1,12 @@ +diff -Naur wmmon.app/wmgeneral/wmgeneral.c wmmon.app.patched/wmgeneral/wmgeneral.c +--- wmmon.app/wmgeneral/wmgeneral.c 2009-04-20 17:03:25.000000000 -0400 ++++ wmmon.app.patched/wmgeneral/wmgeneral.c 2009-04-20 17:02:58.000000000 -0400 +@@ -95,6 +95,8 @@ + fp = fopen(filename, "r"); + if (fp) { + while (getline(&line, &line_size, fp) >= 0) { ++ if(*line == '#') ++ continue; + key = 0; + while (key >= 0 && keys[key].label) { + if ((p = strstr(line, keys[key].label))) { diff --git a/desktop/wmmon/patches/wmmon_1.0b2-p14.diff b/desktop/wmmon/patches/wmmon_1.0b2-p14.diff new file mode 100644 index 0000000000..acb1979f5a --- /dev/null +++ b/desktop/wmmon/patches/wmmon_1.0b2-p14.diff @@ -0,0 +1,996 @@ +--- wmmon-1.0b2.orig/wmgeneral/wmgeneral.c ++++ wmmon-1.0b2/wmgeneral/wmgeneral.c +@@ -12,6 +12,8 @@ + --- + CHANGES: + --- ++ 10/10/2003 (Simon Law, sfllaw@debian.org) ++ * changed the parse_rcfile function to use getline instead of fgets. + 02/05/1998 (Martijn Pieterse, pieterse@xs4all.nl) + * changed the read_rc_file to parse_rcfile, as suggester by Marcelo E. Magallon + * debugged the parse_rc file. +@@ -21,6 +23,7 @@ + + */ + ++#define _GNU_SOURCE + #include <stdlib.h> + #include <stdio.h> + #include <string.h> +@@ -83,17 +86,18 @@ + void parse_rcfile(const char *filename, rckeys *keys) { + + char *p; +- char temp[128]; ++ char *line = NULL; ++ size_t line_size = 0; + char *tokens = " :\t\n"; + FILE *fp; + int i,key; + + fp = fopen(filename, "r"); + if (fp) { +- while (fgets(temp, 128, fp)) { ++ while (getline(&line, &line_size, fp) >= 0) { + key = 0; + while (key >= 0 && keys[key].label) { +- if ((p = strstr(temp, keys[key].label))) { ++ if ((p = strstr(line, keys[key].label))) { + p += strlen(keys[key].label); + p += strspn(p, tokens); + if ((i = strcspn(p, "#\n"))) p[i] = 0; +@@ -270,6 +274,7 @@ + unsigned int borderwidth = 1; + XClassHint classHint; + char *display_name = NULL; ++ char *geometry = NULL; + char *wname = argv[0]; + XTextProperty name; + +@@ -282,7 +287,9 @@ + + for (i=1; argv[i]; i++) { + if (!strcmp(argv[i], "-display")) +- display_name = argv[i+1]; ++ display_name = argv[++i]; ++ else if (!strcmp(argv[i], "-geometry")) ++ geometry = argv[++i]; + } + + if (!(display = XOpenDisplay(display_name))) { +@@ -307,7 +314,11 @@ + fore_pix = GetColor("black"); + + XWMGeometry(display, screen, Geometry, NULL, borderwidth, &mysizehints, +- &mysizehints.x, &mysizehints.y,&mysizehints.width,&mysizehints.height, &dummy); ++ &mysizehints.x, &mysizehints.y, ++ &mysizehints.width, &mysizehints.height, &dummy); ++ if (geometry) ++ XParseGeometry(geometry, &mysizehints.x, &mysizehints.y, ++ &mysizehints.width, &mysizehints.height); + + mysizehints.width = 64; + mysizehints.height = 64; +@@ -364,3 +375,6 @@ + XMapWindow(display, win); + + } ++ ++/* vim: sw=4 ts=4 columns=82 ++ */ +--- wmmon-1.0b2.orig/wmmon/wmmon.c ++++ wmmon-1.0b2/wmmon/wmmon.c +@@ -28,6 +28,12 @@ + Changes: + ---- + ++ 15/05/2004 (Simon Law, sfllaw@debian.org) ++ * Support disabling of mode-cycling ++ 23/10/2003 (Simon Law, sfllaw@debian.org) ++ * Eliminated exploitable static buffers ++ * Added -geometry support. ++ * /proc/meminfo support for Linux 2.6 + 18/05/1998 (Antoine Nulle, warp@xs4all.nl) + * MEM/SWAP/UPTIME only updated when visible + * Using global file descriptors to reduce file +@@ -65,6 +71,7 @@ + * First Working Version + */ + ++#define _GNU_SOURCE + #include <stdlib.h> + #include <stdio.h> + #include <time.h> +@@ -100,31 +107,28 @@ + /* Global Variables */ + /********************/ + +-char *ProgName; + int stat_current = 0; /* now global */ ++int mode_cycling = 1; /* Allow mode-cycling */ + FILE *fp_meminfo; + FILE *fp_stat; + FILE *fp_loadavg; + + /* functions */ +-void usage(void); ++void usage(char*); + void printversion(void); + void DrawStats(int *, int, int, int, int); + void DrawStats_io(int *, int, int, int, int); + + void wmmon_routine(int, char **); + +-void main(int argc, char *argv[]) { ++int main(int argc, char *argv[]) { + + int i; ++ char *name = argv[0]; + + + /* Parse Command Line */ + +- ProgName = argv[0]; +- if (strlen(ProgName) >= 5) +- ProgName += (strlen(ProgName) - 5); +- + for (i=1; i<argc; i++) { + char *arg = argv[i]; + +@@ -132,13 +136,17 @@ + switch (arg[1]) { + case 'd' : + if (strcmp(arg+1, "display")) { +- usage(); +- exit(1); ++ usage(name); ++ return 1; + } + break; +- case 'v' : +- printversion(); +- exit(0); ++ case 'g' : ++ if (strcmp(arg+1, "geometry")) { ++ usage(name); ++ return 1; ++ } ++ case 'l' : ++ mode_cycling = 0; + break; + case 'i' : + stat_current = 1; +@@ -146,15 +154,20 @@ + case 's' : + stat_current = 2; + break; ++ case 'v' : ++ printversion(); ++ return 0; + default: +- usage(); +- exit(0); +- break; ++ usage(name); ++ return 1; + } + } + } + + wmmon_routine(argc, argv); ++ ++ exit (0); ++ + } + + /*******************************************************************************\ +@@ -214,8 +227,7 @@ + long idle; + + FILE *fp; +- char temp[128]; +- char *p; ++ char *conffile = NULL; + + int xpm_X = 0, xpm_Y = 0; + +@@ -246,16 +258,21 @@ + if (RIGHT_ACTION) right_action = strdup(RIGHT_ACTION); + if (MIDDLE_ACTION) middle_action = strdup(MIDDLE_ACTION); + +- strcpy(temp, "/etc/wmmonrc"); +- parse_rcfile(temp, wmmon_keys); ++ /* Scan through the .rc files */ ++ if (asprintf(&conffile, "/etc/wmmonrc") >= 0) { ++ parse_rcfile(conffile, wmmon_keys); ++ free(conffile); ++ } + +- p = getenv("HOME"); +- strcpy(temp, p); +- strcat(temp, "/.wmmonrc"); +- parse_rcfile(temp, wmmon_keys); +- +- strcpy(temp, "/etc/wmmonrc.fixed"); +- parse_rcfile(temp, wmmon_keys); ++ if (asprintf(&conffile, "%s/.wmmonrc", getenv("HOME")) >= 0) { ++ parse_rcfile(conffile, wmmon_keys); ++ free(conffile); ++ } ++ ++ if (asprintf(&conffile, "/etc/wmmonrc.fixed") >= 0) { ++ parse_rcfile(conffile, wmmon_keys); ++ free(conffile); ++ } + + stat_online = checksysdevs(); + +@@ -269,26 +286,36 @@ + starttime = time(0); + nexttime = starttime + 10; + ++ /* Collect information on each panel */ + for (i=0; i<stat_online; i++) { + get_statistics(stat_device[i].name, &k, &istat, &idle); + stat_device[i].statlast = istat; + stat_device[i].idlelast = idle; + } +- if (stat_current == 0) DrawStats(stat_device[stat_current].his, 54, 40, 5, 58); +- if (stat_current == 1) { +- DrawStats_io(stat_device[stat_current].his, 54, 40, 5, 58); +- } +- if (stat_current == 2) { +- xpm_X = 64; +- setMaskXY(-64, 0); +- } else { +- xpm_X = 0; +- setMaskXY(0, 0); ++ ++ /* Set the mask for the current window */ ++ switch (stat_current) { ++ case 0: ++ case 1: ++ xpm_X = 0; ++ setMaskXY(0, 0); ++ break; ++ case 2: ++ xpm_X = 64; ++ setMaskXY(-64, 0); ++ default: ++ break; + } ++ ++ /* Draw statistics */ ++ if (stat_current == 0) ++ DrawStats(stat_device[stat_current].his, 54, 40, 5, 58); ++ if (stat_current == 1) ++ DrawStats_io(stat_device[stat_current].his, 54, 40, 5, 58); + DrawActive(stat_device[stat_current].name); + + while (1) { +- curtime = time(0); ++ curtime = time(NULL); + + waitpid(0, NULL, WNOHANG); + +@@ -377,6 +404,9 @@ + if (curtime >= nexttime) { + nexttime+=10; + ++ if (curtime > nexttime) /* dont let APM suspends make this crazy */ ++ nexttime = curtime; ++ + for (i=0; i<stat_online; i++) { + if (stat_device[i].his[54]) + stat_device[i].his[54] /= stat_device[i].hisaddcnt; +@@ -411,7 +441,7 @@ + break; + case ButtonRelease: + i = CheckMouseRegion(Event.xbutton.x, Event.xbutton.y); +- if (but_stat == i && but_stat >= 0) { ++ if (but_stat == i && but_stat >= 0 && mode_cycling) { + switch (but_stat) { + case 0: + switch (Event.xbutton.button) { +@@ -430,7 +460,6 @@ + } + case 1: + stat_current++; +- printf("current stat is :%d\n", stat_current); + if (stat_current == stat_online) + stat_current = 0; + +@@ -499,43 +528,80 @@ + + void update_stat_mem(stat_dev *st, stat_dev *st2) { + +- char temp[128]; ++ static char *line = NULL; ++ static size_t line_size = 0; ++ ++ unsigned long swapfree; + unsigned long free, shared, buffers, cached; + + freopen("/proc/meminfo", "r", fp_meminfo); +- while (fgets(temp, 128, fp_meminfo)) { +- if (strstr(temp, "Mem:")) { +- sscanf(temp, "Mem: %ld %ld %ld %ld %ld %ld", +- &st->rt_idle, &st->rt_stat, +- &free, &shared, &buffers, &cached); +- st->rt_idle >>= 10; +- st->rt_stat -= buffers+cached; +- st->rt_stat >>= 10; +-// break; +- } +- if (strstr(temp, "Swap:")) { +- sscanf(temp, "Swap: %ld %ld", &st2->rt_idle, &st2->rt_stat); +- st2->rt_idle >>= 10; +- st2->rt_stat >>= 10; +- break; ++ while ((getline(&line, &line_size, fp_meminfo)) > 0) { ++ /* The original format for the first two lines of /proc/meminfo was ++ * Mem: total used free shared buffers cached ++ * Swap: total used free ++ * ++ * As of at least 2.5.47 these two lines were removed, so that the ++ * required information has to come from the rest of the lines. ++ * On top of that, used is no longer recorded - you have to work ++ * this out yourself, from total - free. ++ * ++ * So, these changes below should work. They should also work with ++ * older kernels, too, since the new format has been available for ++ * ages. ++ */ ++ if (strstr(line, "MemTotal:")) { ++ sscanf(line, "MemTotal: %ld", &st->rt_idle); ++ } ++ else if (strstr(line, "MemFree:")) { ++ sscanf(line, "MemFree: %ld", &free); ++ } ++ else if (strstr(line, "MemShared:")) { ++ sscanf(line, "MemShared: %ld", &shared); ++ } ++ else if (strstr(line, "Buffers:")) { ++ sscanf(line, "Buffers: %ld", &buffers); ++ } ++ else if (strstr(line, "Cached:")) { ++ sscanf(line, "Cached: %ld", &cached); ++ } ++ else if (strstr(line, "SwapTotal:")) { ++ sscanf(line, "SwapTotal: %ld", &st2->rt_idle); ++ } ++ else if (strstr(line, "SwapFree:")) { ++ sscanf(line, "SwapFree: %ld", &swapfree); + } + } ++ ++ /* memory use - rt_stat is the amount used, it seems, and this isn't ++ * recorded in current version of /proc/meminfo (as of 2.5.47), so we ++ * calculate it from MemTotal - MemFree ++ */ ++ st->rt_stat = st->rt_idle - free; ++ st->rt_stat -= buffers+cached; ++ /* As with the amount of memory used, it's not recorded any more, so ++ * we have to calculate it ourselves. ++ */ ++ st2->rt_stat = st2->rt_idle - swapfree; + } + + void update_stat_swp(stat_dev *st) { + +- char temp[128]; ++ static char *line = NULL; ++ static size_t line_size = 0; ++ unsigned long swapfree; + + fseek(fp_meminfo, 0, SEEK_SET); +- while (fgets(temp, 128, fp_meminfo)) { +- if (strstr(temp, "Swap:")) { +- sscanf(temp, "Swap: %ld %ld", &st->rt_idle, &st->rt_stat); +- st->rt_idle >>= 10; +- st->rt_stat >>= 10; +- break; ++ while ((getline(&line, &line_size, fp_meminfo)) > 0) { ++ /* As with update_stat_mem(), the format change to /proc/meminfo has ++ * forced some changes here. */ ++ if (strstr(line, "SwapTotal:")) { ++ sscanf(line, "SwapTotal: %ld", &st->rt_idle); ++ } ++ else if (strstr(line, "SwapFree:")) { ++ sscanf(line, "SwapFree: %ld", &swapfree); + } + } +- ++ st->rt_stat = st->rt_idle - swapfree; + } + + /*******************************************************************************\ +@@ -545,11 +611,11 @@ + void get_statistics(char *devname, long *is, long *ds, long *idle) { + + int i; +- char temp[128]; ++ static char *line = NULL; ++ static size_t line_size = 0; + char *p; + char *tokens = " \t\n"; + float f; +- long maxdiskio=0; + + *is = 0; + *ds = 0; +@@ -557,9 +623,9 @@ + + if (!strncmp(devname, "cpu", 3)) { + fseek(fp_stat, 0, SEEK_SET); +- while (fgets(temp, 128, fp_stat)) { +- if (strstr(temp, "cpu")) { +- p = strtok(temp, tokens); ++ while ((getline(&line, &line_size, fp_stat)) > 0) { ++ if (strstr(line, "cpu ")) { ++ p = strtok(line, tokens); + /* 1..3, 4 == idle, we don't want idle! */ + for (i=0; i<3; i++) { + p = strtok(NULL, tokens); +@@ -577,17 +643,35 @@ + if (!strncmp(devname, "i/o", 3)) { + + fseek(fp_stat, 0, SEEK_SET); +- while (fgets(temp, 128, fp_stat)) { +- if (strstr(temp, "disk_rio") || strstr(temp, "disk_wio")) { +- p = strtok(temp, tokens); ++ while ((getline(&line, &line_size, fp_stat)) > 0) { ++ if (strstr(line, "disk_rio") || strstr(line, "disk_wio")) { ++ p = strtok(line, tokens); + /* 1..4 */ + for (i=0; i<4; i++) { + p = strtok(NULL, tokens); + *ds += atol(p); + } + } ++ else if (strstr(line, "disk_io")) { ++ int val; ++ unsigned int a, b, c, d, e, h, g; ++ ++ p = strtok(line, tokens); ++ ++ while ((p = strtok(NULL, tokens))) { ++ val = sscanf (p, ++ "(%d,%d):(%d,%d,%d,%d,%d)", ++ &a, &b, &c, &d, &e, &h, ++ &g); ++ ++ if (val != 7) ++ continue; ++ ++ *ds += d; ++ *ds += h; ++ } ++ } + } +- if (*ds > maxdiskio) maxdiskio = *ds; + } + } + +@@ -715,16 +799,17 @@ + |* usage *| + \*******************************************************************************/ + +-void usage(void) { +- +- fprintf(stderr, "\nwmmon - programming: tijno, (de)bugging & design warp, webhosting: bobby\n\n"); +- fprintf(stderr, "usage:\n"); +- fprintf(stderr, "\t-display <display name>\n"); +- fprintf(stderr, "\t-h\tthis screen\n"); +- fprintf(stderr, "\t-v\tprint the version number\n"); +- fprintf(stderr, "\t-i\tstartup in DiskIO mode\n"); +- fprintf(stderr, "\t-s\tstartup in SysInfo mode\n"); +- fprintf(stderr, "\n"); ++void usage(char *name) { ++ printf("Usage: %s [OPTION]...\n", name); ++ printf("WindowMaker dockapp that displays system information.\n"); ++ printf("\n"); ++ printf(" -display DISPLAY contact the DISPLAY X server\n"); ++ printf(" -geometry GEOMETRY position the clock at GEOMETRY\n"); ++ printf(" -l locked view - cannot cycle modes\n"); ++ printf(" -i start in Disk I/O mode\n"); ++ printf(" -s start in System Info mode\n"); ++ printf(" -h display this help and exit\n"); ++ printf(" -v output version information and exit\n"); + } + + /*******************************************************************************\ +@@ -733,7 +818,7 @@ + + void printversion(void) { + +- if (!strcmp(ProgName, "wmmon")) { +- fprintf(stderr, "%s\n", WMMON_VERSION); +- } ++ printf("WMMon version %s\n", WMMON_VERSION); + } ++/* vim: sw=4 ts=4 columns=82 ++ */ +--- wmmon-1.0b2.orig/wmmon/wmmon.1 ++++ wmmon-1.0b2/wmmon/wmmon.1 +@@ -0,0 +1,192 @@ ++'\" t ++.\" Man page for wmmon ++.\" Copyright (c) 2003 Software in the Public Interest, 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 of the License, 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. ++.\" ++.TH wmmon 1 "May 1998" "WMMON 1.0b2" ++ ++.SH NAME ++wmmon \- Window Maker dockapp for monitoring system information ++ ++.SH SYNOPSIS ++ ++.B wmmon ++[ ++.I OPTION ++] ++ ++.SH DESCRIPTION ++ ++.B WMMon ++monitors the realtime CPU load as well as the average system load, ++and gives you some nice additional features too. It is intended for ++docking in Window Maker. ++ ++It currently provides: ++ ++.IP \(bu 4 ++a realtime CPU stress meter; ++.IP \(bu ++an auto-scaled average system load meter, like ++.B xload ++and ++.BR wmavgload ; ++.IP \(bu ++a realtime disk I/O stress meter; ++.IP \(bu ++auto-scaled disk I/O load meter; ++.IP \(bu ++realtime memory and swap usage meters; ++.IP \(bu ++a display for system uptime; ++.IP \(bu ++three user-defined commands to launch. ++ ++.SH OPTIONS ++ ++.TP ++.BI \-display \ display ++This option specifies the X server to contact; see ++.IR X(7x) . ++ ++.TP ++.BI \-geometry \ geometry ++This option specifies the preferred position of clock; see ++.IR X(7x) . ++ ++.TP ++.BR \-l ++Lock the mode, so that it cannot be cycled by clicking on the upper-left ++widget. You can use this to open multiple copies of ++.BR WMMon , ++each set to a different mode. ++ ++.TP ++.BR \-i ++Start in disk I/O mode, which displays instantaneous disk usage and ++average disk load. ++ ++.TP ++.BR \-s ++Start in system information mode, which displays memory usage, swap usage, ++and uptime. ++ ++.TP ++.B \-h ++Show help information. ++ ++.TP ++.B \-v ++Print the version number. ++ ++.SH USAGE ++The ++.B WMMon ++display can be cycled between CPU, disk I/O, and system ++information displays by clicking on the upper-left widget. This ++displays CPU information by default. ++ ++WMMon can also be used to launch programs. You may click either left, ++middle, or right mouse buttons in the average-load section of the ++window. The pre-configured program will be launched according to the ++mouse button clicked. (see ++.B CONFIGURATION FILE ++below.) ++ ++In order to move ++.BR WMMon , ++drag on the outer edges. These are not sensitive to mouse clicks. ++ ++.SH "DOCKING IN WINDOW MANAGERS" ++ ++.TP ++Window Maker ++ ++Window Maker users should drag and drop the ++.B WMMon ++window on the Dock. Then, right-click on the border of the window and ++select \*(lqSettings...\*(rq. Check \*(lqStart when Window Maker ++is started\*(rq. ++ ++.TP ++AfterStep ++ ++AfterStep users should put the following in their ++.I $HOME/.steprc ++ ++.RS 16 ++Wharf wmmon \- MaxSwallow "wmmon" wmmon & ++.RE ++ ++.TP ++Other window managers ++ ++.B WMMon ++runs nicely as a 64x64 shaped icon on your desktop. ++ ++.SH "CONFIGURATION FILE" ++ ++.B WMMon ++can launch three user-defined commands, triggered by left, middle and ++right mouse button clicks. You can define the commands to launch in ++.I $HOME/.wmmonrc ++ ++.RS ++.PD 0 ++left: xterm ++.PP ++middle: xload ++.PP ++right: xcalc ++.PP ++.PD ++.RE ++ ++If ++.B WMMon ++detects a ++.I $HOME/.wmmonrc ++file, it will launch the appropriate command when you click on the clock. ++ ++The system administrator can define default commands in ++.IR /etc/wmmonrc . ++The administrator may also choose to \*(lqfix\*(rq particular commands, ++making it impossible for users to change. These commands can be defined in ++.IR /etc/wmmonrc.fixed , ++although this isn't a nice thing to do. ++ ++.SH FILES ++ ++.I /etc/wmmonrc ++.br ++.I $HOME/.wmmonrc ++.br ++.I /etc/wmmonrc.fixed ++ ++.SH AUTHORS ++ ++.B WMMon ++was written by Martijn Pieterse and Antoine Nulle. ++ ++This manual page was written by Simon Law <sfllaw@debian.org> for the ++.B Debian ++system (but may be used by others). It is based on the documentation provided ++by the original program. ++ ++This manual 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. +--- wmmon-1.0b2.orig/debian/examples ++++ wmmon-1.0b2/debian/examples +@@ -0,0 +1 @@ ++debian/wmmonrc +--- wmmon-1.0b2.orig/debian/dirs ++++ wmmon-1.0b2/debian/dirs +@@ -0,0 +1 @@ ++usr/bin +--- wmmon-1.0b2.orig/debian/rules ++++ wmmon-1.0b2/debian/rules +@@ -0,0 +1,96 @@ ++#!/usr/bin/make -f ++# ++# debian/rules file for wmmon. ++# Copyright (C) 2003 Software in the Public Interest. ++# ++# 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 of the License, 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., 675 Mass Ave, Cambridge, MA 02139, USA. ++# ++# Based on the sample debian/rules that uses debhelper. ++# GNU copyright 1997 to 1999 by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -g ++endif ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++ INSTALL_PROGRAM += -s ++endif ++ ++build: build-stamp ++ ++build-stamp: ++ dh_testdir ++ ++ # Add here commands to compile the package. ++ cd wmmon; $(MAKE) ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ ++ # Add here commands to clean up after the build process. ++ -cd wmmon; $(MAKE) clean ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Add here commands to install the package into debian/wmmon. ++ install -m 755 wmmon/wmmon $(CURDIR)/debian/wmmon/usr/bin ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdebconf ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++# dh_installlogrotate ++# dh_installemacsen ++# dh_installpam ++# dh_installmime ++# dh_installinit ++# dh_installcron ++ dh_installman ++# dh_installinfo ++ dh_installchangelogs CHANGES ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++# dh_makeshlibs ++ dh_installdeb ++# dh_perl ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- wmmon-1.0b2.orig/debian/menu ++++ wmmon-1.0b2/debian/menu +@@ -0,0 +1,6 @@ ++?package(wmmon):\ ++ needs="X11"\ ++ section="Apps/System"\ ++ title="WMmon"\ ++ command="/usr/bin/wmmon"\ ++ hints="Monitoring,Dockapp" +--- wmmon-1.0b2.orig/debian/changelog ++++ wmmon-1.0b2/debian/changelog +@@ -0,0 +1,100 @@ ++wmmon (1.0b2-14) unstable; urgency=medium ++ ++ * Fixed build dependencies so we no longer depend on libxpm4-dev. ++ * Quoted all strings in /usr/lib/menu/wmtime. ++ * Add the ability to lock the mode, preventing cycling. Thanks go to ++ Chris Bechberger <bechberger@yahoo.com>. ++ ++ -- Simon Law <sfllaw@debian.org> Tue, 10 Aug 2004 21:22:17 -0400 ++ ++wmmon (1.0b2-13) unstable; urgency=low ++ ++ * Removed a memory leak that I introduced. (Closes: Bug#223338) ++ ++ -- Simon Law <sfllaw@debian.org> Tue, 09 Dec 2003 12:42:41 -0500 ++ ++wmmon (1.0b2-12) unstable; urgency=low ++ ++ * Changed section to x11. ++ ++ -- Simon Law <sfllaw@debian.org> Fri, 05 Dec 2003 11:17:21 -0500 ++ ++wmmon (1.0b2-11) unstable; urgency=low ++ ++ * New maintainer. ++ * Added a manual page. ++ * Added the -geometry option. ++ * Ensure that I/O mode works the same no matter how it is started. ++ (Closes: Bug#94277) ++ * Support new /proc/meminfo format in 2.6 kernels. (Closes: Bug#169160) ++ * Fixed some buffer overflow problems. (Closes: Bug#174949) ++ ++ -- Simon Law <sfllaw@debian.org> Wed, 26 Nov 2003 23:47:47 -0500 ++ ++wmmon (1.0b2-10) unstable; urgency=low ++ ++ * Fixed build depends (closes: #170133) ++ * Applied patch from Simon Fowler <simon@himi.org> to fix /proc/meminfo ++ parsing for linux 2.5. ++ ++ -- Fredrik Hallenberg <hallon@debian.org> Fri, 22 Nov 2002 14:17:26 +0100 ++ ++wmmon (1.0b2-9) unstable; urgency=low ++ ++ * Remove debug message (closes: #139408) ++ * Applied patch from Frederik Schueler <fs@lowpingbastards.de> ++ to fix /proc/stat parsing on linux 2.4 (closes: #144122) ++ ++ -- Fredrik Hallenberg <hallon@debian.org> Tue, 23 Apr 2002 21:39:09 +0200 ++ ++wmmon (1.0b2-8) unstable; urgency=low ++ ++ * Fixed menu path (closes: #129353) ++ ++ -- Fredrik Hallenberg <hallon@debian.org> Thu, 17 Jan 2002 21:35:03 +0100 ++ ++wmmon (1.0b2-7) unstable; urgency=low ++ ++ * Updated description (closes: #125496) ++ * Don't install INSTALL (closes: #116940) ++ * Changed section to utils ++ ++ -- Fredrik Hallenberg <hallon@debian.org> Wed, 2 Jan 2002 23:19:06 +0100 ++ ++wmmon (1.0b2-6) unstable; urgency=low ++ ++ * Updated menu with patch from Arthur Korn <arthur@korn.ch> ++ (closes: #82315) ++ ++ -- Fredrik Hallenberg <hallon@debian.org> Mon, 15 Jan 2001 07:56:10 +0100 ++ ++wmmon (1.0b2-5) unstable; urgency=low ++ ++ * Build without xpm4.7 (closes: #77466) ++ ++ -- Fredrik Hallenberg <hallon@debian.org> Sun, 19 Nov 2000 22:17:03 +0100 ++ ++wmmon (1.0b2-4) unstable; urgency=low ++ ++ * Added menu entry (closes: #76969) ++ ++ -- Fredrik Hallenberg <hallon@debian.org> Sat, 18 Nov 2000 21:14:56 +0100 ++ ++wmmon (1.0b2-3) unstable; urgency=low ++ ++ * Rebuild to update libxmp dependency. (closes: #67990) ++ ++ -- Fredrik Hallenberg <hallon@debian.org> Mon, 31 Jul 2000 07:25:09 +0200 ++ ++wmmon (1.0b2-2) unstable; urgency=low ++ ++ * Patch from Salvador Pinto Abreu <spa@sc.uevora.pt>: ++ Fixed behavior when APM causes the system to sleep/suspend. ++ ++ -- Fredrik Hallenberg <hallon@debian.org> Sat, 17 Oct 1998 13:35:55 +0200 ++ ++wmmon (1.0b2-1) unstable; urgency=low ++ ++ * Initial Release. ++ ++ -- Fredrik Hallenberg <hallon@debian.org> Wed, 15 Jul 1998 18:18:37 +0200 +--- wmmon-1.0b2.orig/debian/control ++++ wmmon-1.0b2/debian/control +@@ -0,0 +1,24 @@ ++Source: wmmon ++Section: x11 ++Priority: optional ++Maintainer: Simon Law <sfllaw@debian.org> ++Standards-Version: 3.6.1 ++Build-Depends: debhelper (>> 4.0.0), libx11-dev, libxpm-dev, libxext-dev ++ ++Package: wmmon ++Architecture: any ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Description: Window Maker dockapp for monitoring system information ++ WMMon monitors the realtime CPU load as well as the average system load, ++ and gives you some nice additional features too. It is intended for ++ docking in Window Maker. ++ . ++ It currently provides: ++ . ++ * a realtime CPU stress meter; ++ * an auto-scaled average system load meter, like xload and wmavgload; ++ * a realtime disk I/O stress meter; ++ * auto-scaled disk I/O load meter; ++ * realtime memory and swap usage meters; ++ * a display for system uptime; ++ * three user-defined commands to launch. +--- wmmon-1.0b2.orig/debian/copyright ++++ wmmon-1.0b2/debian/copyright +@@ -0,0 +1,25 @@ ++This package was debianized by Fredrik Hallenberg hallon@debian.org on ++Wed, 15 Jul 1998 18:18:37 +0200. ++ ++It was downloaded from http://www.xs4all.nl/~warp/files/wmmon-1.0b2.tar.gz ++ ++Upstream Copyright: ++ ++ Copyright (c) 1997, 1998 by Martijn Pieterse and Antoine Nulle ++ ++ 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++On Debian GNU/Linux systems, the complete text of the GNU General ++Public License can be found in `/usr/share/common-licenses/GPL'. +--- wmmon-1.0b2.orig/debian/manpages ++++ wmmon-1.0b2/debian/manpages +@@ -0,0 +1 @@ ++wmmon/wmmon.1 +--- wmmon-1.0b2.orig/debian/compat ++++ wmmon-1.0b2/debian/compat +@@ -0,0 +1 @@ ++4 +--- wmmon-1.0b2.orig/debian/wmmonrc ++++ wmmon-1.0b2/debian/wmmonrc +@@ -0,0 +1,3 @@ ++left: xterm ++middle: xload ++right: xcalc diff --git a/desktop/wmmon/slack-desc b/desktop/wmmon/slack-desc new file mode 100644 index 0000000000..103ba08449 --- /dev/null +++ b/desktop/wmmon/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +wmmon: wmmon (windowmaker dockapp to monitor CPU, disk, and memory usage) +wmmon: +wmmon: WMMon monitors the your CPU, Disk I/O, Memory and Swap usage, and +wmmon: shows an average load for CPU and Disk I/O. It also displays your +wmmon: uptime. You just click on it to toggle the display. +wmmon: +wmmon: +wmmon: +wmmon: +wmmon: +wmmon: diff --git a/desktop/wmmon/wmmon.SlackBuild b/desktop/wmmon/wmmon.SlackBuild new file mode 100644 index 0000000000..f5027c54c2 --- /dev/null +++ b/desktop/wmmon/wmmon.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Slackware build script for wmmon + +# Written by B. Watson (yalhcru@gmail.com) + +PRGNAM=wmmon +VERSION=1.0b2_p14 +ARCH=${ARCH:-i486} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +SRCVER=$(echo $VERSION | cut -d_ -f1) +PATCHVER=$(echo $VERSION | cut -d_ -f2) + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIR=-L/usr/lib +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIR=-L/usr/lib +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIR=-L/usr/lib64 +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM.app +tar xvf $CWD/$PRGNAM-$SRCVER.tar.gz +cd $PRGNAM.app +chown -R root:root . +chmod -R a-s,u+w,go+r-w . + +# wmmon was pretty much abandoned by the original developer 10+ years ago. +# The Debian maintainer has added some security-related fixes, a man page, +# better support for 2.6 kernels, and some extra features. Most people +# would prefer to run the patched version... +patch -p1 < $CWD/patches/${PRGNAM}_$SRCVER-$PATCHVER.diff + +# This patch is necessary because the $#!%^#$^ wmmonrc file parser doesn't +# fully support comments: they are allowed, but a commented-out (but +# otherwise valid) config directive is still processed as though it +# weren't commented out! Ack! +patch -p1 < $CWD/patches/rc_file_parser.diff + +# The man page refers to "the clock" (probably copied from wmclock docs), +# change to "the window". +patch -p1 < $CWD/patches/manpage_window_not_clock.diff + +cd $PRGNAM + sed -i -e "s/-O2/$SLKCFLAGS/" Makefile + make LIBDIR="$LIBDIR" + strip $PRGNAM + mkdir -p $PKG/usr/bin + install -m0755 -o root -g root $PRGNAM $PKG/usr/bin + mkdir -p $PKG/usr/man/man1 + gzip -9c $PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz +cd - + +mkdir -p $PKG/etc +cat $CWD/wmmonrc > $PKG/etc/wmmonrc.sample + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + BUGS CHANGES COPYING HINTS INSTALL README TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +cp -a debian/changelog $PKG/usr/doc/$PRGNAM-$VERSION/changelog.debian +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz diff --git a/desktop/wmmon/wmmon.info b/desktop/wmmon/wmmon.info new file mode 100644 index 0000000000..6d236aa558 --- /dev/null +++ b/desktop/wmmon/wmmon.info @@ -0,0 +1,8 @@ +PRGNAM="wmmon" +VERSION="1.0b2_14" +HOMEPAGE="http://web.cs.mun.ca/~gstarkes/wmaker/dockapps/sys.html#wmmon" +DOWNLOAD="http://web.cs.mun.ca/~gstarkes/wmaker/dockapps/files/wmmon-1.0b2.tar.gz" +MD5SUM="1b8c780b8c24a6958c69330fef4171df" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" +APPROVED="rworkman" diff --git a/desktop/wmmon/wmmonrc b/desktop/wmmon/wmmonrc new file mode 100644 index 0000000000..1cfef21879 --- /dev/null +++ b/desktop/wmmon/wmmonrc @@ -0,0 +1,11 @@ +# Sample rc file for wmmon + +# Syntax is simple: each line may be a comment introduced with # (like this +# line), blank, or "[button_name]: [command]", where the [button_name] is +# one of "left", "middle", "right", and [command] is the command to be +# executed when that button is clicked, on the dockapp. The commands +# are searched for in the PATH, if they're not given as absolute paths. + +# left: xterm +# middle: xload +right: xterm -e top |