New Features in Apcupsd 3.7.2

Version 3.7.2 is a bug fix release, and the changes primarily concerned the non-smart UPSes (sometimes referred to as dumb UPSes.

New Features in Apcupsd 3.7.1

This version of apcupsd, thanks to the efforts of Andre H. Hedrick, Brian Schau, Kern Sibbald and many others has been almost rewritten. Many thanks have to be addressed to APC people that not only have allowed, on April 7 1999, the release of apcupsd under the GPL license, they also offered their technical help to the developers. Thank you !

Apcupsd is a daemon for monitoring APC UPSes. It is able to detect power loss and shutdown the computer if the UPS battery power is getting too low. It is able to shutdown multiple computers powered by a single UPS by running one computer as the master and the others as slaves. The master communicates to the slaves sending them messages by the network.

· Highlights of this release.

. New CGI interface to see the UPS status over the web
. New network interface to publish to clients the UPS status
. New master/server network code that is more fault tolerant
. Internationalization
. Use GNU getopt
. Logging on syslog
. Events logged in a file like APC's PowerChute
. Sync code removed: now only async processes are used
. Better automated installation
. Updated documentation (HTTP version)
. Bug fixes and enhancements: too many to tell them all

The software is completely developed under Linux and will compile cleanly and will work under Linux. Porting is being addressed for Solaris and HP-UX, where the actual code should compile cleanly. If you own an APC UPS attached to a Linux machine or you want to realize a setup like this, or you are already an user of older version of apcupsd, please upgrade to the latest version. We need testers and any bug reports will be more than welcome. ·

What to do if you find bugs :

send an e-mail to riccardo@master.oasi.gpa.it (Project Manager and main developer) or send an e-mail to apcupsd-devel@apcupsd.org (Developers mailing list) or go to one of the following sites:

http://www.apcupsd.org
http://www.sibbald.com/apcupsd
Apcupsd Support Center http://www.brisse.dk/site/apcupsd/

Change Log

/***************************************************************************/
/*                     ChangeLog of apcupsd                                */
/*               Riccardo Facchetti <riccardo@master.oasi.gpa.it>          */
/*               http://www.apcupsd.org                                    */
/*               http://www.sibbald.com/apcupsd                            */
/*               ftp://ftp.apcupsd.org/pub/apcupsd                         */
/***************************************************************************/

----> apcupsd-3.7.2 released.
        true and false programs are no more hardcoded into the configure script
        Reorganized some of the distributions/ Makefiles.
        Added FreeBSD installation support.

----> Snapshot released 20000528
        Now apcaccess.c::stat_print() output status to stdout instead of stderr
        Reorganized the kill_* code in apcupsd.c::main()
        Removed the kill_ups_power argument from apcnet.c::kill_net()
        Moved all save_dumb_status() calls to apcserial.c::setup_serial()
        Applied kern's patch for kill_net in apcupsd.c and some other
        beautifications of the code.
        Changed scripts/autoregen.sh to compile with all the options switched o
        Added a web page of thanks to the html manual.
        Moved apcproctitle.c to lib/proctitle.c.  Use that source only if
        there is not a system setproctitle(3).
        Don't use 's' subflag to ar(1).  It's unnecessary since ranlib is
        being called, and more importantly not all ar implementations have it.
        Install distribution-specific apcupsd.conf files if they exist.
        Fixed some calls to open(2) that didn't specify file create modes.
        Added OpenBSD distribution and minor source patches.
        Modified Slackware distribution:  Update README, patch instead of
        replacing rc files, delete obsolete distribution files.
        Updated "makediff" developers' tool.
        Minor manual updates.
        Updated again Developers file: we gained more *BSD help.
        Added the '-p' option to cmdline: was missing.
        Abort on killpower for slaves instead of simply exit, in apcupsd.c
        Removed nologin information from apcnet.c because we don't need. All th
        nologin file is managed by apcaction.c

----> Snapshot released 20000511
        New mantainer for Slackware and OpenBSD ports: updated Developers file.
        Applied David patch for slackware 
        Applied kern diffs, see techlogs/kes26Jan00
        po/POTFILES file is now removed by main Makefile since is always built.
        Corrected Slackware distribution Makefile.in: it was tied to
        /usr/src. Thanks to John McSwain.
        Corrected a bug in configure.in and include/apc_defines.h in which
        the nologin file was created in /etc/apcupsd/nologin instead of
        /etc/nologin.
        Moved README.solaris to doc/.
        Moved the patch "./1" to techlogs/kern-patch-17-Feb-2000

----> apcupsd-3.7.1 released 17 February 2000
        Bumped version to 3.7.1 and released by Kern since Riccardo
          is on vacation.
        Update to upsbible.html to include additional credits.
        Fixed dumb UPSes, which did not work in version 3.7.0,
          see Kern's fixes techologs/kes12Feb00

----> apcupsd-3.7.0 released.
        Bumped version to 3.7.0 and released.
        Powerflute: last 8 events are loaded from events file (if present).
        Revamped powerflute: now curses work correctly.
        Small fix to include/apc_config.h to clean Solaris compile.
        Clean intl/ a bit better.
        Fixed apcnetlib.c and apcnetd.c: now apcupsd compile under FreeBSD too.
        Applied kern diffs, see techlogs/kes26Jan00
        Fixed compile for Solaris 2.5.1.
        Added check for snprintf when CGI is configured in configure.in.
        Fixed internationalization inclusion when msgfmt is not found.
        Fixed warning in lib/getopt.c.
        Fixed AC_PATH_PROGS in configure.in.
        Verified clean compile under Linux and HP-UX.
        Added libintl and nls in information at the end of configure.
        Corrected stpcpy warning in intl/dcgettext.c.
        Changed all `make -C', this fixes HP-UX compilation of additional modules
        like internationalization and cgi support.
        Fixed detection of UP-UX version.
        In apcnetlib.c use memset instead of bzero.
        In apcupsd.c don't use TIOCNOTTY if not defined.
	Corrected a macro bug in arguments of setpgrp() call in apcupsd.

----> apcupsd-3.7.0-rc1 released.
	Updated my e-mail and (C) signatures: if you want to make it simple,
	use vim and the scripts you can find in scripts/.
	Restructured include/apc.h inclusion order: now make more sense.
	Corrected setpgrp() call in apcupsd.c for BSD/non-BSD.
	Added FreeBSD to configure autodetection and placeholder in distributions/.
	Other minor fixes to Makefile.in and cgi/Makefile.in
	Fixed make clean for cgi.
	Applied kern diffs, see techlogs/kes17Jan00
	Added slackware scripts from John McSwain.
	Added Kern's fixes to distributions/redhat/awkhaltprog.in
	Applied kern diffs, see techlogs/kes16Jan00
	Added handling of `exit 0' at the end of halt.local as in suse 5.x.
	Added autodetection for SuSE 5.x.
	SuSE installation: written a shell script for installing apcupsd
	directives in /etc/rc.config.

----> apcupsd-3.7.0-beta4 released.
	Bumped version to beta4 and released.
	Fixed a minor po/ problem.
	Applied kern diffs, see techlogs/kes13Jan00
	Applied kern diffs, see techlogs/kes12Jan00
	Fixed CYGWIN detection in configure.in.
	Added clean and distclean for distributions/.
	Added slackware detection but still manual installation (scripts
	generated but no actual installation performed: too dangerous doing
	the code without being able to test).

----> apcupsd-3.7.0-beta3 released.
	Bumped version to beta3 and released.
	Applied kern diffs, see techlogs/kes09Jan00
	Changed clean_threads() in apcexec.c not hang on waitpid, and make
	sure we do all we can to kill the childs.
	Updated INSTALL file to make clear that prior to install a new version
	of apcupsd over an old version, is advisable to make uninstall.
	Corrected a syntax error in distributions/*/apccontrol.sh.in.
	Changed suse halt.local script to:
	 . do something only if a powerdown is detected.
	 . kill the processes before remounting read only the filesystems.
	Corrected a minor cosmetic (-Wall) in apcnetd.c
	Added -Wall to default CFLAGS.
	Applied kern diffs, see techlogs/kes06Jan00
	Kern minor changes to configure.in.
	Thanks to Tom Schroll, corrected an execv nasty error in apcexec.c.
	Applied kern diffs, see techlogs/kes30Dec99

----> apcupsd-3.7.0-beta2 released.
	Bumped version to beta2 and released.
	Changed install-apcupsd target in main Makefile.in not to overwrite
	old apcupsd.conf file and instead create an apcupsd.conf.new file.
	Applied Kern diffs, see techlogs/kes19Dec99
	Changed the install to warn the user that if an old apcupsd.conf is in
	place, it is saved to apcupsd.conf.old.
	Applied Kern diffs, see techlogs/kes18Dec99.
	Reorganized the path construction in include/apc_defines.h so that now
	file paths are built with autoconf variables and not hardcoded.
	Applied Carl Erhorn patches for Solaris, see techlogs/cpe16Dec99.
	Now SuSE 5.2 is correctly detected (don't know previous versions).
	Cleanups of configure.in.
	Corrected a problem with SuSE and halt scripts where killpower where
	not issued correctly.
	Applied Helmut Messerer corrections.
	Applied Kern diffs, see techlogs/kes09Dec99
	Applied Kern diffs, see techlogs/kes08Dec99
	Added a new contrib/ directory where user contributed files are put.
	New user contribution for sending sms messages on UPS troubles.

----> apcupsd-3.7.0-beta1 released.
	Applied Kern diffs, see techlogs/kes30Nov99
	Applied Kern diffs, see techlogs/kes28Nov99
	Applied Kern diffs, see techlogs/kes20Nov99
	Applied Kern diffs, see techlogs/kes18Nov99
	Applied Kern diffs, see techlogs/kes15Nov99
	More internationalization.
	Applied Kern diffs, see techlogs/kes13Nov99
	Moved TIOCM_LE HP-UX define and friends to include/apc_config.h
	Internationalization: internationalized and translated in Italian all the
	messages that are printed with printf and fprintf: more need to be done
	for error_* functions.
	Removed #ifdef wrapping around debug code and substituted with debug_level
	checks.
	Cleaned a remaining spit of `killpower' in apcupsd.c
	Help screen output to stdout.
	Now (C) and Brian's Support Center are visible in help screen output.
	Updates to the cgi files from Kern.
	Added a vimrc for TABs.
	--debug argument changed meaning. Now is meant to be set to a number that
	range from 0 to N where increasing numbers means increasing debug output.
	Now we use getopt_long [see getopt(3)] for parsing command line.
	Documentation updates and reorganization: now `developers' documentation
	is in doc/developers/.
	Added support for cable 940-0095B.
	Applied Kern patches: syslog, getline, code cleanups, new cgi
	interface. Read his technical log in techlogs/kes03Nov99
	Added doc/CodingStyle file.
	Added Developers file.
	Some minor code documentation.
	Removed the "failed to reacquire the lockfile" problem. Now we release
	the lockfile just before fork() and reacquire it just after.
	More duplicated code cleanups and nasty bugs fixed in apcaction.c.
	SuSE's apcupsd start script now return green "done" and red "failed"
	(SuSE 6.2)
	apccontrol is installed in /etc/apcupsd/ because we need it when
	filesystems may be umounted.
	Removed powersc script: now it is all done in apccontrol and
	/etc/rc.d/apcupsd scripts.
	Moved _all_ the scripts into scripts/ directory (where they belong).
	apccontrol script installation dir is now sysconfdir
	${prefix}/etc/apcupsd
	Simplified apcaction.c (removed duplicate code).
	Attempt to document some features of apcupsd.conf.
	Deleted two alarm()s related to apcreports.c from apcaction.c: this
	was a bug.
	Added setproctitle for setting forked procs's argv[0]. Now we have
	apcmain -> waiting for other tasks to exit, generic watchdog.
	apcser -> serial task
	apcact -> actions task
	apcnet -> network task
	apcslv -> netslave task
	so that now we can tell with a `ps' which task is doing what.
	apcserial+apcreports are now one single thread.
	Better locking scheme.
	Removed another nasty bug in Old* variables into apcaction.c. Now
	there is a local structure for these values.
	Removed a nasty bug in apcsetup.c.
	Updated man pages and apcupsd.conf.
	RedHat installation scripts.
	Removed 10 seconds sleep() from terminate().
	SHM ID for sanity checks on SHM accesses.
	Obsolete config options now generate only warnings.
	New error handling routines.
	doc/README.developers updated.
	Syslogging functions are bracketed with HAVE_GCC so that with gcc we
	can use macros and with other compilers we use functions for
	compatibility.
	Syslog functions are now real functions. There's no point in having
	incompatible preprocessor macros when a set of little functions can do
	the job.
	Fixed a next_slave label in apcnet.c with a semicolon for HPUX
	compiler.
	OS detection in configure: now Makefiles and sources know about which
	OS they are supposed to compile for.
	Better integration of lib/ sources into the configure mechanism.
	configure cleanups.
	Added cflags and ldflags selection in Makefile.in and configure.
	Fixed getopt_long detection in configure. Now if not found it compile
	the lib/ version.
	Now configure.in have a hardcoded PATH in which search the system
	programs needed.
	Lot of cleanups in global variables and code partitioning and
	duplication.
	More configure cleanups.
	Updated RH 6.0 halt script.
	Removed apchttp.
	Cleaned THREADS. Now forked processes are the only option.
	Various cleanups.
	SuSE-specific install/uninstall.
	All distribution specific directories are now in distributions/.
	All scripts are now in scripts/.
	Moved default apcupsd.conf in etc/.
	Added distribution-specific scripts installation.
	Install /etc/apcupsd.conf if not alredy present.
	Removed apc(un)install.sh: no more needed.
	Rewritten external scripts: no more system(), better customization
	support.
	Removed Makefile.in.in from po/: it's not needed.
	Fixed bogus --enable and --disable behavior of configure.
	Cleaned up po/ and intl/ autoconf.
	Only powerflute is linked with ncurses libraries.
	The program makedepend is not any more vital for compilation.

----> apcupsd-3.6.2
	Fixed the "apcupsd -c" configure command.
	Fixed two thread bugs in alarm handling.
	Fixed two potential security exploits.
	More cleaned up autoconf.
	Random documentation cleanups.

----> apcupsd-3.6.1
	Cleaned up new autoconf stuff from version 3.6.0
	Undefined a test flag for testing networks wierdness.
		#undef WACKY_NETWORK_ATTEMPS
	Network is fully functional under non-threaded compile.
	Possible fix for "pipe_master_status" calls on slaves.
	Added 940-1524C smart signal cable support.

----> apcupsd-3.6.0
	Added autoconf.
	Added internationalization support. There is _only_ the support but
	no current code is written for the intl package. It can be compiled
	in, but intl strings have still to be translated (to be done in the
	future).
	Reorganized documentation.
	Reorganized support for distributions. Now we have a directory for
	every possible distribution (suse, unifix, debian etc etc) so that the
	job for the package-men can be easier.

----> apcupsd-3.5.9
	Added new configuration options to reduce init time of daemon.
	powersc CONFIG
	powersc NAME
	powersc BATTERY

----> apcupsd-3.5.8.patch

	Fixes a FIFO error that I forgot to include in the rush
	to release the code

----> apcupsd-3.5.8

	GPL2 source code status finally...........April 7, 1999

	Threaded code is stable but requires glibc2 or libc6
	Finished SELFTEST setup
	Fixed naming of UPS if allowed.
	Redesigned "apcsetup.c" to allow for ease of parameter setup.

----> apcupsd-3.5.7

	Added 940-0024G cable.
	"newbackupspro" to be replaced by "backupspropnp"

	If you have a BackUPS Pro UPS that is identified as
	BP(SIZE)(EXTRAS) examples BP420SC/BP650SC/BP650PRO-PnP,
	then you have a PnP BackUPS Pro that is very near a SmartUPS.
	Else anything with the identifier BK(SIZE)PRO or BKPRO(SIZE)
	is the very early version of the "dumbed down smartups".
	Unfortunately, it has very little to say.  It is superior to the
	classic BackUPS (simple signals) in that it can at least tell event
	histories and if the batteries are faulted. 

	now powerflute is compiling and working, needs THREADS

----> apcupsd-3.5.6

	See Makefile for enabling flags.

	# New multi-threading code BETA
	#
	# THREADS   = 1

	# New multi-threading code with http BETA functional needs THREADS
	#
	# HTTP      = 1

	# New/Old powerflute tool
	#
	# MUSIC     = 1

	dual building model possible complete.
	intergrated beta http data
	breakages in logs and procfs are still present in shm.
	code sorting and corrections.
	return of ncurses powerflute tool.
	fixed Makefile to find two possible locations of
	ncurses package; however, there are three methods for this animal.

	apcconfig.c: removed check for existance of lock directory. It's not
	needed and dangerous when -killpower !
	apcconfig.c: new configuration checks
	added semun definition to apc_struct.h since it is needed for glibc6

----> apcupsd-3.5.5

	dual building model begun.
	intergrated beta shared memory mapping.
	breakages in logs and procfs are present.

----> apcupsd-3.5.4

	Preparation for GPL status and transfer to GNU.
	Fixed Network bug.
	Fixed IPC PIPE bug.

----> apcupsd-3.5.3

	Fixed UPS killpower bug.

----> apcupsd-3.5.2

	Source wide reformat to conform to standard C programing format

----> apcupsd-3.5.1


----> apcupsd-3.5.0

	fixes "NO" reports in setup loops for UPSes that do not allow for
	changing parameters at initialization.  Previously it was assumed that
	UPSes did not report anything if the feature was not pollable and/or
	changeble.

----> apcupsd-3.4.9

	fixes a long missed error that was incorrectly fixed in the past.

----> apcupsd-3.4.8

	solved more mystery functions and the UPSlink language may
	be completely decoded.

----> apcupsd-3.4.7

	now auto-learns features based on UPS's answer to questions.
	initial porting to Solaris for i386 is complete.

----> apcupsd-3.4.6 45493 Jul 15 13:14 apcupsd.c
                    22326 Jul  9 12:50 apcnet.c
                    12129 Jul  9 12:50 apcpipe.c
                    25634 Jul  9 12:50 apcconfig.c
                     8565 Jul 15 13:07 apcsetup.c
                    11039 Jul 15 13:09 apcreports.c
                    18137 Jul 15 13:19 apcsmart.c

	all logging functions will be moved to "apcreports.c"
	all smart mode calls will be moved to "apcsmart.c"
	fix ups model reporting in "apcsetup.c"

----> apcupsd-3.4.5 77096 Jul  7 17:18 apcupsd.c
                    22326 Jul  7 03:12 apcnet.c
                    12129 Jun 22 15:12 apcpipe.c
                    25634 Jul  7 16:39 apcconfig.c

                    18477 Jul  7 02:08 apcaccess.c

	Added NOLOGON delay for systems with large Matrix UPSes.
	Short information polling, with constant values being set
	in the extended setup functions.

----> apcupsd-3.4.4
	Fixed a missing and needed wait delay for netmaster systems.
	This was discovered when mixing flavors of Linux.
	Since SuSE, RHS, and Debain require extra time for shutdowns.
	man-page is closer to date..........

----> apcupsd-3.4.3
	Added new limit features by polling a new command for
	internal calculated remaining time on line.
	Fixed naming UPS if allowed.

----> apcupsd-3.4.2
	Fixed an unknown error for the forced ups-kill for the
	backupspro models. This was discovered with a new
	BackUPS Pro 1000.

----> apcupsd-3.4.1
	Changed ./includes to have an "apc_" prefix.
	This is for initial port requirements to FreeBSD.

----> apcupsd-3.4.0 72305 May 19 14:18 apcupsd.c
                    21597 Apr 16 17:59 apcnet.c
                    12117 Apr 16 15:44 apcpipe.c
                    22832 Apr 16 15:42 apcconfig.c

                    17687 Apr 16 13:47 apcaccess.c

Slave management disconnect/reconnect added to apcaccess.
Fixed excessive loss of UPS communications loggings of ::
	UPSlink Comm. Error, SM != SM
	UPSlink Comm. reestablished, SM == SM

Fixed Signal/Cable Combination errors.
	A "SmartUPS" with a "Simple Cable" with report as a "BackUPS".

----> apcupsd-3.3.0 72450 Mar 20 01:09 apcupsd.c
                    15321 Mar 20 01:08 apcnet.c
                    11093 Mar 20 01:09 apcpipe.c
                    22465 Mar 20 01:09 config.c

                    17300 Mar 20 01:08 apcaccess.c

Network death solved (hopefully)
PowerFlute removed due to unexplainable daemon kills under 2.0.X. and
some cases of 2.1.X. (TCPIP)

This is replaced bye the original tool that now works "apcaccess".
"apcaccess" is functional under both 2.0.X and 2.1.X kernels without
killing the damon "apcupsd".

EPROM programming of many UPS models is now functional.

Example::

apcaccess : polling apcupsd for status.

APC      : Mar 20 01:24:56
CABLE    : APC Cable 940-0024B
UPSMODEL : SmartUPS
UPSMODE  : Stand Alone
ULINE    : 124.0 Volts
MLINE    : 125.2 Volts
NLINE    : 124.0 Volts
FLINE    : 60.0 Hz
VOUTP    : 124.0 Volts
LOUTP    : 028.0
BOUTP    : 27.3 Volts
BCHAR    : 100.0
BFAIL    : 0x08
SENSE    : HIGH
WAKEUP   : 060 Cycles
SLEEP    : 020 Cycles
LOTRANS  : 103.0 Volts
HITRANS  : 129.0 Volts
CHARGE   : 025.0 Percent
UTEMP    : 49.5 C Internal
ALARM    : Low Batt + 30
DIPSW    : 0x0000

root@Orion% cat apcupsd.status
APC      : Mar 20 01:27:31
CABLE    : APC Cable 940-0024B
UPSMODEL : SmartUPS
UPSMODE  : Stand Alone
UPSNAME  : UPS_IDEN
ULINE    : 124.0 Volts
MLINE    : 124.6 Volts
NLINE    : 124.0 Volts
FLINE    : 60.0 Hz
VOUTP    : 124.0 Volts
LOUTP    : 028.0 Load Capacity
BOUTP    : 27.3 Volts
BCHAR    : 100.0 Batt. Charge
BFAIL    : 0x08 Status Flag
SENSE    : HIGH
WAKEUP   : 060 Cycles
SLEEP    : 020 Cycles
LOTRANS  : 103.0 Volts
HITRANS  : 129.0 Volts
CHARGE   : 025.0 Percent
UTEMP    : 49.5 C Internal
ALARM    : Low Batt
DIPSW    : 0x0000

----> apcupsd-3.2.2 66556 Jan 27 15:24 apcupsd.c

Fixed a reporting error in /etc/apcupsd.status for CUSTOM SIMPLE cable.
Fixed a reporting error in /var/log/apcupsd.log for CUSTOM SIMPLE cable.

----> apcupsd-3.2.1 67450 Jan  8 13:41 apcupsd.c

Fixed INSTALL from "readhat" to "redhat"
Fixed INSTALL errors of "slackware"

Bug search that causes network death, lost slaves under 2.0.X only??
Bug search that causes text-powerflute to kill daemon only under 2.0.X.

----> apcupsd-3.2.0 66096 Dec 18 16:11 apcupsd.c

apcflute.c all code for reconfiguration complete.

----> apcupsd-3.1.0 65925 Dec  8 21:18 apcupsd.c

----> apcupsd-3.0.0

Now binaries only...........

----> apcupsd-2.9.9 63431 Dec  3 13:05 apcupsd.c

Fixed "for (killcount=0;killcount>3;killcount++)" bug
                                 ^ killcount<3;

Found by Piotr Kasprzyk .

----> apcupsd-2.9.8 62158 Nov 25 15:13 apcupsd.c

Added user defined magic and security timeouts.
Started powerflute update running master or standalone daemon.
Added another field for SmartUPS procfs file.

----> apcupsd-2.9.7 60945 Nov 18 19:19 apcupsd.c

Added second alternate method for killing power for non SU SmartUPS.
I have one of these older models, and it needs a bigger kick.

Disable lockfiles if slave is a netslave with (ups->cable == APC_NET),
or ethernet.

----> apcupsd-2.9.6 60156 9:19 a directory for
	every possible distribution (suse, unifix, debian etc etc) so that the
	job for the package-men can be easier.

----> apcupsd-3.5.9
	Added new configuration options to reduce init time of daemon.
	powersc CONFIG
	powersc NAME
	powersc BATTERY

----> apcupsd-3.5.8.patch

	Fixes a FIFO error that I forgot to include in the rush
	to release the code

----> apcupsd-3.5.8

	GPL2 source code status finally...........April 7, 1999

	Threaded code is stable but requires glibc2 or libc6
	Finished SELFTEST setup
	Fixed naming of UPS if allowed.
	Redesigned "apcsetup.c" to allow for ease of parameter setup.

----> apcupsd-3.5.7

	Added 940-0024G cable.
	"newbackupspro" to be replaced by "backupspropnp"

	If you have a BackUPS Pro UPS that is identified as
	BP(SIZE)(EXTRAS) examples BP420SC/BP650SC/BP650PRO-PnP,
	then you have a PnP BackUPS Pro that is very near a SmartUPS.
	Else anything with the identifier BK(SIZE)PRO or BKPRO(SIZE)
	is the very early version of the "dumbed down smartups".
	Unfortunately, it has very little to say.  It is superior to the
	classic BackUPS (simple signals) in that it can at least tell event
	histories and if the batteries are faulted. 

	now powerflute is compiling and working, needs THREADS

----> apcupsd-3.5.6

	See Makefile for enabling flags.

	# New multi-threading code BETA
	#
	# THREADS   = 1

	# New multi-threading code with http BETA functional needs THREADS
	#
	# HTTP      = 1

	# New/Old powerflute tool
	#
	# MUSIC     = 1

	dual building model possible complete.
	intergrated beta http data
	breakages in logs and procfs are still present in shm.
	code sorting and corrections.
	return of ncurses powerflute tool.
	fixed Makefile to find two possible locations of
	ncurses package; however, there are three methods for this animal.

	apcconfig.c: removed check for existance of lock directory. It's not
	needed and dangerous when -killpower !
	apcconfig.c: new configuration checks
	added semun definition to apc_struct.h since it is needed for glibc6

----> apcupsd-3.5.5

	dual building model begun.
	intergrated beta shared memory mapping.
	breakages in logs and procfs are present.

----> apcupsd-3.5.4

	Preparation for GPL status and transfer to GNU.
	Fixed Network bug.
	Fixed IPC PIPE bug.

----> apcupsd-3.5.3

	Fixed UPS killpower bug.

----> apcupsd-3.5.2

	Source wide reformat to conform to standard C programing format

----> apcupsd-3.5.1


----> apcupsd-3.5.0

	fixes "NO" reports in setup loops for UPSes that do not allow for
	changing parameters at initialization.  Previously it was assumed that
	UPSes did not report anything if the feature was not pollable and/or
	changeble.

----> apcupsd-3.4.9

	fixes a long missed error that was incorrectly fixed in the past.

----> apcupsd-3.4.8

	solved more mystery functions and the UPSlink language may
	be completely decoded.

----> apcupsd-3.4.7

	now auto-learns features based on UPS's answer to questions.
	initial porting to Solaris for i386 is complete.

----> apcupsd-3.4.6 45493 Jul 15 13:14 apcupsd.c
                    22326 Jul  9 12:50 apcnet.c
                    12129 Jul  9 12:50 apcpipe.c
                    25634 Jul  9 12:50 apcconfig.c
                     8565 Jul 15 13:07 apcsetup.c
                    11039 Jul 15 13:09 apcreports.c
                    18137 Jul 15 13:19 apcsmart.c

	all logging functions will be moved to "apcreports.c"
	all smart mode calls will be moved to "apcsmart.c"
	fix ups model reporting in "apcsetup.c"

----> apcupsd-3.4.5 77096 Jul  7 17:18 apcupsd.c
                    22326 Jul  7 03:12 apcnet.c
                    12129 Jun 22 15:12 apcpipe.c
                    25634 Jul  7 16:39 apcconfig.c

                    18477 Jul  7 02:08 apcaccess.c

	Added NOLOGON delay for systems with large Matrix UPSes.
	Short information polling, with constant values being set
	in the extended setup functions.

----> apcupsd-3.4.4
	Fixed a missing and needed wait delay for netmaster systems.
	This was discovered when mixing flavors of Linux.
	Since SuSE, RHS, and Debain require extra time for shutdowns.
	man-page is closer to date..........

----> apcupsd-3.4.3
	Added new limit features by polling a new command for
	internal calculated remaining time on line.
	Fixed naming UPS if allowed.

----> apcupsd-3.4.2
	Fixed an unknown error for the forced ups-kill for the
	backupspro models. This was discovered with a new
	BackUPS Pro 1000.

----> apcupsd-3.4.1
	Changed ./includes to have an "apc_" prefix.
	This is for initial port requirements to FreeBSD.

----> apcupsd-3.4.0 72305 May 19 14:18 apcupsd.c
                    21597 Apr 16 17:59 apcnet.c
                    12117 Apr 16 15:44 apcpipe.c
                    22832 Apr 16 15:42 apcconfig.c

                    17687 Apr 16 13:47 apcaccess.c

Slave management disconnect/reconnect added to apcaccess.
Fixed excessive loss of UPS communications loggings of ::
	UPSlink Comm. Error, SM != SM
	UPSlink Comm. reestablished, SM == SM

Fixed Signal/Cable Combination errors.
	A "SmartUPS" with a "Simple Cable" with report as a "BackUPS".

----> apcupsd-3.3.0 72450 Mar 20 01:09 apcupsd.c
                    15321 Mar 20 01:08 apcnet.c
                    11093 Mar 20 01:09 apcpipe.c
                    22465 Mar 20 01:09 config.c

                    17300 Mar 20 01:08 apcaccess.c

Network death solved (hopefully)
PowerFlute removed due to unexplainable daemon kills under 2.0.X. and
some cases of 2.1.X. (TCPIP)

This is replaced bye the original tool that now works "apcaccess".
"apcaccess" is functional under both 2.0.X and 2.1.X kernels without
killing the damon "apcupsd".

EPROM programming of many UPS models is now functional.

Example::

apcaccess : polling apcupsd for status.

APC      : Mar 20 01:24:56
CABLE    : APC Cable 940-0024B
UPSMODEL : SmartUPS
UPSMODE  : Stand Alone
ULINE    : 124.0 Volts
MLINE    : 125.2 Volts
NLINE    : 124.0 Volts
FLINE    : 60.0 Hz
VOUTP    : 124.0 Volts
LOUTP    : 028.0
BOUTP    : 27.3 Volts
BCHAR    : 100.0
BFAIL    : 0x08
SENSE    : HIGH
WAKEUP   : 060 Cycles
SLEEP    : 020 Cycles
LOTRANS  : 103.0 Volts
HITRANS  : 129.0 Volts
CHARGE   : 025.0 Percent
UTEMP    : 49.5 C Internal
ALARM    : Low Batt + 30
DIPSW    : 0x0000

root@Orion% cat apcupsd.status
APC      : Mar 20 01:27:31
CABLE    : APC Cable 940-0024B
UPSMODEL : SmartUPS
UPSMODE  : Stand Alone
UPSNAME  : UPS_IDEN
ULINE    : 124.0 Volts
MLINE    : 124.6 Volts
NLINE    : 124.0 Volts
FLINE    : 60.0 Hz
VOUTP    : 124.0 Volts
LOUTP    : 028.0 Load Capacity
BOUTP    : 27.3 Volts
BCHAR    : 100.0 Batt. Charge
BFAIL    : 0x08 Status Flag
SENSE    : HIGH
WAKEUP   : 060 Cycles
SLEEP    : 020 Cycles
LOTRANS  : 103.0 Volts
HITRANS  : 129.0 Volts
CHARGE   : 025.0 Percent
UTEMP    : 49.5 C Internal
ALARM    : Low Batt
DIPSW    : 0x0000

----> apcupsd-3.2.2 66556 Jan 27 15:24 apcupsd.c

Fixed a reporting error in /etc/apcupsd.status for CUSTOM SIMPLE cable.
Fixed a reporting error in /var/log/apcupsd.log for CUSTOM SIMPLE cable.

----> apcupsd-3.2.1 67450 Jan  8 13:41 apcupsd.c

Fixed INSTALL from "readhat" to "redhat"
Fixed INSTALL errors of "slackware"

Bug search that causes network death, lost slaves under 2.0.X only??
Bug search that causes text-powerflute to kill daemon only under 2.0.X.

----> apcupsd-3.2.0 66096 Dec 18 16:11 apcupsd.c

apcflute.c all code for reconfiguration complete.

----> apcupsd-3.1.0 65925 Dec  8 21:18 apcupsd.c

----> apcupsd-3.0.0

Now binaries only...........

----> apcupsd-2.9.9 63431 Dec  3 13:05 apcupsd.c

Fixed "for (killcount=0;killcount>3;killcount++)" bug
                                 ^ killcount<3;

Found by Piotr Kasprzyk .

----> apcupsd-2.9.8 62158 Nov 25 15:13 apcupsd.c

Added user defined magic and security timeouts.
Started powerflute update running master or standalone daemon.
Added another field for SmartUPS procfs file.

----> apcupsd-2.9.7 60945 Nov 18 19:19 apcupsd.c

Added second alternate method for killing power for non SU SmartUPS.
I have one of these older models, and it needs a bigger kick.

Disable lockfiles if slave is a netslave with (ups->cable == APC_NET),
or ethernet.

----> apcupsd-2.9.6 60156 9:19 a directory for
	every possible distribution (suse, unifix, debian etc etc) so that the
	job for the package-men can be easier.

----> apcupsd-3.5.9
	Added new configuration options to reduce init time of daemon.
	powersc CONFIG
	powersc NAME
	powersc BATTERY

----> apcupsd-3.5.8.patch

	Fixes a FIFO error that I forgot to include in the rush
	to release the code

----> apcupsd-3.5.8

	GPL2 source code status finally...........April 7, 1999

	Threaded code is stable but requires glibc2 or libc6
	Finished SELFTEST setup
	Fixed naming of UPS if allowed.
	Redesigned "apcsetup.c" to allow for ease of parameter setup.

----> apcupsd-3.5.7

	Added 940-0024G cable.
	"newbackupspro" to be replaced by "backupspropnp"

	If you have a BackUPS Pro UPS that is identified as
	BP(SIZE)(EXTRAS) examples BP420SC/BP650SC/BP650PRO-PnP,
	then you have a PnP BackUPS Pro that is very near a SmartUPS.
	Else anything with the identifier BK(SIZE)PRO or BKPRO(SIZE)
	is the very early version of the "dumbed down smartups".
	Unfortunately, it has very little to say.  It is superior to the
	classic BackUPS (simple signals) in that it can at least tell event
	histories and if the batteries are faulted. 

	now powerflute is compiling and working, needs THREADS

----> apcupsd-3.5.6

	See Makefile for enabling flags.

	# New multi-threading code BETA
	#
	# THREADS   = 1

	# New multi-threading code with http BETA functional needs THREADS
	#
	# HTTP      = 1

	# New/Old powerflute tool
	#
	# MUSIC     = 1

	dual building model possible complete.
	intergrated beta http data
	breakages in logs and procfs are still present in shm.
	code sorting and corrections.
	return of ncurses powerflute tool.
	fixed Makefile to find two possible locations of
	ncurses package; however, there are three methods for this animal.

	apcconfig.c: removed check for existance of lock directory. It's not
	needed and dangerous when -killpower !
	apcconfig.c: new configuration checks
	added semun definition to apc_struct.h since it is needed for glibc6

----> apcupsd-3.5.5

	dual building model begun.
	intergrated beta shared memory mapping.
	breakages in logs and procfs are present.

----> apcupsd-3.5.4

	Preparation for GPL status and transfer to GNU.
	Fixed Network bug.
	Fixed IPC PIPE bug.

----> apcupsd-3.5.3

	Fixed UPS killpower bug.

----> apcupsd-3.5.2

	Source wide reformat to conform to standard C programing format

----> apcupsd-3.5.1


----> apcupsd-3.5.0

	fixes "NO" reports in setup loops for UPSes that do not allow for
	changing parameters at initialization.  Previously it was assumed that
	UPSes did not report anything if the feature was not pollable and/or
	changeble.

----> apcupsd-3.4.9

	fixes a long missed error that was incorrectly fixed in the past.

----> apcupsd-3.4.8

	solved more mystery functions and the UPSlink language may
	be completely decoded.

----> apcupsd-3.4.7

	now auto-learns features based on UPS's answer to questions.
	initial porting to Solaris for i386 is complete.

----> apcupsd-3.4.6 45493 Jul 15 13:14 apcupsd.c
                    22326 Jul  9 12:50 apcnet.c
                    12129 Jul  9 12:50 apcpipe.c
                    25634 Jul  9 12:50 apcconfig.c
                     8565 Jul 15 13:07 apcsetup.c
                    11039 Jul 15 13:09 apcreports.c
                    18137 Jul 15 13:19 apcsmart.c

	all logging functions will be moved to "apcreports.c"
	all smart mode calls will be moved to "apcsmart.c"
	fix ups model reporting in "apcsetup.c"

----> apcupsd-3.4.5 77096 Jul  7 17:18 apcupsd.c
                    22326 Jul  7 03:12 apcnet.c
                    12129 Jun 22 15:12 apcpipe.c
                    25634 Jul  7 16:39 apcconfig.c

                    18477 Jul  7 02:08 apcaccess.c

	Added NOLOGON delay for systems with large Matrix UPSes.
	Short information polling, with constant values being set
	in the extended setup functions.

----> apcupsd-3.4.4
	Fixed a missing and needed wait delay for netmaster systems.
	This was discovered when mixing flavors of Linux.
	Since SuSE, RHS, and Debain require extra time for shutdowns.
	man-page is closer to date..........

----> apcupsd-3.4.3
	Added new limit features by polling a new command for
	internal calculated remaining time on line.
	Fixed naming UPS if allowed.

----> apcupsd-3.4.2
	Fixed an unknown error for the forced ups-kill for the
	backupspro models. This was discovered with a new
	BackUPS Pro 1000.

----> apcupsd-3.4.1
	Changed ./includes to have an "apc_" prefix.
	This is for initial port requirements to FreeBSD.

----> apcupsd-3.4.0 72305 May 19 14:18 apcupsd.c
                    21597 Apr 16 17:59 apcnet.c
                    12117 Apr 16 15:44 apcpipe.c
                    22832 Apr 16 15:42 apcconfig.c

                    17687 Apr 16 13:47 apcaccess.c

Slave management disconnect/reconnect added to apcaccess.
Fixed excessive loss of UPS communications loggings of ::
	UPSlink Comm. Error, SM != SM
	UPSlink Comm. reestablished, SM == SM

Fixed Signal/Cable Combination errors.
	A "SmartUPS" with a "Simple Cable" with report as a "BackUPS".

----> apcupsd-3.3.0 72450 Mar 20 01:09 apcupsd.c
                    15321 Mar 20 01:08 apcnet.c
                    11093 Mar 20 01:09 apcpipe.c
                    22465 Mar 20 01:09 config.c

                    17300 Mar 20 01:08 apcaccess.c

Network death solved (hopefully)
PowerFlute removed due to unexplainable daemon kills under 2.0.X. and
some cases of 2.1.X. (TCPIP)

This is replaced bye the original tool that now works "apcaccess".
"apcaccess" is functional under both 2.0.X and 2.1.X kernels without
killing the damon "apcupsd".

EPROM programming of many UPS models is now functional.

Example::

apcaccess : polling apcupsd for status.

APC      : Mar 20 01:24:56
CABLE    : APC Cable 940-0024B
UPSMODEL : SmartUPS
UPSMODE  : Stand Alone
ULINE    : 124.0 Volts
MLINE    : 125.2 Volts
NLINE    : 124.0 Volts
FLINE    : 60.0 Hz
VOUTP    : 124.0 Volts
LOUTP    : 028.0
BOUTP    : 27.3 Volts
BCHAR    : 100.0
BFAIL    : 0x08
SENSE    : HIGH
WAKEUP   : 060 Cycles
SLEEP    : 020 Cycles
LOTRANS  : 103.0 Volts
HITRANS  : 129.0 Volts
CHARGE   : 025.0 Percent
UTEMP    : 49.5 C Internal
ALARM    : Low Batt + 30
DIPSW    : 0x0000

root@Orion% cat apcupsd.status
APC      : Mar 20 01:27:31
CABLE    : APC Cable 940-0024B
UPSMODEL : SmartUPS
UPSMODE  : Stand Alone
UPSNAME  : UPS_IDEN
ULINE    : 124.0 Volts
MLINE    : 124.6 Volts
NLINE    : 124.0 Volts
FLINE    : 60.0 Hz
VOUTP    : 124.0 Volts
LOUTP    : 028.0 Load Capacity
BOUTP    : 27.3 Volts
BCHAR    : 100.0 Batt. Charge
BFAIL    : 0x08 Status Flag
SENSE    : HIGH
WAKEUP   : 060 Cycles
SLEEP    : 020 Cycles
LOTRANS  : 103.0 Volts
HITRANS  : 129.0 Volts
CHARGE   : 025.0 Percent
UTEMP    : 49.5 C Internal
ALARM    : Low Batt
DIPSW    : 0x0000

----> apcupsd-3.2.2 66556 Jan 27 15:24 apcupsd.c

Fixed a reporting error in /etc/apcupsd.status for CUSTOM SIMPLE cable.
Fixed a reporting error in /var/log/apcupsd.log for CUSTOM SIMPLE cable.

----> apcupsd-3.2.1 67450 Jan  8 13:41 apcupsd.c

Fixed INSTALL from "readhat" to "redhat"
Fixed INSTALL errors of "slackware"

Bug search that causes network death, lost slaves under 2.0.X only??
Bug search that causes text-powerflute to kill daemon only under 2.0.X.

----> apcupsd-3.2.0 66096 Dec 18 16:11 apcupsd.c

apcflute.c all code for reconfiguration complete.

----> apcupsd-3.1.0 65925 Dec  8 21:18 apcupsd.c

----> apcupsd-3.0.0

Now binaries only...........

----> apcupsd-2.9.9 63431 Dec  3 13:05 apcupsd.c

Fixed "for (killcount=0;killcount>3;killcount++)" bug
                                 ^ killcount<3;

Found by Piotr Kasprzyk .

----> apcupsd-2.9.8 62158 Nov 25 15