ports/126391: [PATCH] sysutils/wmbsdbatt: Print current CPU frequency

Ulrich Spoerlein uspoerlein at gmail.com
Sat Aug 9 11:30:01 UTC 2008


>Number:         126391
>Category:       ports
>Synopsis:       [PATCH] sysutils/wmbsdbatt: Print current CPU frequency
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Aug 09 11:30:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Ulrich Spoerlein
>Release:        FreeBSD 7.0-STABLE i386
>Organization:
>Environment:
>Description:
I sent these patches to the author a couple of years ago, but they never made
it into a new release. Please apply those patches to the FreeBSD port, as they
fix some minor nits and will print the current CPU frequency next to the 
temperature. Something at least I find very useful to have.

- Print current CPU frequency next to temperature
- Add -b parameter to start with backlight turned on (like other WM dockapps)
- Don't call draw_all twice
- Fix missing dots in pixmap

Added file(s):
- files/patch-wmbsdbatt.c
- files/patch-zz-frequency

Port maintainer (xride at FreeBSD.org) is cc'd.

Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:
>Fix:

--- wmbsdbatt-0.1_3.patch begins here ---
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/sysutils/wmbsdbatt/Makefile,v
retrieving revision 1.9
diff -u -p -u -r1.9 Makefile
--- Makefile	27 Jun 2008 17:43:55 -0000	1.9
+++ Makefile	9 Aug 2008 11:24:09 -0000
@@ -6,7 +6,7 @@
 
 PORTNAME=	wmbsdbatt
 PORTVERSION=	0.1
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	sysutils windowmaker
 MASTER_SITES=	http://homepage.univie.ac.at/l.ertl/wmbsdbatt/files/
 
Index: files/patch-wmbsdbatt.c
===================================================================
RCS file: files/patch-wmbsdbatt.c
diff -N files/patch-wmbsdbatt.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-wmbsdbatt.c	9 Aug 2008 11:24:09 -0000
@@ -0,0 +1,58 @@
+--- wmbsdbatt.c.orig	Sat Jul  2 15:23:41 2005
++++ wmbsdbatt.c	Sat Jul  2 15:35:19 2005
+@@ -33,6 +33,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <unistd.h>
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
+@@ -112,14 +113,26 @@
+ void	draw_all(void);
+ int	init_stats(void);
+ int	acpi_exists(void);
++void	usage(void);
+ #if 0
+ void	draw_rate(void);
+ #endif
+ 
++void
++usage(void)
++{
++	fprintf(stderr, "%s\n%s\n%s\n",
++	    "usage: wmbsdbatt [-h | -b]",
++	    "   -h	help",
++	    "   -b	start with backlight on");
++
++	exit(0);
++}
++
+ int
+ main(int argc, char **argv)
+ {
+-	int charging, ncolor, show;
++	int charging, ncolor, show, ch;
+ 	long timeout;
+ 	long animation_timeout, update_timeout;
+ 	struct sigaction sa;
+@@ -132,6 +145,19 @@
+ 
+ 	sa.sa_handler = SIG_IGN;
+ 	sa.sa_flags = SA_NOCLDWAIT;
++	while ((ch = getopt(argc, argv, "bh")) != -1) {
++		switch (ch) {
++		case 'b':
++			backlight = LIGHTON;
++			break;
++		case 'h':
++			usage();
++			break;
++		default:
++			usage();
++			break;
++		}
++	}
+ 
+ 	sigemptyset(&sa.sa_mask);
+ 	sigaction(SIGCHLD, &sa, NULL);
Index: files/patch-zz-frequency
===================================================================
RCS file: files/patch-zz-frequency
diff -N files/patch-zz-frequency
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-zz-frequency	9 Aug 2008 11:24:09 -0000
@@ -0,0 +1,179 @@
+--- backlight_off.xpm	Tue Dec 23 19:27:34 2003
++++ backlight_off.xpm	Wed Jan 11 17:40:26 2006
+@@ -56,15 +56,15 @@
+ "+@#%&&&%%%&&&&&&&%%%%%%%%&&&%%%%%%%%&&%&&&&%%&&%%&%%%&%&+$",
+ "+@#%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%&+$",
+ "+@#%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+$",
+-"+@#%&&%%%&&&%%%&&&%%%&&&%%%&&&%%%&&&&%&%&&&%&%&&&%%%&&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&&%%%&&&%%%&&&%%%&&&%%%&&&%%%&&&&%&%&&&%&%&&&%%%&&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&%&&&%&%&&&%&%&&&%&%&&&%&%&&&%&&%&%&%&%&%&%&%&&&%&&&+$",
+-"+@#%&&%%%&&&%%%&&&%%%&&&%%%&&&%%%&&&&%&%&&&%&%&&&%%%&&&&+$",
++"+@#%&%%%&&&%%%&&&%%%&&&%%%&&&&&&&%%%&&&%%%&&&%%%&&&%%%&&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%&%%%&&&%%%&&&%%%&&&%%%&&&&&&&%%%&&&%%%&&&%%%&&&%%%&&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%%&&&%&%&&&%&%&&&%&%&&&%&&&&&%&&&%&%&&&%&%&&&%&%&&&%&+$",
++"+@#%&%%%&&&%%%&&&%%%&&&%%%&&&&&&&%%%&&&%%%&&&%%%&&&%%%&&+$",
+ "+@#%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++$",
+ ".+++++++++++++++++++++++++++++++++++++++++++++++++++++++$.",
+ "..$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.."};
+--- backlight_on.xpm	Tue Dec 16 00:59:51 2003
++++ backlight_on.xpm	Wed Jan 11 17:49:48 2006
+@@ -39,7 +39,7 @@
+ ".++++...............................++$$$+$$$+$$$+.+++.++@",
+ ".++++.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$++$+.+$+@",
+ ".++++.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$+++.+$++@",
+-".++++$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$++.+$+++@",
++".++++.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$$+$$$+$$$++.+$+++@",
+ ".++++...............................++$$$+$$$+$$$+.+$+.++@",
+ ".++++++++++++++++++++++++++++++++++++++++++++++++++$+++$+@",
+ ".++++...............................++$$$+$$$+$$$+.+++.++@",
+@@ -56,15 +56,15 @@
+ ".++++++$$$+++++++$$$$$$$$+++$$$$$$$$++$++++$$++$$+$$$+$++@",
+ ".+++++++++++++++++++++++++++++++++++++$$$$$$$$$$$$$$$$$++@",
+ ".++++++++++++++++++++++++++++++++++++++++++++++++++++++++@",
+-".+++++$$$+++$$$+++$$$+++$$$+++$$$++++$+$+++$+$+++$$$+++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".+++++$$$+++$$$+++$$$+++$$$+++$$$++++$+$+++$+$+++$$$+++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".++++$+++$+$+++$+$+++$+$+++$+$+++$++$+$+$+$+$+$+$+++$++++@",
+-".+++++$$$+++$$$+++$$$+++$$$+++$$$++++$+$+++$+$+++$$$+++++@",
++".++++$$$+++$$$+++$$$+++$$$+++++++$$$+++$$$+++$$$+++$$$+++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".++++$$$+++$$$+++$$$+++$$$+++++++$$$+++$$$+++$$$+++$$$+++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".+++$+++$+$+++$+$+++$+$+++$+++++$+++$+$+++$+$+++$+$+++$++@",
++".++++$$$+++$$$+++$$$+++$$$+++++++$$$+++$$$+++$$$+++$$$+++@",
+ ".++++++++++++++++++++++++++++++++++++++++++++++++++++++++@",
+ " .++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+ "  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  "};
+--- parts.xpm	Tue Dec 16 00:59:51 2003
++++ parts.xpm	Wed Jan 11 17:45:26 2006
+@@ -61,13 +61,13 @@
+ "+...+ at ...++...@@...+ at ...+@...++...+ at ...++...+@...++###+$###++###$$###+$###+$###++###+$###++###+$###++###",
+ ".+++..@@@..+++..+++..@@@..+++..+++..@@@..+++..+++.#+++##$$$##+++##+++##$$$##+++##+++##$$$##+++##+++##+++",
+ ".@@@..@@@..+++..+++..@@@.&+++..+++..+++..+++..+++.#$$$##$$$##+++##+++##$$$##+++##+++##+++##+++##+++##+++",
+-"@. at .@+.+.++. at .++.@. at +...++...@+...@@...++...++...+$#$#$+#+#++#$#++#$#$+###++###$+###$$###++###++###++###",
+-"@. at .@+.+.++. at .++.@. at +...++...@+...@@...++...++...+$#$#$+#+#++#$#++#$#$+###++###$+###$$###++###++###++###",
+-"@. at .@+.+.++. at .++.@. at +...++...@+...@@...++...++...+$#$#$+#+#++#$#++#$#$+###++###$+###$$###++###++###++###",
+-".+.+.. at .@..+.+.. at .@..+++&&+++..+++..@@@..+++..+++.#+#+##$#$##+#+##$#$##+++&&+++##+++##$$$&#+++##+++&&$$$",
+-"+.+.++.+.+ at .@. at +.@.@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$#$#$+#$#$$###+$###++###+$###++###+$###++###",
+-"+.+.++.+.+ at .@. at +.@.@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$#$#$+#$#$$###+$###++###+$###++###+$###++###",
+-"+.+.++.+.+ at .@. at +.@.@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$#$#$+#$#$$###+$###++###+$###++###+$###++###",
++"@. at .@+.+.++...++... at +...++...@+...@@...++...++...+$#$#$+#+#++###++###$+###++###$+###$$###++###++###++###",
++"@. at .@+.+.++...++... at +...++...@+...@@...++...++...+$#$#$+#+#++###++###$+###++###$+###$$###++###++###++###",
++"@. at .@+.+.++...++... at +...++...@+...@@...++...++...+$#$#$+#+#++###++###$+###++###$+###$$###++###++###++###",
++".+.+.. at .@..+++.. at .@..+++&&+++..+++..@@@..+++..+++.#+#+##$#$##+++##$#$##+++&&+++##+++##$$$&#+++##+++&&$$$",
++"+.+.++.+.+ at ...@+...@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$###$+###$$###+$###++###+$###++###+$###++###",
++"+.+.++.+.+ at ...@+...@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$###$+###$$###+$###++###+$###++###+$###++###",
++"+.+.++.+.+ at ...@+...@@...+ at ...++...+@...++...+ at ...++#+#++#+#+$###$+###$$###+$###++###+$###++###+$###++###",
+ ".@@@..+++..@@@..+++..@@@&&+++..+++..@@@&.+++..+++##$$$##+++##$$$##+++##$$$&&+++##+++##$$$&#+++##+++##+++",
+ "+++++++++++++++++++++++++++++++....+++....+++++++++++++++++..##+++####+++++++++++++++++#################",
+ "++++++++++++++++++++++++++++++++.+++..+..++.+++++..++.+++.+..+++##+##++#+++++##++#+++#+#################",
+--- wmbsdbatt.c	Tue Dec 23 19:27:34 2003
++++ wmbsdbatt.c	Wed Jan 11 18:00:47 2006
+@@ -67,6 +67,7 @@
+ 	int battery_time;
+ 	int temperature;
+ 	int low;
++	int freq;
+ #if 0
+ 	int capacity;
+ 	int rate;
+@@ -79,6 +80,7 @@
+ static char *sysctl_battery_time = "hw.acpi.battery.time";
+ static char *sysctl_temperature = "hw.acpi.thermal.tz0.temperature";
+ static char *sysctl_acline = "hw.acpi.acline";
++static char *sysctl_frequency = "dev.cpu.0.freq";
+ 
+ typedef enum { LIGHTOFF, LIGHTON } light;
+ 
+@@ -106,6 +108,7 @@
+ void	draw_batt(void);
+ void	draw_low(void);
+ void	draw_temp(void);
++void	draw_freq(void);
+ void	draw_statusdigit(void);
+ void	draw_pcgraph(void);
+ void	blink_batt(void);
+@@ -238,7 +241,6 @@
+ 			}            		
+ 			if (show) {
+ 				/* show */
+-				draw_all();
+ 				if (charging) {
+ 					blink_pos--;
+ 				}
+@@ -284,6 +286,10 @@
+ 	addr -= 273;
+ 	acpi_info.temperature = addr;
+ 
++	if (sysctlbyname(sysctl_frequency, &addr, &len, NULL, 0) == -1)
++		err(1, "sysctlbyname(\"%s\")", sysctl_frequency);
++	acpi_info.freq = addr;
++
+ 	if (sysctlbyname(sysctl_acline, &addr, &len, NULL, 0) == -1)
+ 		err(1, "sysctlbyname(\"%s\")", sysctl_acline);
+ 	acpi_info.acline = addr;
+@@ -372,6 +378,7 @@
+ 		draw_temp();
+ #endif
+ 	draw_temp();
++	draw_freq();
+ 	
+ 	if (acpi_info.battery_status == CHARGING)
+ 		blink_batt();
+@@ -471,13 +478,35 @@
+ 		temp = 0;
+ 
+ 	dockapp_copyarea(parts, pixmap, (temp / 10) * 5 + light_offset, 40, 5,
+-	    9, 23, 46);
++	    9, 32, 46);
+ 	dockapp_copyarea(parts, pixmap, (temp % 10) * 5 + light_offset, 40, 5,
+-	    9, 29, 46);
++	    9, 38, 46);
+ 	
+ 	/* '°C'. */
+-	dockapp_copyarea(parts, pixmap, 10 + light_offset, 49, 5, 9, 36, 46);
+-	dockapp_copyarea(parts, pixmap, 15 + light_offset, 49, 5, 9, 42, 46);
++	dockapp_copyarea(parts, pixmap, 10 + light_offset, 49, 5, 9, 44, 46);
++	dockapp_copyarea(parts, pixmap, 15 + light_offset, 49, 5, 9, 50, 46);
++
++}
++
++void
++draw_freq(void)
++{
++	int light_offset=0;
++	int freq = acpi_info.freq;
++
++	if (backlight == LIGHTON)
++		light_offset = 50;
++	
++	if (freq < 0)
++		freq = 0;
++	else if (freq > 9999)
++		freq = 9999;
++	if (freq >= 1000)
++		dockapp_copyarea(parts, pixmap, ((freq / 1000) % 10) * 5 + light_offset, 40, 5, 9,  4, 46);
++	if (freq >= 100)
++		dockapp_copyarea(parts, pixmap, ((freq / 100) % 10) * 5 + light_offset, 40, 5, 9, 10, 46);
++	dockapp_copyarea(parts, pixmap, ((freq / 10) % 10) * 5 + light_offset, 40, 5, 9, 16, 46);
++	dockapp_copyarea(parts, pixmap, (freq % 10) * 5 + light_offset, 40, 5, 9, 22, 46);
+ 
+ }
+ 
--- wmbsdbatt-0.1_3.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list