2 Fix some resource leaks.
4 Fix a link failure with gcc-10.
6 Fix UAF's and reading of uninitialized buffer.
10 Define version once in Makefile.
13 Remove trailing whitespace.
15 Remove deprecated /usr/X11R6/include directory from CFLAGS.
17 Merge clean and clean-all targets in Makefile.
19 Respect DESTDIR variable in Makefile, e.g., for package creation.
21 Fix -Wunused-result and -Wunused-but-set-variable compiler warnings.
24 Remove VCS files from source.
26 Manpage installation location now follows Filesystem Hierarchy
29 Rename acpi to wmacpi-cli to avoid conflict with the acpi binary
30 that ships with acpiclient (http://sourceforge.net/projects/acpiclient).
32 Allow additional flags to be appended to CFLAGS and/or LDFLAGS during
35 Now maintained by the Window Maker Developers Team
36 <wmaker-dev@googlegroups.com>.
39 git clone git://repo.or.cz/dockapps.git
42 Small Makefile fix to allow compiling on newer GCCs, supplied
43 Michael Shigorin of ALT Linux.
45 2008 November 14 2.2rc4
46 Change the way that we sleep/wait for activity, to use select
47 rather than a fixed-length sleep, supplied by Julien Blache of
52 The attached patch for wmacpi makes it use select() instead of
53 sleeping. It also adjusts the timeout of the select() call
54 depending on the blink & scroll options.
56 If scrolling is not activated, there's no reason to wake up
57 10x/sec. If blinking is activated, waking up once per second is
58 enough. If blinking is not activated, then we can wake up just to
59 update the data and we're fine.
61 With scrolling and blinking disabled, this saves a number of
62 wakeups and helps battery life. Unfortunately there's another
63 source of wakeups that's probably due to libdockapp that still
64 makes 6 wakeups/seconds (in another thread it seems).
66 With this patch wmacpi makes a best effort to match the sample
67 rate set by the user, but that's hardly an issue I think.
69 I haven't released this patch yet in Debian, so if you like it and
70 want to roll out a release, feel free :) Otherwise I'll add it to
79 Some fixes for the sysfs interface support, supplied by
82 > Okay, I finally found time to make a new release including this
83 > patch - 2.2rc2. It's up on my website now.
85 I don't remember sending you the updated patch, as it turned out that
86 you can have different attributes in sysfs depending on what the
89 The current version is attached.
97 Support for the sysfs interface that became mandatory with kernel
98 2.6.24 (patch supplied by jblache@debian.org).
100 A number of graphics fixes also from jblache@debian.org.
102 Removed support for hardware reported critical battery status.
105 Major changes to command line handling and to the way we use
106 libdockapp, courtesy of Patrice Dumas. This should hopefully fix
107 several long-standing bugs with non-wmaker window managers (in
108 particular Debian bugs #280495 and 293546).
110 Updated to support newer kernels that no longer support
111 /proc/acpi/info - thanks to Samuel Ortiz.
113 Fixed a longstanding issue with redrawing - thanks to Vito
116 This version changes a number of command line options (little used
117 ones, but they're still incompatible changes) due to the
118 libdockapp work. In particular, -w becomes -x, -v becomes -V (and
119 takes an argument rather than being repeated), and -V becomes -v
120 (thanks to libdockapp grabbing -h, -v and -w for itself). Also,
121 long options are now supported for everything in wmacpi (but not
122 acpi, since it doesn't use libdockapp for command line parsing).
124 2007 January 10 2.2a1
125 Added a patch from Patrice Dumas to support newer versions of
128 Updated email address in AUTHORS and manpages.
131 Finalised libdockapp-0.5.0 port - no changes from 2.1rc1.
134 Typo fix in the manpage.
136 Ported to libdockapp-0.5.0 - all this needed was changing the
137 type of the dockapp width and height to unsigned short.
140 Upped version number to 2.0.
144 wmacpi 2.0 goes gold . . .
146 2004 September 28 2.0rc1
147 Added support for switching to capacity mode automatically, on
148 detecting dodgy reports from the battery.
150 Added support for capacity mode on charging, with automatic
151 enabling as per discharging.
155 Hopefully last release before the final 2.0.
157 2004 August 18 1.99r7
158 Implemented the libdockapp port - this seems to close Debian bug
159 #227819, but it hasn't received sufficient testing.
161 Implemented a capacity mode for calculating time remaining (as
162 opposed to the normal current rate mode) - this mode samples the
163 remaining capacity of the battery and notes the time at which it
164 was sampled, and uses a history of samples to estimate the rate of
165 drain on the battery. From there it calculates a value for time
168 Also, various cleanups have gone in:
170 * a reworking of the scrolling code
172 * generic battery number support (rather than just
173 using two pixmaps, one for b1 and one for b2)
175 * stopped the battery glyph from blinking when running on AC
178 Fix for Debian bug #250792 - the parser for the acpi files was
179 too stupid to deal with error conditions. I've now added some
180 basic checking to make it handle the error that caused the bug
181 report, but I'll need to add more later.
184 Collected fixes for the collected fixes below . . .
186 * Manpage fixes, to reflect the reality of the current code.
188 * Code cleanups, to make a few things more sensible. Most notably,
189 the interface for setting the samplerate has changed so that it's
190 no longer inverted and illogical - you now say how many times you
191 want to sample per minute.
193 * Fixed an issue with initialisation - I'd moved the power_init()
194 call below the options parsing code, without dealing with the -m
195 option properly. The end result was that if you told it to monitor
196 a battery number, it would fail saying the battery didn't exist. I
197 moved the check for this out of the options parsing and after the
200 * Fixed a leaking file descriptor in init_ac_adapters.
202 * Implemented a way to handle changing batteries - reinitialise
203 the battery info periodically. I don't know of a better way to do
204 that, since we'd have to do all that parsing anyway to find out if
207 libdockapp is waiting, but I think that's the only change left
208 without more bug repots . . .
211 Collected fixes for various small issues.
213 * Fixed a problem with placement of the window when using the
214 click to place mode - turned out to be a sizehints problem.
216 * Some fixes to the manpage.
218 * Reenabled the CLI build by default - the Debian patches can
219 handle disabling it themselves.
221 * Added a way to disable the scrolling message, since some users
224 I've left the big changes that are needed (like using libdockapp,
225 in the hope that it'll solve the docking problems) until later, so
226 that I can get these smaller fixes out. Hopefully soon . . .
228 2004 January 12 1.99r3
229 . . . and a fix for a fix that didn't fix it . . .
231 2004 January 12 1.99r2
232 Some cleanups and bugfixes found by the wonderful Debian users.
234 It's finally in testing!
236 2003 November 23 1.99
237 Finally claimed the wmacpi name as my own . . .
239 Renamed wmacpi-ng and acpi-ng, renamed the header files, fixed up
242 For the Debian package, also made compilation of the command line
243 tool optional, defaulting to not building it. This is because
244 after the renaming, my acpi clashes with the acpi package that's
245 already in Debian. The command line functionality is now
246 accessible via the -w option to wmacpi.
248 This is wmacpi 1.99, so that I can have a release packaged and in
249 Debian before going to 2.0, so that any bugs that are left can be
250 found by all the extra users.
252 2003 September 26 0.99
253 Fix the last of the old wmacpi code oddities (specifically, the
254 APMInfo struct, which was a completely inappropriate name given we
255 no longer deal with APM, and because of the various code
258 I think this is probably as good as I can make it without getting
259 more feedback and the like, so I'm going to make this version
260 0.99, preliminary to either wmacpi-ng 1.0 or wmacpi 2.0 (depending
261 which direction I go with that).
263 2003 September 23 0.92
264 Fix a few more bugs, and include an option to allow the user to
265 specify how often to sample the ACPI data - some BIOSes disable
266 all interrupts while reading from the battery, which apparently
267 causes some interactivity issues. I have no idea why reading once
268 every three seconds (which is our default), but there've been some
271 Also fixed acpi-ng to properly handle the -a option.
274 Fix a problem I'm seeing with docking the app - if the window name
275 is set to "acpi" rather than "apm" it doesn't dock . . .
278 Make the time display show '--:--' instead of '00:00' when the
279 time remaining is 0 - I think this is reasonable, since it'll only
280 get into this state when the present rate value is 0. This only
281 happens when the battery is fully charged and neither discharging
282 or charging, or when the battery is completely drained. In any of
283 these states the time remaining is of very little interest, so we
284 don't lose anything. We also get to handle the (sadly, very
285 common) case where the ACPI subsystem doesn't report sane values
286 for the things we depend on.
289 Make the time display show nothing (as opposed to 00:00) when the
290 time remaining is unknown, as requested by Emma Jane Hogbin.
292 Respect the critical level specified on the command line, and add
293 a new message to differentiate between the command line critical
294 level and the critical state reported by the battery.
296 Speed up the message scrolling, so that there isn't quite such a
297 painful delay between repeats. Also, up the speed when the battery
298 is low, more when it's critical, and scroll continuously when it's
301 Finally, add support for disabling the blinking power and battery
302 glyphs from the command line, as requested by Sebastian
303 Henschel. We still blink the battery glyph when the battery
304 reports hardware critical level - I think that's worth being a bit
307 Also, added an acpi-ng manpage.
310 Properly fix the AC adapter issue - it's not much use adding the
311 infrastructure and then forgetting to fix the code that uses it.
313 Fix the time disiplay so that it doesn't try to display values
314 greater than 99:59, since the display area won't fit anything
318 Bugfixes, to handle two problems: the case where something like
319 the present rate or some such is "unknown" (reported initially by
320 Emma Jane Hogbin, and where the AC adapter is called something
321 other than "AC" (reported by Sebastian Henschel). This an 'a'
322 release because I can't test these myself . . .
325 Finally got rid of that annoying button - that space now contains
326 a 'B 1' or 'B 2' (only those two at present, since I'm too lazy to
327 fix it so that the number is generic. It should work fine for
328 anyone who doesn't have a freakish system with more than two
331 A few more code cleanups.
334 libacpi cleanups and reworking - we now handle the charging
335 battery case properly, it seems.
337 Also, some attempts to make error printing a bit cleaner; still a
338 long way to go on that, though . . .
341 Removed process_plugin_timer(), since it was doing nothing useful
345 Removed libapm.c - wmacpi-ng is specifically for ACPI, with no APM
349 Some more code cleanups, designed to move libacpi to more of a
350 library than something built into wmacpi-ng. This is useful with
351 the seperate programs, though at present it's not used much.
354 Added a command line tool, acpi-ng to query battery status from
358 Implemented multiple battery support, and averaging of the samples
359 in an attempt to even out the jumpiness of the timer.
362 More major code cleanups: in particular the handling of the power
363 panel and the message has been cleaned up so that it's actually
366 Next step from here is to actually implement handling of multiple
367 batteries, so that if there's a fully charge second battery
368 available it reports the correct time remaining (based on the
369 present rate of power consumption and the sum of the two battery's
370 remaining capacities).
373 Some major reworking of the internals, to help fix the handling of
374 multiple batteries and such things.
377 Code cleanups to fix various problems with corner cases.
380 Added support for multiple batteries: I took the simple route of
381 displaying only one battery per instance - to do more I'd need to
382 hack with the display code, and I'm not ready for that yet.
384 Added a -m option to specify the battery number to monitor.
387 Changed package completely, to support the new ACPI code as of
390 Since this code hasn't been touched in more than a year, I figure
391 I might as well have a go at hacking on it . . .
393 -- Simon Fowler, <simon@dreamcraft.com.au>
396 Updated ACPI statistics gathering code for the latest ACPI patch from
397 Intel. Now uses/checks for subsystem version 20020214+. Redone the version
401 Little fix to ACPI version check so that I don't have to make a new
402 version each time a new kernel comes out
405 Split ACPI and APM portions in different source files
406 Added power_init() function - handles checking subsystem presence,
407 version, etc. Enumerates batteries in ACPI implementation
408 ACPI: Beginnings of multiple battery support - not fully implemented
409 ACPI: Get the battery ID from /proc/acpi/battery instead of hard-coding
410 it in - also helps with multi battery stuff
411 Added some stupid command line help
412 Added -c option to set critical battery alarm level. Defaults to
413 10 percent, and added -b option to make noise when this critical level
415 APM: Updated for critical alarm stuff
416 Made a 20 color "low" quality pixmap for machines running 8bit displays
417 Updated README with some stuff, made separate INSTALL file
420 Update for intel ACPI release version 20010313
421 Minor updates for new /proc layout
424 Update for intel ACPI release verion 20010302
425 Proc format changed a little bit, so updates were necessary.
426 Added a check for specific acpi subsystem version - since each
427 new version seems to have a new interface, better be safe than
429 As usual, please test and report to me.
431 This ONLY works with linux acpica 20010302. Download this version from
432 http://developer.intel.com/technology/iapc/acpi/downloads.htm - it's a
436 Finally read through the ACPI specification. Hah, they had all my
437 questions answered :) Thus,
439 Confirmed remaining percentage formula (correct)
441 Now calculate "time remaining" according to the spec formula
443 Removed "battery load" hack since we now have "time remaining"
445 Fixed bug in display_percentage (10% didn't display right)
447 Released version 1.21
450 Added support for ACPI. This is very untested, and not very clean.
451 This has been tested on machines with only ONE battery, and only
452 with kernel 2.4.2 (that's where ACPI started to work for me)
454 Added some hackery to do with ACPI. Check README.
459 Fixed all the stuff so that wmapm works as advertised:
460 Fixed dumb bug where after charging was done new message didn't scroll.
462 Added support for fucked APM bioses that display stuff wrong. (See
463 README to learn how to enable it. Obviously, it's disabled by default)
465 Reorganized apminfo structure and got rid of redundancy.
467 Reorganized acquire_apm_info. All APM data is processed there.
469 Fixed display_state to do the Right Thing.
471 Fixed red blinking button to actually blink on critical battery, and
472 to stop when it isn't critical anymore. I don't think it ever worked