<preface><title>Release Notes</title> <para>This release contains a good number of cleanups and bug fixes to prior 3.10.x versions, and is intended to be the official release. See the ChangeLog below for more details.</para> <sect1><title>New Features</title> <para>This release contains a good number of cleanups and bug fixes to prior 3.10.x versions, and is intended to be the official release. See the ChangeLog below for more details.</para> <para>Change Log for current version</para> <programlisting> --- Release apcupsd-3.10.12 (xx February 2004) - Minor updates to the documentation from user input. - Fix a Makefile find that removes zero length files, which fails on some systems. - Web site update. - Apply patch from Adam that fixes OpenBSD and FreeBSD pthreads library bugs. - Add poll time to SNMP driver, and correct header file prototyping. - Make usb driver sleep for 1 second then retry up to 10 times if the device cannot be opened. There are two such loops so in the event of failure, it will occur 20 seconds later. This allows time for the hotplug program to initialize the USB devices after a boot. </programlisting> <para>Change Log for versions 3.10.7-3.10.11</para> <programlisting> --- Release apcupsd-3.10.11 (26 January 2004) - Correct apccontrol script to remove extra ;; that I inadvertantly left the last release -- apparently that prevented proper shutdown. - Updates to manual as requested by Adam and other users. - Fix localtime_r in configure.in as reported with patch by Adam. - Fixed bad html in multimoncss.c reported by an anonymous user. - Added new Mandrake apcupsd.spec.in submitted by David Walser. - Revert to using the old master/slave networking code bu default. --- Release apcupsd-3.10.10 (16 January 2004) - This version has an additional fix to the USB driver based on work by Adam Kropelin -- it limits the rate at which apcupsd will poll the UPS for the volatile data, which in turn reduces the possiblity of flooding the kernel with control messages (hide-core.c: control queue full ...". 15Jan04 - I added a new "offbattery" event that is only executed if the "onbattery" event was executed. This should allow users to easily control what messages they get and by using the ONBATTERYDELAY the time on batteries before the onbattery event is notified. --- Release apcupsd-3.10.9 (31 December 2003) 31Dec03 - Bartlomiej Krol found an unexpected interaction between the 6 second "debounce" code and the new ONBATTERY delay time that caused the USB and apcsmart drivers to sleep for a long time. --- Release apcupsd-3.10.8 (28 December 2003) 28Dec03 - Added upsBaiscOntrolConverveBattery change to smtp requested by Kastus Shchuka (kastus@list.sourceforge.net) - Move wall in killpower of apccontrol to after killpower to avoid errors stopping script. - Install apctest along with apcupsd. - Fix DISTVER for RH Enterprise 19Dec03 - Added patch by Adam Kropelin that ignores invalid samples. This eliminates the need for the wait, and seems to calm the system. Apparently, even though apcupsd did not use the bad samples, it would break from the wait loop, and request an update, which gave even more bad samples. With Adam's patch the samples are simply dropped and we continue waiting (if appropriate). Thanks Adam. 18Dec03 - Add Slackware updated patch submitted by Andrei Mamontov - Corrected the missing library dependencies in src/Makefile.in Thanks to Reg. Clemens for pushing me a bit on this. 06Dec03 - Added usleep(10000) provided by Reg. Clemens, which resolves the apcuspd USB problems on 2.6 kernels. Now removed by 19Dec03 patch. 24Nov03 - Added a ONBATTERYDELAY to the conf file. This is the time in seconds that apcupsd will wait after detecting a power failure until it sets the onbattery state. If you do not want to be annoyed by short power outages (usually less than 10 seconds), set the ONBATTERYDELAY appropriately and comment out the powerout) "echo ...|wall" statement. - I finally got the no driver configured error. It turns out that the Makefile detection of changes is all botched up. Since I don't understand how the author expected it to work, I used the sledgehammer approach and do a "make clean" on every ./configure. - Replaced apcnet.c with Howard Wilkinson's new master/slave code. If anyone *really* needs the old driver, it is in src/apcnet.c.old - Upgraded to Cygwin 1.5.5 --- Release apcupsd-3.10.7 (xx November 2003) 08Nov03 - Do automatic UPS detection in the USB code if no device is specified or if the specified device cannot be opened. - Include patch provided by Howard Wilkinson, but put the new apcnet.c in apcnet.c.new until I have a chance to examine it in detail. His notes: I attach a complete rewrite of the Master side of the mast/slave code to support asynchronous connections to slaves. I needed to do this as our network has a number of machines that tend to be powered off for long periods and the connect() calls were hanging around for more than nettime. I also, added a small patch for a new command line flag '-P|--pid-file' so that I can easily run multiple daemons on one machine. I needed this as I have a machine that acts as a multiple master while getting its power from another UPS managed by another machine. 07Nov03 - Lib wrappers was not building correctly on FreeBSD due to the library -lnls, so I copied over the Bacula code for configure. Thanks to Lars Koeller for reporting this and for his patches. - Attempt to get mkinstalldirs called by an absolute path rather than relative. - Apply Lars' fixes to platforms/Makefile.in and platforms/etc/Makefile.in Install scripts with $(INSTALL_SCRIPT) instead of $(INSTALL_PROGRAM) - Close all file descriptors except stdin/out/err. - If there are no stdin/out/err (Windows), then create them and point them to /dev/null. This prevents the serial port from suddenly getting debug output sent to it -- chaos. - It seems that since the beginning of 3.10.x, the APCSMART_UPS never reported the proper status. This is because it was not in the case statement. Incredible since it is now the "standard" driver! Thanks to the user that brought this to my attention. - Fix a segfault in linux-usb.c due to reference one beyond the command table. This happens only on newer USB UPSes. Thanks to the user who pointed this out. --- Release apcupsd-3.10.6a (30 October 2003) 30Oct03 - Integrated Alexander Schremmer's stdout fix for Windows -- keeps debug printout from being sent to the serial port. 28Oct03 - Bob Kuo found a bug that caused a seg fault for newer USB UPSes. The error was that my code walked off the end of a table in linux-usb.c if the USB code was not in the table. --- Release apcupsd-3.10.6 (10 October 2003) 11Oct03 - Release 3.10.6 10Oct03 as offical stable version. 03Oct03 - Move the old manual to old_documents and commit the new docbook manual to the CVS. Don't include the web html directory. 28Sep03 - Test net slave mode. It works fine. - Add MASTER name to status output if device is a slave. - Display last master update if device is a net slave. - Add 10 sec delay before calling apcupsd --killpower it is needed for USB killpower to work right. Why???? - Save old apccontrol when installing a new one. - Replace old UPS_SET() with set_ups() in a number of places. 27Sep03 - Implement autodetect of USB port if no DEVICE given. </programlisting> <para>Change Log for version 3.10.6</para> <programlisting> - Lots of updates to the document. - Fixed a slave crash in master/slave mode. It was a missing setup_device, and was diagnosed and reported by Christian Schacht -- many thanks. - Made non-existent header files non-fatal and added #ifdef around sys/socket.h so it will compile on IRIX. - Add Scott's latest apcupsd.conf with the hid-ups program code (actually I had done this some time ago ...). - Start a ReleaseNotes file - Fixed a typo error (mine) that prevented Scott from building rpms. Strange, it worked for me???? - More DESTDIR cleanup for building non-root rpms. - Add DESTDIR everywhere so we can build rpms non-root - Additional documentation - Add Scott's new apcupsd.spec - On Hilary Jones suggestion, I fixed the ./configure message that is printed when no libgd is found to direct the user to the main source. - Add Sergey Vlasov's kernel patch to the examples directory, and it replaces the previous patch. This patch now solves the killpower problem on Linux USB. <apcupsd-source>/examples/linux-2.4.20-alt-apc_usb_ups.patch notes are in: linux-usb-patch-email.txt - Add TTY mode to apctest to communicated directly with UPS. - Apply patch to linux-usb.c in killpower supplied by Sergey Vlasov (thanks!). - Eliminate pow() function in linux-usb.c so that -lm is not needed. - Add automatic detection of socklen_t - I received a kernel patch from Sergey Vlasov that fixes the killpower problem on CS UPSes. apcupsd can now shutdown these devices! I've removed some debug code that was in the killpower routine and is not needed or used. I have put the kernel patch in: <apcupsd-source>/examples/linux-2.4.20-alt-hidups.patch - When the Win32 version starts as a service, delete the NOLOGIN and PWRFAIL files to prevent later confusion. Thanks to Allen Crawford for pointing this out. - Modify all Win32 program so that only windowed programs (apcupsd, popup) have the -mwindows flags. The others do not. - Tweak apctest.c a bit -- add EEPROM programming (still a bit kludgy), but at least it can be done. - Lots of clean ups for Cygwin stuff. Events now work, and exit. - Clean up a few undefined symbols in building with everything on. - Eliminate pid and serial port lock file on Win32 systems. - Modify init script to use daemon so that STDIN/OUT, ... are detached from the terminal and pointed to the log file. This prevents remotely logged in users who start apcupsd from being unable to log out. - Made some mindor modifications to configure.in and aclocal.m4 to make consistent use of double quotes in test statements in response to problems with make install reported by Andrew Surratt. - Thanks to Richard Schwaninger for finding and submitting a patch to the tcp-wrappers code that prevented it from working because of an invalid name. Fixed. - Thanks to Andrew Reid for pointing out that the child reaping code should be clearing the pid slot if a -1 is returned. The pid table was filling up on his system due to killed children. Fixed - A bug report against the Mandrake version of apcupsd indicates that apcupsd is not releasing /dev/console. I've moved the close() of STDIN so that it is always executed to prevent this possibility. - Implement very crude first cut of EEPROM programming in apctest. Set battery date, set UPS name, and print EEPROM values should work. </programlisting> </sect1> </preface>