Imported Upstream version 2.7.3

This commit is contained in:
Arnaud Quette 2015-04-30 15:53:36 +02:00
parent a356b56d11
commit fd413a3168
283 changed files with 14978 additions and 6511 deletions

View file

@ -170,3 +170,7 @@ D: pwmib support for snmp-ups
N: Kjell Claesson N: Kjell Claesson
E: Kjell.claesson@epost.tidanet.se E: Kjell.claesson@epost.tidanet.se
D: Author of bcmxcp driver, 3-phase work. D: Author of bcmxcp driver, 3-phase work.
N: Giuseppe Corbelli
E: giuseppe.corbelli@copanitalia.com
D: Author of asem driver

1120
ChangeLog

File diff suppressed because it is too large Load diff

12
INSTALL
View file

@ -1,7 +1,7 @@
Installation Instructions Installation Instructions
************************* *************************
Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
Inc. Inc.
Copying and distribution of this file, with or without modification, Copying and distribution of this file, with or without modification,
@ -12,8 +12,8 @@ without warranty of any kind.
Basic Installation Basic Installation
================== ==================
Briefly, the shell commands `./configure; make; make install' should Briefly, the shell command `./configure && make && make install'
configure, build, and install this package. The following should configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented `INSTALL' file but do not implement all of the features documented
@ -309,9 +309,10 @@ causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script). overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround: an Autoconf limitation. Until the limitation is lifted, you can use
this workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation `configure' Invocation
====================== ======================
@ -367,4 +368,3 @@ operates.
`configure' also accepts some other, not widely useful, options. Run `configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details. `configure --help' for more details.

View file

@ -141,7 +141,7 @@ State path creation
Create the state path directory for the driver(s) and server to use Create the state path directory for the driver(s) and server to use
for storing UPS status data and other auxiliary files, and make it for storing UPS status data and other auxiliary files, and make it
owned by the user you created. group-writable by the group of the system user you created.
mkdir -p /var/state/ups mkdir -p /var/state/ups
chmod 0770 /var/state/ups chmod 0770 /var/state/ups
@ -183,7 +183,7 @@ drivers; this should allow you to follow the below
instructions. However, don't forget to set up the correct instructions. However, don't forget to set up the correct
permissions later!). permissions later!).
NOTE: if you are using something like devfs or udev, make sure NOTE: if you are using something like udev or devd, make sure
these permissions stay set across a reboot. If they revert to the these permissions stay set across a reboot. If they revert to the
old values, your drivers may fail to start. old values, your drivers may fail to start.

View file

@ -21,6 +21,7 @@ DISTCHECK_FLAGS = --with-all --with-ssl --with-doc=auto
DISTCHECK_LIGHT_FLAGS = --with-all=auto --with-ssl=auto --with-doc=auto DISTCHECK_LIGHT_FLAGS = --with-all=auto --with-ssl=auto --with-doc=auto
DISTCHECK_CONFIGURE_FLAGS = ${DISTCHECK_FLAGS} \ DISTCHECK_CONFIGURE_FLAGS = ${DISTCHECK_FLAGS} \
--with-systemdsystemunitdir='$${prefix}/lib/systemd/system' \
--with-hotplug-dir='$${prefix}/etc/hotplug' \ --with-hotplug-dir='$${prefix}/etc/hotplug' \
--with-udev-dir='$${prefix}/etc/udev' \ --with-udev-dir='$${prefix}/etc/udev' \
--with-devd-dir='$${prefix}/etc/devd' --with-devd-dir='$${prefix}/etc/devd'
@ -36,15 +37,23 @@ distcheck-light:
distcleancheck: distcleancheck:
@: @:
# ----------------------------------------------------------------------
# Automatically generate the ChangeLog from Git logs: # Automatically generate the ChangeLog from Git logs:
MAINTAINERCLEAN_FILES = ChangeLog MAINTAINERCLEAN_FILES = ChangeLog
# Older boundary of the ChangeLog commits range
# It can be a tag ('v2.2.0'), a commit hash, a date, ...
# See gitrevisions for more information on specifying ranges
GITLOG_START_POINT=v2.6.0
# Force ChangeLog regeneration upon make dist (due to nonexistant 'dummy-stamp'), # Force ChangeLog regeneration upon make dist (due to nonexistant 'dummy-stamp'),
# in case it has already been generated previously # in case it has already been generated previously
dummy-stamp: dummy-stamp:
ChangeLog: tools/gitlog2changelog.py dummy-stamp ChangeLog: tools/gitlog2changelog.py dummy-stamp
$(top_srcdir)/tools/gitlog2changelog.py v2.6.0 || \ $(top_srcdir)/tools/gitlog2changelog.py $(GITLOG_START_POINT) || \
echo "gitlog2changelog.py failed to generate the ChangeLog. See https://github.com/networkupstools/nut/commits/master" > $@ echo "gitlog2changelog.py failed to generate the ChangeLog. See https://github.com/networkupstools/nut/commits/master" > $@
# ----------------------------------------------------------------------
# Maintainers targets: distribution signature and hashes # Maintainers targets: distribution signature and hashes
dist-sig: dist-sig:
gpg --detach-sign nut-@PACKAGE_VERSION@.tar.gz gpg --detach-sign nut-@PACKAGE_VERSION@.tar.gz
@ -113,8 +122,7 @@ package:
cd scripts/HP-UX; \ cd scripts/HP-UX; \
make package; \ make package; \
mv NUT_HPUX_package.depot NUT_HPUX_package@PACKAGE_VERSION@.depot; \ mv NUT_HPUX_package.depot NUT_HPUX_package@PACKAGE_VERSION@.depot; \
else \ elif test `uname -s` = "SunOS"; then \
if test `uname -s` = "SunOS"; then \
make; \ make; \
rm -rf @prefix@; \ rm -rf @prefix@; \
make install; \ make install; \
@ -122,5 +130,9 @@ package:
make package; \ make package; \
make uninstall; \ make uninstall; \
rm -rf @prefix@; \ rm -rf @prefix@; \
fi; \ elif test `uname -s` = "AIX"; then \
make dist; \
cp scripts/Aix/nut-aix.spec /usr/src/packages/SPECS; \
cp scripts/Aix/nut.init nut-*.tar.gz /usr/src/packages/SOURCES; \
rpm -ba /usr/src/packages/SPECS/nut-aix.spec; \
fi; fi;

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.6 from Makefile.am. # Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2013 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -17,23 +16,51 @@
# top-level Makefile for NUT # top-level Makefile for NUT
VPATH = @srcdir@ VPATH = @srcdir@
am__make_dryrun = \ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
{ \ am__make_running_with_option = \
am__dry=no; \ case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \ case $$MAKEFLAGS in \
*\\[\ \ ]*) \ *\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ bs=\\; \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
*) \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \ esac; \
done;; \ fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \ esac; \
test $$am__dry = yes; \ case $$flg in \
} *$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -54,14 +81,16 @@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
target_triplet = @target@ target_triplet = @target@
subdir = . subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
$(srcdir)/Makefile.in $(top_srcdir)/configure \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/configure $(am__configure_deps) \
$(top_srcdir)/scripts/Aix/nut-aix.spec.in \
$(top_srcdir)/scripts/avahi/nut.service.in \
$(top_srcdir)/scripts/HP-UX/nut.psf.in \ $(top_srcdir)/scripts/HP-UX/nut.psf.in \
$(top_srcdir)/scripts/HP-UX/postinstall.in \ $(top_srcdir)/scripts/HP-UX/postinstall.in \
$(top_srcdir)/scripts/avahi/nut.service.in \ $(top_srcdir)/scripts/ufw/nut.ufw.profile.in COPYING TODO \
$(top_srcdir)/scripts/ufw/nut.ufw.profile.in AUTHORS COPYING \ compile config.guess config.sub depcomp install-sh missing \
ChangeLog INSTALL NEWS TODO compile config.guess config.sub \ ltmain.sh
depcomp install-sh ltmain.sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@ -90,18 +119,32 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = scripts/avahi/nut.service scripts/HP-UX/nut.psf \ CONFIG_CLEAN_FILES = scripts/Aix/nut-aix.spec \
scripts/avahi/nut.service scripts/HP-UX/nut.psf \
scripts/HP-UX/postinstall scripts/ufw/nut.ufw.profile scripts/HP-UX/postinstall scripts/ufw/nut.ufw.profile
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES = SOURCES =
DIST_SOURCES = DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
html-recursive info-recursive install-data-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \
install-dvi-recursive install-exec-recursive \ install-data-recursive install-dvi-recursive \
install-html-recursive install-info-recursive \ install-exec-recursive install-html-recursive \
install-pdf-recursive install-ps-recursive install-recursive \ install-info-recursive install-pdf-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \
ps-recursive uninstall-recursive installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \ am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \ case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \ n|no|NO) false;; \
@ -109,11 +152,32 @@ am__can_run_installinfo = \
esac esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ am__recursive_targets = \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ $(RECURSIVE_TARGETS) \
distdir dist dist-all distcheck $(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags ETAGS = etags
CTAGS = ctags CTAGS = ctags
CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS) DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION) distdir = $(PACKAGE)-$(VERSION)
@ -124,6 +188,7 @@ am__remove_distdir = \
&& rm -rf "$(distdir)" \ && rm -rf "$(distdir)" \
|| { sleep 5 && rm -rf "$(distdir)"; }; \ || { sleep 5 && rm -rf "$(distdir)"; }; \
else :; fi else :; fi
am__post_remove_distdir = $(am__remove_distdir)
am__relativize = \ am__relativize = \
dir0=`pwd`; \ dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@ -151,6 +216,7 @@ am__relativize = \
reldir="$$dir2" reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best GZIP_ENV = --best
DIST_TARGETS = dist-gzip
distuninstallcheck_listfiles = find . -type f -print distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@ -158,6 +224,7 @@ distcleancheck_listfiles = find . -type f -print
A2X = @A2X@ A2X = @A2X@
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
ASCIIDOC = @ASCIIDOC@ ASCIIDOC = @ASCIIDOC@
ASPELL = @ASPELL@ ASPELL = @ASPELL@
@ -264,12 +331,15 @@ SED = @SED@
SERLIBS = @SERLIBS@ SERLIBS = @SERLIBS@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
SOURCE_HIGHLIGHT = @SOURCE_HIGHLIGHT@
STATEPATH = @STATEPATH@ STATEPATH = @STATEPATH@
STRIP = @STRIP@ STRIP = @STRIP@
SUN_LIBUSB = @SUN_LIBUSB@ SUN_LIBUSB = @SUN_LIBUSB@
TREE_VERSION = @TREE_VERSION@ TREE_VERSION = @TREE_VERSION@
VERSION = @VERSION@ VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@ WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
XMLLINT = @XMLLINT@
XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
@ -314,6 +384,7 @@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
now = @now@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
pdfdir = @pdfdir@ pdfdir = @pdfdir@
pkgconfigdir = @pkgconfigdir@ pkgconfigdir = @pkgconfigdir@
@ -356,14 +427,21 @@ EXTRA_DIST = INSTALL.nut LICENSE-GPL2 LICENSE-GPL3 MAINTAINERS UPGRADING
DISTCHECK_FLAGS = --with-all --with-ssl --with-doc=auto DISTCHECK_FLAGS = --with-all --with-ssl --with-doc=auto
DISTCHECK_LIGHT_FLAGS = --with-all=auto --with-ssl=auto --with-doc=auto DISTCHECK_LIGHT_FLAGS = --with-all=auto --with-ssl=auto --with-doc=auto
DISTCHECK_CONFIGURE_FLAGS = ${DISTCHECK_FLAGS} \ DISTCHECK_CONFIGURE_FLAGS = ${DISTCHECK_FLAGS} \
--with-systemdsystemunitdir='$${prefix}/lib/systemd/system' \
--with-hotplug-dir='$${prefix}/etc/hotplug' \ --with-hotplug-dir='$${prefix}/etc/hotplug' \
--with-udev-dir='$${prefix}/etc/udev' \ --with-udev-dir='$${prefix}/etc/udev' \
--with-devd-dir='$${prefix}/etc/devd' --with-devd-dir='$${prefix}/etc/devd'
# ----------------------------------------------------------------------
# Automatically generate the ChangeLog from Git logs: # Automatically generate the ChangeLog from Git logs:
MAINTAINERCLEAN_FILES = ChangeLog MAINTAINERCLEAN_FILES = ChangeLog
# Older boundary of the ChangeLog commits range
# It can be a tag ('v2.2.0'), a commit hash, a date, ...
# See gitrevisions for more information on specifying ranges
GITLOG_START_POINT = v2.6.0
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# targets from old build system (pre-automake). # targets from old build system (pre-automake).
# supported for a period of time for backward "compatibility". # supported for a period of time for backward "compatibility".
@ -405,6 +483,8 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps): $(am__aclocal_m4_deps):
scripts/Aix/nut-aix.spec: $(top_builddir)/config.status $(top_srcdir)/scripts/Aix/nut-aix.spec.in
cd $(top_builddir) && $(SHELL) ./config.status $@
scripts/avahi/nut.service: $(top_builddir)/config.status $(top_srcdir)/scripts/avahi/nut.service.in scripts/avahi/nut.service: $(top_builddir)/config.status $(top_srcdir)/scripts/avahi/nut.service.in
cd $(top_builddir) && $(SHELL) ./config.status $@ cd $(top_builddir) && $(SHELL) ./config.status $@
scripts/HP-UX/nut.psf: $(top_builddir)/config.status $(top_srcdir)/scripts/HP-UX/nut.psf.in scripts/HP-UX/nut.psf: $(top_builddir)/config.status $(top_srcdir)/scripts/HP-UX/nut.psf.in
@ -424,22 +504,25 @@ distclean-libtool:
-rm -f libtool config.lt -rm -f libtool config.lt
# This directory's subdirectories are mostly independent; you can cd # This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile. # into them and run 'make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles, # To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status' # (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run `make'); # (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the `make' command line. # (2) otherwise, pass the desired values on the 'make' command line.
$(RECURSIVE_TARGETS): $(am__recursive_targets):
@fail= failcom='exit 1'; \ @fail=; \
for f in x $$MAKEFLAGS; do \ if $(am__make_keepgoing); then \
case $$f in \ failcom='fail=yes'; \
*=* | --[!k]*);; \ else \
*k*) failcom='fail=yes';; \ failcom='exit 1'; \
esac; \ fi; \
done; \
dot_seen=no; \ dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \ target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \ case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \ echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \ if test "$$subdir" = "."; then \
dot_seen=yes; \ dot_seen=yes; \
@ -454,57 +537,12 @@ $(RECURSIVE_TARGETS):
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail" fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS): ID: $(am__tagged_files)
@fail= failcom='exit 1'; \ $(am__define_uniq_tagged_files); mkid -fID $$unique
for f in x $$MAKEFLAGS; do \ tags: tags-recursive
case $$f in \ TAGS: tags
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \ set x; \
here=`pwd`; \ here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@ -520,12 +558,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \ fi; \
done; \ done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \ shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \ test -n "$$unique" || unique=$$empty_fix; \
@ -537,15 +570,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \ $$unique; \
fi; \ fi; \
fi fi
ctags: CTAGS ctags: ctags-recursive
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) CTAGS: ctags
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
unique=`for i in $$list; do \ $(am__define_uniq_tagged_files); \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique $$unique
@ -554,9 +583,31 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \ here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \ && $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here" && gtags -i $(GTAGS_ARGS) "$$here"
cscope: cscope.files
test ! -s cscope.files \
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
clean-cscope:
-rm -f cscope.files
cscope.files: clean-cscope cscopelist
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
distdir: $(DISTFILES) distdir: $(DISTFILES)
$(am__remove_distdir) $(am__remove_distdir)
@ -624,40 +675,42 @@ distdir: $(DISTFILES)
|| chmod -R a+r "$(distdir)" || chmod -R a+r "$(distdir)"
dist-gzip: distdir dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir) $(am__post_remove_distdir)
dist-bzip2: distdir dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__remove_distdir) $(am__post_remove_distdir)
dist-lzip: distdir dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__remove_distdir) $(am__post_remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-xz: distdir dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__remove_distdir) $(am__post_remove_distdir)
dist-tarZ: distdir dist-tarZ: distdir
@echo WARNING: "Support for shar distribution archives is" \
"deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir) $(am__post_remove_distdir)
dist-shar: distdir dist-shar: distdir
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir) $(am__post_remove_distdir)
dist-zip: distdir dist-zip: distdir
-rm -f $(distdir).zip -rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir) zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir) $(am__post_remove_distdir)
dist dist-all: distdir dist dist-all:
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
$(am__remove_distdir) $(am__post_remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then # This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another # it guarantees that the distribution is self-contained by making another
@ -668,8 +721,6 @@ distcheck: dist
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \ *.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.lz*) \ *.tar.lz*) \
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \ *.tar.xz*) \
@ -681,18 +732,19 @@ distcheck: dist
*.zip*) \ *.zip*) \
unzip $(distdir).zip ;;\ unzip $(distdir).zip ;;\
esac esac
chmod -R a-w $(distdir); chmod u+w $(distdir) chmod -R a-w $(distdir)
mkdir $(distdir)/_build chmod u+w $(distdir)
mkdir $(distdir)/_inst mkdir $(distdir)/_build $(distdir)/_inst
chmod a-w $(distdir) chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \ test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \ && am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \ && $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \ && ../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \
--srcdir=.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) check \
@ -715,7 +767,7 @@ distcheck: dist
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \ && cd "$$am__cwd" \
|| exit 1 || exit 1
$(am__remove_distdir) $(am__post_remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \ @(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
@ -839,14 +891,13 @@ ps-am:
uninstall-am: uninstall-am:
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ .MAKE: $(am__recursive_targets) install-am install-strip
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
all all-am am--refresh check check-am clean clean-generic \ am--refresh check check-am clean clean-cscope clean-generic \
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ clean-libtool cscope cscopelist-am ctags ctags-am dist \
dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
dist-zip distcheck distclean distclean-generic \ dist-xz dist-zip distcheck distclean distclean-generic \
distclean-libtool distclean-tags distcleancheck distdir \ distclean-libtool distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am info info-am \ distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \ install install-am install-data install-data-am install-dvi \
@ -856,7 +907,7 @@ uninstall-am:
install-strip installcheck installcheck-am installdirs \ install-strip installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \ installdirs-am maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
ps ps-am tags tags-recursive uninstall uninstall-am ps ps-am tags tags-am uninstall uninstall-am
distcheck-light: distcheck-light:
@ -869,13 +920,15 @@ distcheck-light:
# find . -type f -exec sh -c 'test -f $(srcdir)/{} || echo {}' ';' # find . -type f -exec sh -c 'test -f $(srcdir)/{} || echo {}' ';'
distcleancheck: distcleancheck:
@: @:
# Force ChangeLog regeneration upon make dist (due to nonexistant 'dummy-stamp'), # Force ChangeLog regeneration upon make dist (due to nonexistant 'dummy-stamp'),
# in case it has already been generated previously # in case it has already been generated previously
dummy-stamp: dummy-stamp:
ChangeLog: tools/gitlog2changelog.py dummy-stamp ChangeLog: tools/gitlog2changelog.py dummy-stamp
$(top_srcdir)/tools/gitlog2changelog.py v2.6.0 || \ $(top_srcdir)/tools/gitlog2changelog.py $(GITLOG_START_POINT) || \
echo "gitlog2changelog.py failed to generate the ChangeLog. See https://github.com/networkupstools/nut/commits/master" > $@ echo "gitlog2changelog.py failed to generate the ChangeLog. See https://github.com/networkupstools/nut/commits/master" > $@
# ----------------------------------------------------------------------
# Maintainers targets: distribution signature and hashes # Maintainers targets: distribution signature and hashes
dist-sig: dist-sig:
gpg --detach-sign nut-@PACKAGE_VERSION@.tar.gz gpg --detach-sign nut-@PACKAGE_VERSION@.tar.gz
@ -938,8 +991,7 @@ package:
cd scripts/HP-UX; \ cd scripts/HP-UX; \
make package; \ make package; \
mv NUT_HPUX_package.depot NUT_HPUX_package@PACKAGE_VERSION@.depot; \ mv NUT_HPUX_package.depot NUT_HPUX_package@PACKAGE_VERSION@.depot; \
else \ elif test `uname -s` = "SunOS"; then \
if test `uname -s` = "SunOS"; then \
make; \ make; \
rm -rf @prefix@; \ rm -rf @prefix@; \
make install; \ make install; \
@ -947,7 +999,11 @@ package:
make package; \ make package; \
make uninstall; \ make uninstall; \
rm -rf @prefix@; \ rm -rf @prefix@; \
fi; \ elif test `uname -s` = "AIX"; then \
make dist; \
cp scripts/Aix/nut-aix.spec /usr/src/packages/SPECS; \
cp scripts/Aix/nut.init nut-*.tar.gz /usr/src/packages/SOURCES; \
rpm -ba /usr/src/packages/SPECS/nut-aix.spec; \
fi; fi;
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.

70
NEWS
View file

@ -3,6 +3,76 @@ If you're upgrading from an earlier version, see the UPGRADING file.
For a complete and more detailed list of changes, please refer to the For a complete and more detailed list of changes, please refer to the
ChangeLog file. ChangeLog file.
---------------------------------------------------------------------------
Release notes for NUT 2.7.3 - what's new since 2.7.2:
- reverted POWERDOWNFLAG to /etc/killpower as in 2.6.5 (packagers may want to
put this in another filesystem, though)
- configure/make fixes for ${systemdsystemunitdir}
- apcsmart: fix command set parsing for protocol version 4 (e.g. Smart-UPS
RT 10000 XL)
- upslog: SIGUSR1 forces an immediate log entry
- riello_usb/_ser: USB interface claim fix; improved error handling
- usbhid-ups: add support for OpenUPS2 (PID: D005), Liebert GXT3 (PID: 0008)
APC AP9584 Serial->USB kit (PID: 0000), and some Powercom models
(PID: 0001). Fixed scaling for Cyberpower 0764:0501.
- USB core: do not call usb_set_altinterface(0) by default
- nutdrv_qx: added fabula, fuji USB and Voltronic-QS-HEX subdrivers; add
bestups subdriver to supersede the old standalone bestups driver
- NUT Monitor: added FreeDesktop AppData file (including screenshots)
- renamed udev rules file to 62-nut-usbups.rules (permissions fix)
- added AIX packaging
- asem: added a driver for the UPS in ASEM PB1300 embedded PCs
- solis: updated to support APC Microsol units sold in Brazil
- tripplite_usb: updated to use dv/dq charge calculation for all models (also
exposes battery_min and battery max as configuration variables); added
binary 3005 protocol support (such as for SMART500RT1U)
- genericups: better debugging while parsing the cable description flags
- all drivers: a new 'synchronous' driver flag is available for very verbose
units, such as some ePDUs
- Eaton:
* Add support for EnergySaving features for Eaton UPSs (HID USB/SHUT and
XCP USB/serial)
* Fix and complete Eaton ePDUs G2/G3 support
* ABM (Advanced Battery Monitoring) support through battery.charger.status
in HID (USB and SHUT), XCP (USB and serial) and SNMP (Powerware XUPS
MIB)
- support for new devices:
APC Back-UPS 1200BR and Back-UPS BZ2200BI-BR (Microsol)
ASEM SPA PB1300 UPS
Belkin Regulator PRO-USB
Cyber Power Systems Value 1500ELCD-RU
EUROCASE EA200N 2000VA
Fideltronik LUPUS 500
Flight Technic & International (FTUPS) FT-1000BS and FT-1000BS(T)
Grafenthal PR-3000-HS
JAWAN JW-UPSLC02
Lacerda New Orion 800VA
Mecer ME-1000-WTU
NHS Sistemas de Energia Expert C Online 6000/8000/10000
NHS Sistemas de Energia Expert S Online 6000/8000/10000
Powercom BNT-xxxAP (USB product id: 0001)
Rucelf UPOII-3000-96-EL
Tripp Lite OMNIVSINT800
Voltronic Power Apex 1KVA and Imperial 1KVA
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
Release notes for NUT 2.7.2 - what's new since 2.7.1: Release notes for NUT 2.7.2 - what's new since 2.7.1:

View file

@ -7,6 +7,30 @@ This file lists changes that affect users who installed older versions
of this software. When upgrading from an older version, be sure to of this software. When upgrading from an older version, be sure to
check this file to see if you need to make changes to your system. check this file to see if you need to make changes to your system.
Changes from 2.7.2 to 2.7.3
---------------------------
- The linkman:nutdrv_qx[8] driver will eventually supersede linkman:bestups[8].
It has been tested on a U-series Patriot Pro II. Please test the new driver
on your hardware during your next maintenance window, and report any bugs.
- If you are upgrading from a new install of 2.7.1 or 2.7.2, double-check the
value of POWERDOWNFLAG in $prefix/etc/upsmon.conf - it has been restored to
/etc/killpower as in 2.6.5 and earlier.
- If you use upslog with a large sleep value, you may be interested in adding
`killall -SIGUSR1 upslog` to any OB/OL script actions. This will force
upslog to write a log entry to catch short power transients.
- Be sure that your SSL keys are readable by the NUT system user. The SSL
subsystem is now initialized after `upsd` forks, to work around issues in the
NSS library.
- The systemd nut-server.service does not Require nut-driver to be started
successfully. This was previously preventing upsd startup, even for just
one driver failure among many. This also matches the behavior of sysV
initscripts.
Changes from 2.7.1 to 2.7.2 Changes from 2.7.1 to 2.7.2
--------------------------- ---------------------------

703
aclocal.m4 vendored

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.6 from Makefile.am. # Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2013 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -21,23 +20,51 @@
VPATH = @srcdir@ VPATH = @srcdir@
am__make_dryrun = \ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
{ \ am__make_running_with_option = \
am__dry=no; \ case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \ case $$MAKEFLAGS in \
*\\[\ \ ]*) \ *\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ bs=\\; \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
*) \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \ esac; \
done;; \ fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \ esac; \
test $$am__dry = yes; \ case $$flg in \
} *$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -67,8 +94,9 @@ sbin_PROGRAMS = upsmon$(EXEEXT) upssched$(EXEEXT)
@WITH_CGI_TRUE@ upsimage.cgi$(EXEEXT) upsset.cgi$(EXEEXT) @WITH_CGI_TRUE@ upsimage.cgi$(EXEEXT) upsset.cgi$(EXEEXT)
@WITH_SSL_TRUE@am__append_4 = $(LIBSSL_LIBS) @WITH_SSL_TRUE@am__append_4 = $(LIBSSL_LIBS)
subdir = clients subdir = clients
DIST_COMMON = $(am__include_HEADERS_DIST) $(dist_bin_SCRIPTS) \ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in $(dist_bin_SCRIPTS) $(top_srcdir)/depcomp \
$(am__include_HEADERS_DIST)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@ -131,18 +159,24 @@ LTLIBRARIES = $(lib_LTLIBRARIES)
libnutclient_la_LIBADD = libnutclient_la_LIBADD =
am_libnutclient_la_OBJECTS = nutclient.lo am_libnutclient_la_OBJECTS = nutclient.lo
libnutclient_la_OBJECTS = $(am_libnutclient_la_OBJECTS) libnutclient_la_OBJECTS = $(am_libnutclient_la_OBJECTS)
libnutclient_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ AM_V_lt = $(am__v_lt_@AM_V@)
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
$(CXXFLAGS) $(libnutclient_la_LDFLAGS) $(LDFLAGS) -o $@ am__v_lt_0 = --silent
am__v_lt_1 =
libnutclient_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
$(AM_CXXFLAGS) $(CXXFLAGS) $(libnutclient_la_LDFLAGS) \
$(LDFLAGS) -o $@
am__DEPENDENCIES_1 = am__DEPENDENCIES_1 =
@WITH_SSL_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) @WITH_SSL_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
libupsclient_la_DEPENDENCIES = ../common/libcommonclient.la \ libupsclient_la_DEPENDENCIES = ../common/libcommonclient.la \
$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_2)
am_libupsclient_la_OBJECTS = upsclient.lo am_libupsclient_la_OBJECTS = upsclient.lo
libupsclient_la_OBJECTS = $(am_libupsclient_la_OBJECTS) libupsclient_la_OBJECTS = $(am_libupsclient_la_OBJECTS)
libupsclient_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ libupsclient_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(libupsclient_la_LDFLAGS) $(LDFLAGS) -o $@ $(AM_CFLAGS) $(CFLAGS) $(libupsclient_la_LDFLAGS) $(LDFLAGS) \
-o $@
PROGRAMS = $(bin_PROGRAMS) $(cgiexec_PROGRAMS) $(sbin_PROGRAMS) PROGRAMS = $(bin_PROGRAMS) $(cgiexec_PROGRAMS) $(sbin_PROGRAMS)
am_upsc_OBJECTS = upsc.$(OBJEXT) am_upsc_OBJECTS = upsc.$(OBJEXT)
upsc_OBJECTS = $(am_upsc_OBJECTS) upsc_OBJECTS = $(am_upsc_OBJECTS)
@ -190,28 +224,58 @@ upsstats_cgi_LDADD = $(LDADD)
upsstats_cgi_DEPENDENCIES = ../common/libcommon.la libupsclient.la \ upsstats_cgi_DEPENDENCIES = ../common/libcommon.la libupsclient.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
SCRIPTS = $(dist_bin_SCRIPTS) SCRIPTS = $(dist_bin_SCRIPTS)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
depcomp = $(SHELL) $(top_srcdir)/depcomp depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles am__depfiles_maybe = depfiles
am__mv = mv -f am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
am__v_CC_0 = @echo " CC " $@;
am__v_CC_1 =
CCLD = $(CC) CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(LDFLAGS) -o $@ $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
am__v_CXX_0 = @echo " CXX " $@;
am__v_CXX_1 =
CXXLD = $(CXX) CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(LDFLAGS) -o $@ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
am__v_CXXLD_0 = @echo " CXXLD " $@;
am__v_CXXLD_1 =
SOURCES = $(libnutclient_la_SOURCES) $(libupsclient_la_SOURCES) \ SOURCES = $(libnutclient_la_SOURCES) $(libupsclient_la_SOURCES) \
$(upsc_SOURCES) $(upscmd_SOURCES) $(upsimage_cgi_SOURCES) \ $(upsc_SOURCES) $(upscmd_SOURCES) $(upsimage_cgi_SOURCES) \
$(upslog_SOURCES) $(upsmon_SOURCES) $(upsrw_SOURCES) \ $(upslog_SOURCES) $(upsmon_SOURCES) $(upsrw_SOURCES) \
@ -230,12 +294,30 @@ am__can_run_installinfo = \
am__include_HEADERS_DIST = upsclient.h ../include/parseconf.h \ am__include_HEADERS_DIST = upsclient.h ../include/parseconf.h \
nutclient.h nutclient.h
HEADERS = $(include_HEADERS) HEADERS = $(include_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags ETAGS = etags
CTAGS = ctags CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
A2X = @A2X@ A2X = @A2X@
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
ASCIIDOC = @ASCIIDOC@ ASCIIDOC = @ASCIIDOC@
ASPELL = @ASPELL@ ASPELL = @ASPELL@
@ -342,12 +424,15 @@ SED = @SED@
SERLIBS = @SERLIBS@ SERLIBS = @SERLIBS@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
SOURCE_HIGHLIGHT = @SOURCE_HIGHLIGHT@
STATEPATH = @STATEPATH@ STATEPATH = @STATEPATH@
STRIP = @STRIP@ STRIP = @STRIP@
SUN_LIBUSB = @SUN_LIBUSB@ SUN_LIBUSB = @SUN_LIBUSB@
TREE_VERSION = @TREE_VERSION@ TREE_VERSION = @TREE_VERSION@
VERSION = @VERSION@ VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@ WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
XMLLINT = @XMLLINT@
XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
@ -392,6 +477,7 @@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
now = @now@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
pdfdir = @pdfdir@ pdfdir = @pdfdir@
pkgconfigdir = @pkgconfigdir@ pkgconfigdir = @pkgconfigdir@
@ -482,6 +568,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps): $(am__aclocal_m4_deps):
install-libLTLIBRARIES: $(lib_LTLIBRARIES) install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@ -508,16 +595,20 @@ uninstall-libLTLIBRARIES:
clean-libLTLIBRARIES: clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \ @list='$(lib_LTLIBRARIES)'; \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ locs=`for p in $$list; do echo $$p; done | \
test "$$dir" != "$$p" || dir=.; \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
echo "rm -f \"$${dir}/so_locations\""; \ sort -u`; \
rm -f "$${dir}/so_locations"; \ test -z "$$locs" || { \
done echo rm -f $${locs}; \
rm -f $${locs}; \
}
libnutclient.la: $(libnutclient_la_OBJECTS) $(libnutclient_la_DEPENDENCIES) $(EXTRA_libnutclient_la_DEPENDENCIES) libnutclient.la: $(libnutclient_la_OBJECTS) $(libnutclient_la_DEPENDENCIES) $(EXTRA_libnutclient_la_DEPENDENCIES)
$(libnutclient_la_LINK) -rpath $(libdir) $(libnutclient_la_OBJECTS) $(libnutclient_la_LIBADD) $(LIBS) $(AM_V_CXXLD)$(libnutclient_la_LINK) -rpath $(libdir) $(libnutclient_la_OBJECTS) $(libnutclient_la_LIBADD) $(LIBS)
libupsclient.la: $(libupsclient_la_OBJECTS) $(libupsclient_la_DEPENDENCIES) $(EXTRA_libupsclient_la_DEPENDENCIES) libupsclient.la: $(libupsclient_la_OBJECTS) $(libupsclient_la_DEPENDENCIES) $(EXTRA_libupsclient_la_DEPENDENCIES)
$(libupsclient_la_LINK) -rpath $(libdir) $(libupsclient_la_OBJECTS) $(libupsclient_la_LIBADD) $(LIBS) $(AM_V_CCLD)$(libupsclient_la_LINK) -rpath $(libdir) $(libupsclient_la_OBJECTS) $(libupsclient_la_LIBADD) $(LIBS)
install-binPROGRAMS: $(bin_PROGRAMS) install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
@ -527,10 +618,12 @@ install-binPROGRAMS: $(bin_PROGRAMS)
fi; \ fi; \
for p in $$list; do echo "$$p $$p"; done | \ for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \ sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p || test -f $$p1; \ while read p p1; do if test -f $$p \
then echo "$$p"; echo "$$p"; else :; fi; \ || test -f $$p1 \
; then echo "$$p"; echo "$$p"; else :; fi; \
done | \ done | \
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ sed -e 'p;s,.*/,,;n;h' \
-e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \ sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@ -551,7 +644,8 @@ uninstall-binPROGRAMS:
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \ files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' `; \ -e 's/$$/$(EXEEXT)/' \
`; \
test -n "$$list" || exit 0; \ test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files cd "$(DESTDIR)$(bindir)" && rm -f $$files
@ -573,10 +667,12 @@ install-cgiexecPROGRAMS: $(cgiexec_PROGRAMS)
fi; \ fi; \
for p in $$list; do echo "$$p $$p"; done | \ for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \ sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p || test -f $$p1; \ while read p p1; do if test -f $$p \
then echo "$$p"; echo "$$p"; else :; fi; \ || test -f $$p1 \
; then echo "$$p"; echo "$$p"; else :; fi; \
done | \ done | \
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ sed -e 'p;s,.*/,,;n;h' \
-e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \ sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@ -597,7 +693,8 @@ uninstall-cgiexecPROGRAMS:
@list='$(cgiexec_PROGRAMS)'; test -n "$(cgiexecdir)" || list=; \ @list='$(cgiexec_PROGRAMS)'; test -n "$(cgiexecdir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \ files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' `; \ -e 's/$$/$(EXEEXT)/' \
`; \
test -n "$$list" || exit 0; \ test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(cgiexecdir)' && rm -f" $$files ")"; \ echo " ( cd '$(DESTDIR)$(cgiexecdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(cgiexecdir)" && rm -f $$files cd "$(DESTDIR)$(cgiexecdir)" && rm -f $$files
@ -619,10 +716,12 @@ install-sbinPROGRAMS: $(sbin_PROGRAMS)
fi; \ fi; \
for p in $$list; do echo "$$p $$p"; done | \ for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \ sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p || test -f $$p1; \ while read p p1; do if test -f $$p \
then echo "$$p"; echo "$$p"; else :; fi; \ || test -f $$p1 \
; then echo "$$p"; echo "$$p"; else :; fi; \
done | \ done | \
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ sed -e 'p;s,.*/,,;n;h' \
-e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \ sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@ -643,7 +742,8 @@ uninstall-sbinPROGRAMS:
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \ files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' `; \ -e 's/$$/$(EXEEXT)/' \
`; \
test -n "$$list" || exit 0; \ test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \ echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(sbindir)" && rm -f $$files cd "$(DESTDIR)$(sbindir)" && rm -f $$files
@ -656,33 +756,42 @@ clean-sbinPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \ echo " rm -f" $$list; \
rm -f $$list rm -f $$list
upsc$(EXEEXT): $(upsc_OBJECTS) $(upsc_DEPENDENCIES) $(EXTRA_upsc_DEPENDENCIES) upsc$(EXEEXT): $(upsc_OBJECTS) $(upsc_DEPENDENCIES) $(EXTRA_upsc_DEPENDENCIES)
@rm -f upsc$(EXEEXT) @rm -f upsc$(EXEEXT)
$(LINK) $(upsc_OBJECTS) $(upsc_LDADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(upsc_OBJECTS) $(upsc_LDADD) $(LIBS)
upscmd$(EXEEXT): $(upscmd_OBJECTS) $(upscmd_DEPENDENCIES) $(EXTRA_upscmd_DEPENDENCIES) upscmd$(EXEEXT): $(upscmd_OBJECTS) $(upscmd_DEPENDENCIES) $(EXTRA_upscmd_DEPENDENCIES)
@rm -f upscmd$(EXEEXT) @rm -f upscmd$(EXEEXT)
$(LINK) $(upscmd_OBJECTS) $(upscmd_LDADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(upscmd_OBJECTS) $(upscmd_LDADD) $(LIBS)
upsimage.cgi$(EXEEXT): $(upsimage_cgi_OBJECTS) $(upsimage_cgi_DEPENDENCIES) $(EXTRA_upsimage_cgi_DEPENDENCIES) upsimage.cgi$(EXEEXT): $(upsimage_cgi_OBJECTS) $(upsimage_cgi_DEPENDENCIES) $(EXTRA_upsimage_cgi_DEPENDENCIES)
@rm -f upsimage.cgi$(EXEEXT) @rm -f upsimage.cgi$(EXEEXT)
$(LINK) $(upsimage_cgi_OBJECTS) $(upsimage_cgi_LDADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(upsimage_cgi_OBJECTS) $(upsimage_cgi_LDADD) $(LIBS)
upslog$(EXEEXT): $(upslog_OBJECTS) $(upslog_DEPENDENCIES) $(EXTRA_upslog_DEPENDENCIES) upslog$(EXEEXT): $(upslog_OBJECTS) $(upslog_DEPENDENCIES) $(EXTRA_upslog_DEPENDENCIES)
@rm -f upslog$(EXEEXT) @rm -f upslog$(EXEEXT)
$(LINK) $(upslog_OBJECTS) $(upslog_LDADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(upslog_OBJECTS) $(upslog_LDADD) $(LIBS)
upsmon$(EXEEXT): $(upsmon_OBJECTS) $(upsmon_DEPENDENCIES) $(EXTRA_upsmon_DEPENDENCIES) upsmon$(EXEEXT): $(upsmon_OBJECTS) $(upsmon_DEPENDENCIES) $(EXTRA_upsmon_DEPENDENCIES)
@rm -f upsmon$(EXEEXT) @rm -f upsmon$(EXEEXT)
$(LINK) $(upsmon_OBJECTS) $(upsmon_LDADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(upsmon_OBJECTS) $(upsmon_LDADD) $(LIBS)
upsrw$(EXEEXT): $(upsrw_OBJECTS) $(upsrw_DEPENDENCIES) $(EXTRA_upsrw_DEPENDENCIES) upsrw$(EXEEXT): $(upsrw_OBJECTS) $(upsrw_DEPENDENCIES) $(EXTRA_upsrw_DEPENDENCIES)
@rm -f upsrw$(EXEEXT) @rm -f upsrw$(EXEEXT)
$(LINK) $(upsrw_OBJECTS) $(upsrw_LDADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(upsrw_OBJECTS) $(upsrw_LDADD) $(LIBS)
upssched$(EXEEXT): $(upssched_OBJECTS) $(upssched_DEPENDENCIES) $(EXTRA_upssched_DEPENDENCIES) upssched$(EXEEXT): $(upssched_OBJECTS) $(upssched_DEPENDENCIES) $(EXTRA_upssched_DEPENDENCIES)
@rm -f upssched$(EXEEXT) @rm -f upssched$(EXEEXT)
$(LINK) $(upssched_OBJECTS) $(upssched_LDADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(upssched_OBJECTS) $(upssched_LDADD) $(LIBS)
upsset.cgi$(EXEEXT): $(upsset_cgi_OBJECTS) $(upsset_cgi_DEPENDENCIES) $(EXTRA_upsset_cgi_DEPENDENCIES) upsset.cgi$(EXEEXT): $(upsset_cgi_OBJECTS) $(upsset_cgi_DEPENDENCIES) $(EXTRA_upsset_cgi_DEPENDENCIES)
@rm -f upsset.cgi$(EXEEXT) @rm -f upsset.cgi$(EXEEXT)
$(LINK) $(upsset_cgi_OBJECTS) $(upsset_cgi_LDADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(upsset_cgi_OBJECTS) $(upsset_cgi_LDADD) $(LIBS)
upsstats.cgi$(EXEEXT): $(upsstats_cgi_OBJECTS) $(upsstats_cgi_DEPENDENCIES) $(EXTRA_upsstats_cgi_DEPENDENCIES) upsstats.cgi$(EXEEXT): $(upsstats_cgi_OBJECTS) $(upsstats_cgi_DEPENDENCIES) $(EXTRA_upsstats_cgi_DEPENDENCIES)
@rm -f upsstats.cgi$(EXEEXT) @rm -f upsstats.cgi$(EXEEXT)
$(LINK) $(upsstats_cgi_OBJECTS) $(upsstats_cgi_LDADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(upsstats_cgi_OBJECTS) $(upsstats_cgi_LDADD) $(LIBS)
install-dist_binSCRIPTS: $(dist_bin_SCRIPTS) install-dist_binSCRIPTS: $(dist_bin_SCRIPTS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
@list='$(dist_bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ @list='$(dist_bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
@ -739,46 +848,52 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/upsstats.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/upsstats.Po@am__quote@
.c.o: .c.o:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $< @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj: .c.obj:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo: .c.lo:
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
.cpp.o: .cpp.o:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
.cpp.obj: .cpp.obj:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cpp.lo: .cpp.lo:
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
mostlyclean-libtool: mostlyclean-libtool:
-rm -f *.lo -rm -f *.lo
@ -807,26 +922,15 @@ uninstall-includeHEADERS:
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ID: $(am__tagged_files)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); mkid -fID $$unique
unique=`for i in $$list; do \ tags: tags-am
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ TAGS: tags
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(TAGS_FILES) $(LISP)
set x; \ set x; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \ shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \ test -n "$$unique" || unique=$$empty_fix; \
@ -838,15 +942,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \ $$unique; \
fi; \ fi; \
fi fi
ctags: CTAGS ctags: ctags-am
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) CTAGS: ctags
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
unique=`for i in $$list; do \ $(am__define_uniq_tagged_files); \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique $$unique
@ -855,6 +955,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \ here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \ && $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here" && gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@ -1006,25 +1121,25 @@ uninstall-am: uninstall-binPROGRAMS uninstall-cgiexecPROGRAMS \
.MAKE: install-am install-strip .MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
clean-cgiexecPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-binPROGRAMS clean-cgiexecPROGRAMS clean-generic \
clean-libtool clean-sbinPROGRAMS ctags distclean \ clean-libLTLIBRARIES clean-libtool clean-sbinPROGRAMS \
distclean-compile distclean-generic distclean-libtool \ cscopelist-am ctags ctags-am distclean distclean-compile \
distclean-tags distdir dvi dvi-am html html-am info info-am \ distclean-generic distclean-libtool distclean-tags distdir dvi \
install install-am install-binPROGRAMS install-cgiexecPROGRAMS \ dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dist_binSCRIPTS \ install-binPROGRAMS install-cgiexecPROGRAMS install-data \
install-dvi install-dvi-am install-exec install-exec-am \ install-data-am install-dist_binSCRIPTS install-dvi \
install-html install-html-am install-includeHEADERS \ install-dvi-am install-exec install-exec-am install-html \
install-info install-info-am install-libLTLIBRARIES \ install-html-am install-includeHEADERS install-info \
install-man install-pdf install-pdf-am install-ps \ install-info-am install-libLTLIBRARIES install-man install-pdf \
install-ps-am install-sbinPROGRAMS install-strip installcheck \ install-pdf-am install-ps install-ps-am install-sbinPROGRAMS \
installcheck-am installdirs maintainer-clean \ install-strip installcheck installcheck-am installdirs \
maintainer-clean-generic mostlyclean mostlyclean-compile \ maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
tags uninstall uninstall-am uninstall-binPROGRAMS \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-cgiexecPROGRAMS uninstall-dist_binSCRIPTS \ uninstall-binPROGRAMS uninstall-cgiexecPROGRAMS \
uninstall-includeHEADERS uninstall-libLTLIBRARIES \ uninstall-dist_binSCRIPTS uninstall-includeHEADERS \
uninstall-sbinPROGRAMS uninstall-libLTLIBRARIES uninstall-sbinPROGRAMS
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.

View file

@ -20,6 +20,7 @@
*/ */
#include "config.h" /* safe because it doesn't contain prototypes */ #include "config.h" /* safe because it doesn't contain prototypes */
#include "nut_platform.h"
#ifdef HAVE_PTHREAD #ifdef HAVE_PTHREAD
/* this include is needed on AIX to have errno stored in thread local storage */ /* this include is needed on AIX to have errno stored in thread local storage */
@ -41,6 +42,20 @@
#include "common.h" #include "common.h"
#include "timehead.h" #include "timehead.h"
/* WA for Solaris/i386 bug: non-blocking connect sets errno to ENOENT */
#if (defined NUT_PLATFORM_SOLARIS && CPU_TYPE == i386)
#define SOLARIS_i386_NBCONNECT_ENOENT(status) (ENOENT == (status))
#else
#define SOLARIS_i386_NBCONNECT_ENOENT(status) (0)
#endif /* end of Solaris/i386 WA for non-blocking connect */
/* WA for AIX bug: non-blocking connect sets errno to 0 */
#if (defined NUT_PLATFORM_AIX)
#define AIX_NBCONNECT_0(status) (0 == (status))
#else
#define AIX_NBCONNECT_0(status) (0)
#endif /* end of AIX WA for non-blocking connect */
#ifdef WITH_NSS #ifdef WITH_NSS
#include <prerror.h> #include <prerror.h>
#include <prinit.h> #include <prinit.h>
@ -916,7 +931,7 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru
} }
while ((v = connect(sock_fd, ai->ai_addr, ai->ai_addrlen)) < 0) { while ((v = connect(sock_fd, ai->ai_addr, ai->ai_addrlen)) < 0) {
if(errno == EINPROGRESS) { if(errno == EINPROGRESS || SOLARIS_i386_NBCONNECT_ENOENT(errno) || AIX_NBCONNECT_0(errno)) {
FD_ZERO(&wfds); FD_ZERO(&wfds);
FD_SET(sock_fd, &wfds); FD_SET(sock_fd, &wfds);
select(sock_fd+1,NULL,&wfds,NULL, select(sock_fd+1,NULL,&wfds,NULL,

View file

@ -77,6 +77,11 @@ static void set_exit_flag(int sig)
exit_flag = sig; exit_flag = sig;
} }
static void set_print_now_flag(int sig)
{
/* no need to do anything, the signal will cause sleep to be interrupted */
}
/* handlers: reload on HUP, exit on INT/QUIT/TERM */ /* handlers: reload on HUP, exit on INT/QUIT/TERM */
static void setup_signals(void) static void setup_signals(void)
{ {
@ -97,6 +102,10 @@ static void setup_signals(void)
fatal_with_errno(EXIT_FAILURE, "Can't install SIGQUIT handler"); fatal_with_errno(EXIT_FAILURE, "Can't install SIGQUIT handler");
if (sigaction(SIGTERM, &sa, NULL) < 0) if (sigaction(SIGTERM, &sa, NULL) < 0)
fatal_with_errno(EXIT_FAILURE, "Can't install SIGTERM handler"); fatal_with_errno(EXIT_FAILURE, "Can't install SIGTERM handler");
sa.sa_handler = set_print_now_flag;
if (sigaction(SIGUSR1, &sa, NULL) < 0)
fatal_with_errno(EXIT_FAILURE, "Can't install SIGUSR1 handler");
} }
static void help(const char *prog) static void help(const char *prog)

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.6 from Makefile.am. # Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2013 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -18,23 +17,51 @@
# Network UPS Tools: common # Network UPS Tools: common
VPATH = @srcdir@ VPATH = @srcdir@
am__make_dryrun = \ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
{ \ am__make_running_with_option = \
am__dry=no; \ case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \ case $$MAKEFLAGS in \
*\\[\ \ ]*) \ *\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ bs=\\; \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
*) \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \ esac; \
done;; \ fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \ esac; \
test $$am__dry = yes; \ case $$flg in \
} *$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -55,8 +82,8 @@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
target_triplet = @target@ target_triplet = @target@
subdir = common subdir = common
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in atexit.c \ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am strerror.c \
setenv.c snprintf.c strerror.c atexit.c setenv.c snprintf.c $(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@ -89,25 +116,50 @@ LTLIBRARIES = $(noinst_LTLIBRARIES)
libcommon_la_DEPENDENCIES = libparseconf.la @LTLIBOBJS@ libcommon_la_DEPENDENCIES = libparseconf.la @LTLIBOBJS@
am_libcommon_la_OBJECTS = common.lo state.lo upsconf.lo am_libcommon_la_OBJECTS = common.lo state.lo upsconf.lo
libcommon_la_OBJECTS = $(am_libcommon_la_OBJECTS) libcommon_la_OBJECTS = $(am_libcommon_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
libcommonclient_la_DEPENDENCIES = libparseconf.la @LTLIBOBJS@ libcommonclient_la_DEPENDENCIES = libparseconf.la @LTLIBOBJS@
am_libcommonclient_la_OBJECTS = common.lo state.lo am_libcommonclient_la_OBJECTS = common.lo state.lo
libcommonclient_la_OBJECTS = $(am_libcommonclient_la_OBJECTS) libcommonclient_la_OBJECTS = $(am_libcommonclient_la_OBJECTS)
libparseconf_la_LIBADD = libparseconf_la_LIBADD =
am_libparseconf_la_OBJECTS = parseconf.lo am_libparseconf_la_OBJECTS = parseconf.lo
libparseconf_la_OBJECTS = $(am_libparseconf_la_OBJECTS) libparseconf_la_OBJECTS = $(am_libparseconf_la_OBJECTS)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
depcomp = $(SHELL) $(top_srcdir)/depcomp depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles am__depfiles_maybe = depfiles
am__mv = mv -f am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
am__v_CC_0 = @echo " CC " $@;
am__v_CC_1 =
CCLD = $(CC) CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(LDFLAGS) -o $@ $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libcommon_la_SOURCES) $(libcommonclient_la_SOURCES) \ SOURCES = $(libcommon_la_SOURCES) $(libcommonclient_la_SOURCES) \
$(libparseconf_la_SOURCES) $(libparseconf_la_SOURCES)
DIST_SOURCES = $(libcommon_la_SOURCES) $(libcommonclient_la_SOURCES) \ DIST_SOURCES = $(libcommon_la_SOURCES) $(libcommonclient_la_SOURCES) \
@ -117,12 +169,30 @@ am__can_run_installinfo = \
n|no|NO) false;; \ n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \ *) (install-info --version) >/dev/null 2>&1;; \
esac esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags ETAGS = etags
CTAGS = ctags CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
A2X = @A2X@ A2X = @A2X@
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
ASCIIDOC = @ASCIIDOC@ ASCIIDOC = @ASCIIDOC@
ASPELL = @ASPELL@ ASPELL = @ASPELL@
@ -229,12 +299,15 @@ SED = @SED@
SERLIBS = @SERLIBS@ SERLIBS = @SERLIBS@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
SOURCE_HIGHLIGHT = @SOURCE_HIGHLIGHT@
STATEPATH = @STATEPATH@ STATEPATH = @STATEPATH@
STRIP = @STRIP@ STRIP = @STRIP@
SUN_LIBUSB = @SUN_LIBUSB@ SUN_LIBUSB = @SUN_LIBUSB@
TREE_VERSION = @TREE_VERSION@ TREE_VERSION = @TREE_VERSION@
VERSION = @VERSION@ VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@ WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
XMLLINT = @XMLLINT@
XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
@ -279,6 +352,7 @@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
now = @now@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
pdfdir = @pdfdir@ pdfdir = @pdfdir@
pkgconfigdir = @pkgconfigdir@ pkgconfigdir = @pkgconfigdir@
@ -351,18 +425,23 @@ $(am__aclocal_m4_deps):
clean-noinstLTLIBRARIES: clean-noinstLTLIBRARIES:
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ @list='$(noinst_LTLIBRARIES)'; \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ locs=`for p in $$list; do echo $$p; done | \
test "$$dir" != "$$p" || dir=.; \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
echo "rm -f \"$${dir}/so_locations\""; \ sort -u`; \
rm -f "$${dir}/so_locations"; \ test -z "$$locs" || { \
done echo rm -f $${locs}; \
rm -f $${locs}; \
}
libcommon.la: $(libcommon_la_OBJECTS) $(libcommon_la_DEPENDENCIES) $(EXTRA_libcommon_la_DEPENDENCIES) libcommon.la: $(libcommon_la_OBJECTS) $(libcommon_la_DEPENDENCIES) $(EXTRA_libcommon_la_DEPENDENCIES)
$(LINK) $(libcommon_la_OBJECTS) $(libcommon_la_LIBADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(libcommon_la_OBJECTS) $(libcommon_la_LIBADD) $(LIBS)
libcommonclient.la: $(libcommonclient_la_OBJECTS) $(libcommonclient_la_DEPENDENCIES) $(EXTRA_libcommonclient_la_DEPENDENCIES) libcommonclient.la: $(libcommonclient_la_OBJECTS) $(libcommonclient_la_DEPENDENCIES) $(EXTRA_libcommonclient_la_DEPENDENCIES)
$(LINK) $(libcommonclient_la_OBJECTS) $(libcommonclient_la_LIBADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(libcommonclient_la_OBJECTS) $(libcommonclient_la_LIBADD) $(LIBS)
libparseconf.la: $(libparseconf_la_OBJECTS) $(libparseconf_la_DEPENDENCIES) $(EXTRA_libparseconf_la_DEPENDENCIES) libparseconf.la: $(libparseconf_la_OBJECTS) $(libparseconf_la_DEPENDENCIES) $(EXTRA_libparseconf_la_DEPENDENCIES)
$(LINK) $(libparseconf_la_OBJECTS) $(libparseconf_la_LIBADD) $(LIBS) $(AM_V_CCLD)$(LINK) $(libparseconf_la_OBJECTS) $(libparseconf_la_LIBADD) $(LIBS)
mostlyclean-compile: mostlyclean-compile:
-rm -f *.$(OBJEXT) -rm -f *.$(OBJEXT)
@ -380,25 +459,28 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/upsconf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/upsconf.Plo@am__quote@
.c.o: .c.o:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $< @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj: .c.obj:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo: .c.lo:
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool: mostlyclean-libtool:
-rm -f *.lo -rm -f *.lo
@ -406,26 +488,15 @@ mostlyclean-libtool:
clean-libtool: clean-libtool:
-rm -rf .libs _libs -rm -rf .libs _libs
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ID: $(am__tagged_files)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); mkid -fID $$unique
unique=`for i in $$list; do \ tags: tags-am
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ TAGS: tags
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(TAGS_FILES) $(LISP)
set x; \ set x; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \ shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \ test -n "$$unique" || unique=$$empty_fix; \
@ -437,15 +508,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \ $$unique; \
fi; \ fi; \
fi fi
ctags: CTAGS ctags: ctags-am
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) CTAGS: ctags
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
unique=`for i in $$list; do \ $(am__define_uniq_tagged_files); \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique $$unique
@ -454,6 +521,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \ here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \ && $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here" && gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@ -595,18 +677,19 @@ uninstall-am:
.MAKE: install-am install-strip .MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
clean-libtool clean-noinstLTLIBRARIES ctags distclean \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
distclean-compile distclean-generic distclean-libtool \ ctags-am distclean distclean-compile distclean-generic \
distclean-tags distdir dvi dvi-am html html-am info info-am \ distclean-libtool distclean-tags distdir dvi dvi-am html \
install install-am install-data install-data-am install-dvi \ html-am info info-am install install-am install-data \
install-dvi-am install-exec install-exec-am install-html \ install-data-am install-dvi install-dvi-am install-exec \
install-html-am install-info install-info-am install-man \ install-exec-am install-html install-html-am install-info \
install-pdf install-pdf-am install-ps install-ps-am \ install-info-am install-man install-pdf install-pdf-am \
install-strip installcheck installcheck-am installdirs \ install-ps install-ps-am install-strip installcheck \
maintainer-clean maintainer-clean-generic mostlyclean \ installcheck-am installdirs maintainer-clean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ maintainer-clean-generic mostlyclean mostlyclean-compile \
pdf pdf-am ps ps-am tags uninstall uninstall-am mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.

View file

@ -586,13 +586,21 @@ char *xstrdup(const char *string)
/* modify in - strip all trailing instances of <sep> */ /* modify in - strip all trailing instances of <sep> */
char *rtrim(char *in, const char sep) char *rtrim(char *in, const char sep)
{
char seps[2] = { sep, '\0' };
return rtrim_m(in, seps);
}
/* modify in - strip all trailing instances of each char in <seps> */
char *rtrim_m(char *in, const char *seps)
{ {
char *p; char *p;
if (in) { if (in && strlen(in)) {
p = &in[strlen(in) - 1]; p = &in[strlen(in) - 1];
while ((p >= in) && (*p == sep)) while ((p >= in) && (strchr(seps, *p) != NULL))
*p-- = '\0'; *p-- = '\0';
} }
return in; return in;
@ -601,16 +609,19 @@ char *rtrim(char *in, const char sep)
/* modify in - strip all leading instances of <sep> */ /* modify in - strip all leading instances of <sep> */
char* ltrim(char *in, const char sep) char* ltrim(char *in, const char sep)
{ {
char *p; char seps[2] = { sep, '\0' };
if (in) { return ltrim_m(in, seps);
p = in;
while ((*p != '\0') && (*p == sep))
*p++ = *in++;
p = '\0';
} }
/* modify in - strip all leading instances of each char in <seps> */
char* ltrim_m(char *in, const char *seps)
{
if (in && strlen(in)) {
while ((*in != '\0') && (strchr(seps, *in) != NULL))
memmove(in, in + 1, strlen(in));
}
return in; return in;
} }

View file

@ -2,7 +2,7 @@
INSTALL_0600 = $(INSTALL) -m 0600 INSTALL_0600 = $(INSTALL) -m 0600
SECFILES = upsmon.conf.sample upsd.conf.sample upsd.users.sample SECFILES = upsd.conf.sample upsd.users.sample
PUBFILES = nut.conf.sample ups.conf.sample PUBFILES = nut.conf.sample ups.conf.sample
CGIPUB = hosts.conf.sample upsset.conf.sample upsstats.html.sample \ CGIPUB = hosts.conf.sample upsset.conf.sample upsstats.html.sample \
upsstats-single.html.sample upsstats-single.html.sample

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.6 from Makefile.am. # Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2013 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -18,23 +17,51 @@
# Network UPS Tools: conf # Network UPS Tools: conf
VPATH = @srcdir@ VPATH = @srcdir@
am__make_dryrun = \ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
{ \ am__make_running_with_option = \
am__dry=no; \ case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \ case $$MAKEFLAGS in \
*\\[\ \ ]*) \ *\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ bs=\\; \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
*) \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \ esac; \
done;; \ fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \ esac; \
test $$am__dry = yes; \ case $$flg in \
} *$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -55,9 +82,10 @@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
target_triplet = @target@ target_triplet = @target@
subdir = conf subdir = conf
DIST_COMMON = $(am__dist_sysconf_DATA_DIST) $(srcdir)/Makefile.am \ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/upsmon.conf.sample.in \ $(srcdir)/upsmon.conf.sample.in \
$(srcdir)/upssched.conf.sample.in $(srcdir)/upssched.conf.sample.in \
$(am__dist_sysconf_DATA_DIST)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@ -86,6 +114,18 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = upsmon.conf.sample upssched.conf.sample CONFIG_CLEAN_FILES = upsmon.conf.sample upssched.conf.sample
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES = SOURCES =
DIST_SOURCES = DIST_SOURCES =
am__can_run_installinfo = \ am__can_run_installinfo = \
@ -93,9 +133,9 @@ am__can_run_installinfo = \
n|no|NO) false;; \ n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \ *) (install-info --version) >/dev/null 2>&1;; \
esac esac
am__dist_sysconf_DATA_DIST = upsmon.conf.sample upsd.conf.sample \ am__dist_sysconf_DATA_DIST = upsd.conf.sample upsd.users.sample \
upsd.users.sample nut.conf.sample ups.conf.sample \ nut.conf.sample ups.conf.sample hosts.conf.sample \
hosts.conf.sample upsset.conf.sample upsstats.html.sample \ upsset.conf.sample upsstats.html.sample \
upsstats-single.html.sample upsstats-single.html.sample
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \ am__vpath_adj = case $$p in \
@ -126,10 +166,12 @@ am__uninstall_files_from_dir = { \
} }
am__installdirs = "$(DESTDIR)$(sysconfdir)" "$(DESTDIR)$(sysconfdir)" am__installdirs = "$(DESTDIR)$(sysconfdir)" "$(DESTDIR)$(sysconfdir)"
DATA = $(dist_sysconf_DATA) $(nodist_sysconf_DATA) DATA = $(dist_sysconf_DATA) $(nodist_sysconf_DATA)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
A2X = @A2X@ A2X = @A2X@
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
ASCIIDOC = @ASCIIDOC@ ASCIIDOC = @ASCIIDOC@
ASPELL = @ASPELL@ ASPELL = @ASPELL@
@ -236,12 +278,15 @@ SED = @SED@
SERLIBS = @SERLIBS@ SERLIBS = @SERLIBS@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
SOURCE_HIGHLIGHT = @SOURCE_HIGHLIGHT@
STATEPATH = @STATEPATH@ STATEPATH = @STATEPATH@
STRIP = @STRIP@ STRIP = @STRIP@
SUN_LIBUSB = @SUN_LIBUSB@ SUN_LIBUSB = @SUN_LIBUSB@
TREE_VERSION = @TREE_VERSION@ TREE_VERSION = @TREE_VERSION@
VERSION = @VERSION@ VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@ WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
XMLLINT = @XMLLINT@
XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
@ -286,6 +331,7 @@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
now = @now@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
pdfdir = @pdfdir@ pdfdir = @pdfdir@
pkgconfigdir = @pkgconfigdir@ pkgconfigdir = @pkgconfigdir@
@ -308,7 +354,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
udevdir = @udevdir@ udevdir = @udevdir@
INSTALL_0600 = $(INSTALL) -m 0600 INSTALL_0600 = $(INSTALL) -m 0600
SECFILES = upsmon.conf.sample upsd.conf.sample upsd.users.sample SECFILES = upsd.conf.sample upsd.users.sample
PUBFILES = nut.conf.sample ups.conf.sample PUBFILES = nut.conf.sample ups.conf.sample
CGIPUB = hosts.conf.sample upsset.conf.sample upsstats.html.sample \ CGIPUB = hosts.conf.sample upsset.conf.sample upsstats.html.sample \
upsstats-single.html.sample upsstats-single.html.sample
@ -402,11 +448,11 @@ uninstall-nodist_sysconfDATA:
@list='$(nodist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \ @list='$(nodist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(sysconfdir)'; $(am__uninstall_files_from_dir) dir='$(DESTDIR)$(sysconfdir)'; $(am__uninstall_files_from_dir)
tags: TAGS tags TAGS:
TAGS:
ctags: CTAGS ctags CTAGS:
CTAGS:
cscope cscopelist:
distdir: $(DISTFILES) distdir: $(DISTFILES)
@ -545,17 +591,19 @@ uninstall-am: uninstall-dist_sysconfDATA uninstall-nodist_sysconfDATA
.MAKE: install-am install-strip .MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \ .PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \ cscopelist-am ctags-am distclean distclean-generic \
dvi-am html html-am info info-am install install-am \ distclean-libtool distdir dvi dvi-am html html-am info info-am \
install-data install-data-am install-dist_sysconfDATA \ install install-am install-data install-data-am \
install-dvi install-dvi-am install-exec install-exec-am \ install-dist_sysconfDATA install-dvi install-dvi-am \
install-html install-html-am install-info install-info-am \ install-exec install-exec-am install-html install-html-am \
install-man install-nodist_sysconfDATA install-pdf \ install-info install-info-am install-man \
install-pdf-am install-ps install-ps-am install-strip \ install-nodist_sysconfDATA install-pdf install-pdf-am \
installcheck installcheck-am installdirs maintainer-clean \ install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \ maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
uninstall-dist_sysconfDATA uninstall-nodist_sysconfDATA uninstall-am uninstall-dist_sysconfDATA \
uninstall-nodist_sysconfDATA
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.

View file

@ -75,6 +75,21 @@
# #
# The default is 45 seconds. # The default is 45 seconds.
# #
# synchronous: optional. The driver work by default in asynchronous
# mode (i.e *synchronous=no*). This means that all data
# are pushed by the driver on the communication socket to
# upsd (Unix socket on Unix, Named pipe on Windows) without
# waiting for these data to be actually consumed. With
# some HW, such as ePDUs, that can produce a lot of data,
# asynchronous mode may cause some congestion, resulting in
# the socket to be full, and the driver to appear as not
# connected. By enabling the 'synchronous' flag
# (value = 'yes'), the driver will wait for data to be
# consumed by upsd, prior to publishing more. This can be
# enabled either globally or per driver.
#
# The default is 'no' (i.e. asynchronous mode) for backward
# compatibility of the driver behavior.
# #
# Anything else is passed through to the hardware-specific part of # Anything else is passed through to the hardware-specific part of
# the driver. # the driver.

View file

@ -1,377 +0,0 @@
# Network UPS Tools: example upsmon configuration
#
# This file contains passwords, so keep it secure.
# --------------------------------------------------------------------------
# RUN_AS_USER <userid>
#
# By default, upsmon splits into two processes. One stays as root and
# waits to run the SHUTDOWNCMD. The other one switches to another userid
# and does everything else.
#
# The default nonprivileged user is set at compile-time with
# 'configure --with-user=...'.
#
# You can override it with '-u <user>' when starting upsmon, or just
# define it here for convenience.
#
# Note: if you plan to use the reload feature, this file (upsmon.conf)
# must be readable by this user! Since it contains passwords, DO NOT
# make it world-readable. Also, do not make it writable by the upsmon
# user, since it creates an opportunity for an attack by changing the
# SHUTDOWNCMD to something malicious.
#
# For best results, you should create a new normal user like "nutmon",
# and make it a member of a "nut" group or similar. Then specify it
# here and grant read access to the upsmon.conf for that group.
#
# This user should not have write access to upsmon.conf.
#
# RUN_AS_USER nut
# --------------------------------------------------------------------------
# MONITOR <system> <powervalue> <username> <password> ("master"|"slave")
#
# List systems you want to monitor. Not all of these may supply power
# to the system running upsmon, but if you want to watch it, it has to
# be in this section.
#
# You must have at least one of these declared.
#
# <system> is a UPS identifier in the form <upsname>@<hostname>[:<port>]
# like ups@localhost, su700@mybox, etc.
#
# Examples:
#
# - "su700@mybox" means a UPS called "su700" on a system called "mybox"
#
# - "fenton@bigbox:5678" is a UPS called "fenton" on a system called
# "bigbox" which runs upsd on port "5678".
#
# The UPS names like "su700" and "fenton" are set in your ups.conf
# in [brackets] which identify a section for a particular driver.
#
# If the ups.conf on host "doghouse" has a section called "snoopy", the
# identifier for it would be "snoopy@doghouse".
#
# <powervalue> is an integer - the number of power supplies that this UPS
# feeds on this system. Most computers only have one power supply, so this
# is normally set to 1. You need a pretty big or special box to have any
# other value here.
#
# You can also set this to 0 for a system that doesn't supply any power,
# but you still want to monitor. Use this when you want to hear about
# changes for a given UPS without shutting down when it goes critical,
# unless <powervalue> is 0.
#
# <username> and <password> must match an entry in that system's
# upsd.users. If your username is "monmaster" and your password is
# "blah", the upsd.users would look like this:
#
# [monmaster]
# password = blah
# upsmon master (or slave)
#
# "master" means this system will shutdown last, allowing the slaves
# time to shutdown first.
#
# "slave" means this system shuts down immediately when power goes critical.
#
# Examples:
#
# MONITOR myups@bigserver 1 monmaster blah master
# MONITOR su700@server.example.com 1 upsmon secretpass slave
# MONITOR myups@localhost 1 upsmon pass master (or slave)
# --------------------------------------------------------------------------
# MINSUPPLIES <num>
#
# Give the number of power supplies that must be receiving power to keep
# this system running. Most systems have one power supply, so you would
# put "1" in this field.
#
# Large/expensive server type systems usually have more, and can run with
# a few missing. The HP NetServer LH4 can run with 2 out of 4, for example,
# so you'd set that to 2. The idea is to keep the box running as long
# as possible, right?
#
# Obviously you have to put the redundant supplies on different UPS circuits
# for this to make sense! See big-servers.txt in the docs subdirectory
# for more information and ideas on how to use this feature.
MINSUPPLIES 1
# --------------------------------------------------------------------------
# SHUTDOWNCMD "<command>"
#
# upsmon runs this command when the system needs to be brought down.
#
# This should work just about everywhere ... if it doesn't, well, change it.
SHUTDOWNCMD "/sbin/shutdown -h +0"
# --------------------------------------------------------------------------
# NOTIFYCMD <command>
#
# upsmon calls this to send messages when things happen
#
# This command is called with the full text of the message as one argument.
# The environment string NOTIFYTYPE will contain the type string of
# whatever caused this event to happen.
#
# Note that this is only called for NOTIFY events that have EXEC set with
# NOTIFYFLAG. See NOTIFYFLAG below for more details.
#
# Making this some sort of shell script might not be a bad idea. For more
# information and ideas, see docs/scheduling.txt
#
# Example:
# NOTIFYCMD /usr/local/ups/bin/notifyme
# --------------------------------------------------------------------------
# POLLFREQ <n>
#
# Polling frequency for normal activities, measured in seconds.
#
# Adjust this to keep upsmon from flooding your network, but don't make
# it too high or it may miss certain short-lived power events.
POLLFREQ 5
# --------------------------------------------------------------------------
# POLLFREQALERT <n>
#
# Polling frequency in seconds while UPS on battery.
#
# You can make this number lower than POLLFREQ, which will make updates
# faster when any UPS is running on battery. This is a good way to tune
# network load if you have a lot of these things running.
#
# The default is 5 seconds for both this and POLLFREQ.
POLLFREQALERT 5
# --------------------------------------------------------------------------
# HOSTSYNC - How long upsmon will wait before giving up on another upsmon
#
# The master upsmon process uses this number when waiting for slaves to
# disconnect once it has set the forced shutdown (FSD) flag. If they
# don't disconnect after this many seconds, it goes on without them.
#
# Similarly, upsmon slave processes wait up to this interval for the
# master upsmon to set FSD when a UPS they are monitoring goes critical -
# that is, on battery and low battery. If the master doesn't do its job,
# the slaves will shut down anyway to avoid damage to the file systems.
#
# This "wait for FSD" is done to avoid races where the status changes
# to critical and back between polls by the master.
HOSTSYNC 15
# --------------------------------------------------------------------------
# DEADTIME - Interval to wait before declaring a stale ups "dead"
#
# upsmon requires a UPS to provide status information every few seconds
# (see POLLFREQ and POLLFREQALERT) to keep things updated. If the status
# fetch fails, the UPS is marked stale. If it stays stale for more than
# DEADTIME seconds, the UPS is marked dead.
#
# A dead UPS that was last known to be on battery is assumed to have gone
# to a low battery condition. This may force a shutdown if it is providing
# a critical amount of power to your system.
#
# Note: DEADTIME should be a multiple of POLLFREQ and POLLFREQALERT.
# Otherwise you'll have "dead" UPSes simply because upsmon isn't polling
# them quickly enough. Rule of thumb: take the larger of the two
# POLLFREQ values, and multiply by 3.
DEADTIME 15
# --------------------------------------------------------------------------
# POWERDOWNFLAG - Flag file for forcing UPS shutdown on the master system
#
# upsmon will create a file with this name in master mode when it's time
# to shut down the load. You should check for this file's existence in
# your shutdown scripts and run 'upsdrvctl shutdown' if it exists.
#
# See the shutdown.txt file in the docs subdirectory for more information.
POWERDOWNFLAG /etc/nut/killpower
# --------------------------------------------------------------------------
# NOTIFYMSG - change messages sent by upsmon when certain events occur
#
# You can change the default messages to something else if you like.
#
# NOTIFYMSG <notify type> "message"
#
# NOTIFYMSG ONLINE "UPS %s on line power"
# NOTIFYMSG ONBATT "UPS %s on battery"
# NOTIFYMSG LOWBATT "UPS %s battery is low"
# NOTIFYMSG FSD "UPS %s: forced shutdown in progress"
# NOTIFYMSG COMMOK "Communications with UPS %s established"
# NOTIFYMSG COMMBAD "Communications with UPS %s lost"
# NOTIFYMSG SHUTDOWN "Auto logout and shutdown proceeding"
# NOTIFYMSG REPLBATT "UPS %s battery needs to be replaced"
# NOTIFYMSG NOCOMM "UPS %s is unavailable"
# NOTIFYMSG NOPARENT "upsmon parent process died - shutdown impossible"
#
# Note that %s is replaced with the identifier of the UPS in question.
#
# Possible values for <notify type>:
#
# ONLINE : UPS is back online
# ONBATT : UPS is on battery
# LOWBATT : UPS has a low battery (if also on battery, it's "critical")
# FSD : UPS is being shutdown by the master (FSD = "Forced Shutdown")
# COMMOK : Communications established with the UPS
# COMMBAD : Communications lost to the UPS
# SHUTDOWN : The system is being shutdown
# REPLBATT : The UPS battery is bad and needs to be replaced
# NOCOMM : A UPS is unavailable (can't be contacted for monitoring)
# NOPARENT : The process that shuts down the system has died (shutdown impossible)
# --------------------------------------------------------------------------
# NOTIFYFLAG - change behavior of upsmon when NOTIFY events occur
#
# By default, upsmon sends walls (global messages to all logged in users)
# and writes to the syslog when things happen. You can change this.
#
# NOTIFYFLAG <notify type> <flag>[+<flag>][+<flag>] ...
#
# NOTIFYFLAG ONLINE SYSLOG+WALL
# NOTIFYFLAG ONBATT SYSLOG+WALL
# NOTIFYFLAG LOWBATT SYSLOG+WALL
# NOTIFYFLAG FSD SYSLOG+WALL
# NOTIFYFLAG COMMOK SYSLOG+WALL
# NOTIFYFLAG COMMBAD SYSLOG+WALL
# NOTIFYFLAG SHUTDOWN SYSLOG+WALL
# NOTIFYFLAG REPLBATT SYSLOG+WALL
# NOTIFYFLAG NOCOMM SYSLOG+WALL
# NOTIFYFLAG NOPARENT SYSLOG+WALL
#
# Possible values for the flags:
#
# SYSLOG - Write the message in the syslog
# WALL - Write the message to all users on the system
# EXEC - Execute NOTIFYCMD (see above) with the message
# IGNORE - Don't do anything
#
# If you use IGNORE, don't use any other flags on the same line.
# --------------------------------------------------------------------------
# RBWARNTIME - replace battery warning time in seconds
#
# upsmon will normally warn you about a battery that needs to be replaced
# every 43200 seconds, which is 12 hours. It does this by triggering a
# NOTIFY_REPLBATT which is then handled by the usual notify structure
# you've defined above.
#
# If this number is not to your liking, override it here.
RBWARNTIME 43200
# --------------------------------------------------------------------------
# NOCOMMWARNTIME - no communications warning time in seconds
#
# upsmon will let you know through the usual notify system if it can't
# talk to any of the UPS entries that are defined in this file. It will
# trigger a NOTIFY_NOCOMM by default every 300 seconds unless you
# change the interval with this directive.
NOCOMMWARNTIME 300
# --------------------------------------------------------------------------
# FINALDELAY - last sleep interval before shutting down the system
#
# On a master, upsmon will wait this long after sending the NOTIFY_SHUTDOWN
# before executing your SHUTDOWNCMD. If you need to do something in between
# those events, increase this number. Remember, at this point your UPS is
# almost depleted, so don't make this too high.
#
# Alternatively, you can set this very low so you don't wait around when
# it's time to shut down. Some UPSes don't give much warning for low
# battery and will require a value of 0 here for a safe shutdown.
#
# Note: If FINALDELAY on the slave is greater than HOSTSYNC on the master,
# the master will give up waiting for the slave to disconnect.
FINALDELAY 5
# --------------------------------------------------------------------------
# CERTPATH - path to certificates (database directory or directory with CA's)
#
# When compiled with SSL support, you can enter the certificate path here.
#
# With NSS:
# Certificates are stored in a dedicated database (splitted in 3 files).
# Specify the path of the database directory.
#
# CERTPATH /etc/nut/cert/upsmon
#
# With OpenSSL:
# Directory containing CA certificates in PEM format, used to verify
# the server certificate presented by the upsd server. The files each
# contain one CA certificate. The files are looked up by the CA subject
# name hash value, which must hence be available.
#
# CERTPATH /usr/ssl/certs
#
# See 'docs/security.txt' or the Security chapter of NUT user manual
# for more information on the SSL support in NUT.
# --------------------------------------------------------------------------
# CERTIDENT - self certificate name and database password
# CERTIDENT <certificate name> <database password>
#
# When compiled with SSL support with NSS, you can specify the certificate
# name to retrieve from database to authenticate itself and the password
# required to access certificate related private key.
#
# CERTIDENT "my nut monitor" "MyPasSw0rD"
#
# See 'docs/security.txt' or the Security chapter of NUT user manual
# for more information on the SSL support in NUT.
# --------------------------------------------------------------------------
# CERTHOST - security properties for an host
# CERTHOST <hostname> <certificate name> <certverify> <forcessl>
#
# When compiled with SSL support with NSS, you can specify security directive
# for each server you can contact.
# Each entry maps server name with the expected certificate name and flags
# indicating if the server certificate is verified and if the connection
# must be secure.
#
# CERTHOST localhost "My nut server" 1 1
#
# See 'docs/security.txt' or the Security chapter of NUT user manual
# for more information on the SSL support in NUT.
# --------------------------------------------------------------------------
# CERTVERIFY - make upsmon verify all connections with certificates
# CERTVERIFY 1
#
# When compiled with SSL support, make upsmon verify all connections with
# certificates.
# Without this, there is no guarantee that the upsd is the right host.
# Enabling this greatly reduces the risk of man in the middle attacks.
# This effectively forces the use of SSL, so don't use this unless
# all of your upsd hosts are ready for SSL and have their certificates
# in order.
# When compiled with NSS support of SSL, can be overriden for host
# specified with a CERTHOST directive.
# --------------------------------------------------------------------------
# FORCESSL - force upsmon to use SSL
# FORCESSL 1
#
# When compiled with SSL, specify that a secured connection must be used
# to communicate with upsd.
# If you don't use 'CERTVERIFY 1', then this will at least make sure
# that nobody can sniff your sessions without a large effort. Setting
# this will make upsmon drop connections if the remote upsd doesn't
# support SSL, so don't use it unless all of them have it running.
# When compiled with NSS support of SSL, can be overriden for host
# specified with a CERTHOST directive.

View file

@ -194,9 +194,12 @@ DEADTIME 15
# to shut down the load. You should check for this file's existence in # to shut down the load. You should check for this file's existence in
# your shutdown scripts and run 'upsdrvctl shutdown' if it exists. # your shutdown scripts and run 'upsdrvctl shutdown' if it exists.
# #
# See the shutdown.txt file in the docs subdirectory for more information. # See the config-notes.txt file in the docs subdirectory for more information.
# Refer to the section:
# [[UPS_shutdown]] "Configuring automatic shutdowns for low battery events"
# or refer to the online version.
POWERDOWNFLAG @CONFPATH@/killpower POWERDOWNFLAG /etc/killpower
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# NOTIFYMSG - change messages sent by upsmon when certain events occur # NOTIFYMSG - change messages sent by upsmon when certain events occur

332
config.guess vendored
View file

@ -1,14 +1,12 @@
#! /bin/sh #! /bin/sh
# Attempt to guess a canonical system name. # Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # Copyright 1992-2014 Free Software Foundation, Inc.
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011, 2012 Free Software Foundation, Inc.
timestamp='2012-02-10' timestamp='2014-03-23'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or # the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful, but
@ -22,19 +20,17 @@ timestamp='2012-02-10'
# As a special exception to the GNU General Public License, if you # As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a # distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under # configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program. # the same distribution terms that you use for the rest of that
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
# Originally written by Per Bothner. Please send patches (context
# diff format) to <config-patches@gnu.org> and include a ChangeLog
# entry.
# #
# This script attempts to guess a canonical system name similar to # Originally written by Per Bothner.
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
# #
# You can get the latest version of this script from: # You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
#
# Please send patches with a ChangeLog entry to config-patches@gnu.org.
me=`echo "$0" | sed -e 's,.*/,,'` me=`echo "$0" | sed -e 's,.*/,,'`
@ -54,9 +50,7 @@ version="\
GNU config.guess ($timestamp) GNU config.guess ($timestamp)
Originally written by Per Bothner. Originally written by Per Bothner.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, Copyright 1992-2014 Free Software Foundation, Inc.
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@ -138,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
case "${UNAME_SYSTEM}" in
Linux|GNU|GNU/*)
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
LIBC=gnu
eval $set_cc_for_build
cat <<-EOF > $dummy.c
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
#else
LIBC=gnu
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
;;
esac
# Note: order is significant - the case branches are not exclusive. # Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@ -200,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}" echo "${machine}-${os}${release}"
exit ;; exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
exit ;;
*:OpenBSD:*:*) *:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@ -302,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE} echo arm-acorn-riscix${UNAME_RELEASE}
exit ;; exit ;;
arm:riscos:*:*|arm:RISCOS:*:*) arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos echo arm-unknown-riscos
exit ;; exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@ -801,10 +820,13 @@ EOF
i*:CYGWIN*:*) i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin echo ${UNAME_MACHINE}-pc-cygwin
exit ;; exit ;;
*:MINGW64*:*)
echo ${UNAME_MACHINE}-pc-mingw64
exit ;;
*:MINGW*:*) *:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32 echo ${UNAME_MACHINE}-pc-mingw32
exit ;; exit ;;
i*:MSYS*:*) *:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys echo ${UNAME_MACHINE}-pc-msys
exit ;; exit ;;
i*:windows32*:*) i*:windows32*:*)
@ -852,21 +874,21 @@ EOF
exit ;; exit ;;
*:GNU:*:*) *:GNU:*:*)
# the GNU system # the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit ;; exit ;;
*:GNU/*:*:*) *:GNU/*:*:*)
# other systems with GNU libc and userland # other systems with GNU libc and userland
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
exit ;; exit ;;
i*86:Minix:*:*) i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix echo ${UNAME_MACHINE}-pc-minix
exit ;; exit ;;
aarch64:Linux:*:*) aarch64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
aarch64_be:Linux:*:*) aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be UNAME_MACHINE=aarch64_be
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
alpha:Linux:*:*) alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@ -879,59 +901,54 @@ EOF
EV68*) UNAME_MACHINE=alphaev68 ;; EV68*) UNAME_MACHINE=alphaev68 ;;
esac esac
objdump --private-headers /bin/sh | grep -q ld.so.1 objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
arc:Linux:*:* | arceb:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
arm*:Linux:*:*) arm*:Linux:*:*)
eval $set_cc_for_build eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__ | grep -q __ARM_EABI__
then then
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
else else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP | grep -q __ARM_PCS_VFP
then then
echo ${UNAME_MACHINE}-unknown-linux-gnueabi echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
else else
echo ${UNAME_MACHINE}-unknown-linux-gnueabihf echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
fi fi
fi fi
exit ;; exit ;;
avr32*:Linux:*:*) avr32*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
cris:Linux:*:*) cris:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-gnu echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;; exit ;;
crisv32:Linux:*:*) crisv32:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-gnu echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;; exit ;;
frv:Linux:*:*) frv:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
hexagon:Linux:*:*) hexagon:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
i*86:Linux:*:*) i*86:Linux:*:*)
LIBC=gnu echo ${UNAME_MACHINE}-pc-linux-${LIBC}
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#ifdef __dietlibc__
LIBC=dietlibc
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
exit ;; exit ;;
ia64:Linux:*:*) ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
m32r*:Linux:*:*) m32r*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
m68*:Linux:*:*) m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
mips:Linux:*:* | mips64:Linux:*:*) mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build eval $set_cc_for_build
@ -950,54 +967,63 @@ EOF
#endif #endif
EOF EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;; ;;
or32:Linux:*:*) openrisc*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo or1k-unknown-linux-${LIBC}
exit ;;
or32:Linux:*:* | or1k*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
padre:Linux:*:*) padre:Linux:*:*)
echo sparc-unknown-linux-gnu echo sparc-unknown-linux-${LIBC}
exit ;; exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*) parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu echo hppa64-unknown-linux-${LIBC}
exit ;; exit ;;
parisc:Linux:*:* | hppa:Linux:*:*) parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level # Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA7*) echo hppa1.1-unknown-linux-gnu ;; PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
PA8*) echo hppa2.0-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
*) echo hppa-unknown-linux-gnu ;; *) echo hppa-unknown-linux-${LIBC} ;;
esac esac
exit ;; exit ;;
ppc64:Linux:*:*) ppc64:Linux:*:*)
echo powerpc64-unknown-linux-gnu echo powerpc64-unknown-linux-${LIBC}
exit ;; exit ;;
ppc:Linux:*:*) ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu echo powerpc-unknown-linux-${LIBC}
exit ;;
ppc64le:Linux:*:*)
echo powerpc64le-unknown-linux-${LIBC}
exit ;;
ppcle:Linux:*:*)
echo powerpcle-unknown-linux-${LIBC}
exit ;; exit ;;
s390:Linux:*:* | s390x:Linux:*:*) s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
exit ;; exit ;;
sh64*:Linux:*:*) sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
sh*:Linux:*:*) sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*) sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
tile*:Linux:*:*) tile*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
vax:Linux:*:*) vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-gnu echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;; exit ;;
x86_64:Linux:*:*) x86_64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
xtensa*:Linux:*:*) xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
i*86:DYNIX/ptx:4*:*) i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@ -1201,6 +1227,9 @@ EOF
BePC:Haiku:*:*) # Haiku running on Intel PC compatible. BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku echo i586-pc-haiku
exit ;; exit ;;
x86_64:Haiku:*:*)
echo x86_64-unknown-haiku
exit ;;
SX-4:SUPER-UX:*:*) SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE} echo sx4-nec-superux${UNAME_RELEASE}
exit ;; exit ;;
@ -1227,19 +1256,31 @@ EOF
exit ;; exit ;;
*:Darwin:*:*) *:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in
i386)
eval $set_cc_for_build eval $set_cc_for_build
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null grep IS_64BIT_ARCH >/dev/null
then then
UNAME_PROCESSOR="x86_64" case $UNAME_PROCESSOR in
fi i386) UNAME_PROCESSOR=x86_64 ;;
fi ;; powerpc) UNAME_PROCESSOR=powerpc64 ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac esac
fi
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
# Avoid executing cc on OS X 10.9, as it ships with a stub
# that puts up a graphical alert prompting to install
# developer tools. Any system running Mac OS X 10.7 or
# later (Darwin 11 and later) is required to have a 64-bit
# processor. This is not true of the ARM version of Darwin
# that Apple uses in portable devices.
UNAME_PROCESSOR=x86_64
fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;; exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*) *:procnto*:*:* | *:QNX:[0123456789]*:*)
@ -1256,7 +1297,7 @@ EOF
NEO-?:NONSTOP_KERNEL:*:*) NEO-?:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE} echo neo-tandem-nsk${UNAME_RELEASE}
exit ;; exit ;;
NSE-?:NONSTOP_KERNEL:*:*) NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE} echo nse-tandem-nsk${UNAME_RELEASE}
exit ;; exit ;;
NSR-?:NONSTOP_KERNEL:*:*) NSR-?:NONSTOP_KERNEL:*:*)
@ -1330,157 +1371,6 @@ EOF
exit ;; exit ;;
esac esac
#echo '(No uname command or uname output not recognized.)' 1>&2
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
# include <sys/types.h>
# include <sys/utsname.h>
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd\n"); exit (0);
#else
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
printf ("arm-acorn-riscix\n"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
printf ("m68k-hp-bsd\n"); exit (0);
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
if (version < 4)
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
else
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach\n"); exit (0);
#else
printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2\n"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1\n"); exit (0);
}
printf ("i386-sequent-ptx\n"); exit (0);
#endif
#if defined (vax)
# if !defined (ultrix)
# include <sys/param.h>
# if defined (BSD)
# if BSD == 43
printf ("vax-dec-bsd4.3\n"); exit (0);
# else
# if BSD == 199006
printf ("vax-dec-bsd4.3reno\n"); exit (0);
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# endif
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# else
printf ("vax-dec-ultrix\n"); exit (0);
# endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd\n"); exit (0);
#endif
exit (1);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
# Convex versions that predate uname can use getsysinfo(1)
if [ -x /usr/convex/getsysinfo ]
then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
exit ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
c34*)
echo c34-convex-bsd
exit ;;
c38*)
echo c38-convex-bsd
exit ;;
c4*)
echo c4-convex-bsd
exit ;;
esac
fi
cat >&2 <<EOF cat >&2 <<EOF
$0: unable to guess system type $0: unable to guess system type

111
config.sub vendored
View file

@ -1,24 +1,18 @@
#! /bin/sh #! /bin/sh
# Configuration validation subroutine script. # Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # Copyright 1992-2014 Free Software Foundation, Inc.
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011, 2012 Free Software Foundation, Inc.
timestamp='2012-04-18' timestamp='2014-09-11'
# This file is (in principle) common to ALL GNU software. # This file is free software; you can redistribute it and/or modify it
# The presence of a machine in this file suggests that SOME GNU software # under the terms of the GNU General Public License as published by
# can handle that machine. It does not imply ALL GNU software can. # the Free Software Foundation; either version 3 of the License, or
#
# This file 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. # (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful, but
# but WITHOUT ANY WARRANTY; without even the implied warranty of # WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# GNU General Public License for more details. # General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>. # along with this program; if not, see <http://www.gnu.org/licenses/>.
@ -26,11 +20,12 @@ timestamp='2012-04-18'
# As a special exception to the GNU General Public License, if you # As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a # distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under # configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program. # the same distribution terms that you use for the rest of that
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
# Please send patches to <config-patches@gnu.org>. Submit a context # Please send patches with a ChangeLog entry to config-patches@gnu.org.
# diff and a properly formatted GNU ChangeLog entry.
# #
# Configuration subroutine to validate and canonicalize a configuration type. # Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument. # Supply the specified configuration type as an argument.
@ -73,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\ version="\
GNU config.sub ($timestamp) GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, Copyright 1992-2014 Free Software Foundation, Inc.
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@ -123,7 +116,7 @@ esac
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \ kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*) storm-chaos* | os2-emx* | rtmk-nova*)
@ -156,7 +149,7 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-apple | -axis | -knuth | -cray | -microblaze) -apple | -axis | -knuth | -cray | -microblaze*)
os= os=
basic_machine=$1 basic_machine=$1
;; ;;
@ -259,10 +252,12 @@ case $basic_machine in
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \ | am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | arc | arceb \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| avr | avr32 \
| be32 | be64 \ | be32 | be64 \
| bfin \ | bfin \
| c4x | clipper \ | c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \ | d10v | d30v | dlx | dsp16xx \
| epiphany \ | epiphany \
| fido | fr30 | frv \ | fido | fr30 | frv \
@ -270,10 +265,11 @@ case $basic_machine in
| hexagon \ | hexagon \
| i370 | i860 | i960 | ia64 \ | i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \ | ip2k | iq2000 \
| k1om \
| le32 | le64 \ | le32 | le64 \
| lm32 \ | lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \ | m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | mcore | mep | metag \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \ | mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \ | mips16 \
| mips64 | mips64el \ | mips64 | mips64el \
@ -287,23 +283,26 @@ case $basic_machine in
| mips64vr5900 | mips64vr5900el \ | mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \ | mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \ | mipsisa32r2 | mipsisa32r2el \
| mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \ | mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \ | mipsisa64r2 | mipsisa64r2el \
| mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \ | mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \ | mipstx39 | mipstx39el \
| mn10200 | mn10300 \ | mn10200 | mn10300 \
| moxie \ | moxie \
| mt \ | mt \
| msp430 \ | msp430 \
| nds32 | nds32le | nds32be \ | nds32 | nds32le | nds32be \
| nios | nios2 \ | nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \ | ns16k | ns32k \
| open8 \ | open8 | or1k | or1knd | or32 \
| or32 \
| pdp10 | pdp11 | pj | pjl \ | pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \ | powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \ | pyramid \
| riscv32 | riscv64 \
| rl78 | rx \ | rl78 | rx \
| score \ | score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
@ -328,7 +327,7 @@ case $basic_machine in
c6x) c6x)
basic_machine=tic6x-unknown basic_machine=tic6x-unknown
;; ;;
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown basic_machine=$basic_machine-unknown
os=-none os=-none
;; ;;
@ -370,13 +369,13 @@ case $basic_machine in
| aarch64-* | aarch64_be-* \ | aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \ | avr-* | avr32-* \
| be32-* | be64-* \ | be32-* | be64-* \
| bfin-* | bs2000-* \ | bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \
| clipper-* | craynv-* | cydra-* \ | c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \ | d10v-* | d30v-* | dlx-* \
| elxsi-* \ | elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@ -385,11 +384,13 @@ case $basic_machine in
| hexagon-* \ | hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \ | i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \ | ip2k-* | iq2000-* \
| k1om-* \
| le32-* | le64-* \ | le32-* | le64-* \
| lm32-* \ | lm32-* \
| m32c-* | m32r-* | m32rle-* \ | m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
| microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \ | mips16-* \
| mips64-* | mips64el-* \ | mips64-* | mips64el-* \
@ -403,18 +404,22 @@ case $basic_machine in
| mips64vr5900-* | mips64vr5900el-* \ | mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \ | mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa32r6-* | mipsisa32r6el-* \
| mipsisa64-* | mipsisa64el-* \ | mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64r6-* | mipsisa64r6el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \ | mipstx39-* | mipstx39el-* \
| mmix-* \ | mmix-* \
| mt-* \ | mt-* \
| msp430-* \ | msp430-* \
| nds32-* | nds32le-* | nds32be-* \ | nds32-* | nds32le-* | nds32be-* \
| nios-* | nios2-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \ | none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \ | open8-* \
| or1k*-* \
| orion-* \ | orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@ -788,11 +793,15 @@ case $basic_machine in
basic_machine=ns32k-utek basic_machine=ns32k-utek
os=-sysv os=-sysv
;; ;;
microblaze) microblaze*)
basic_machine=microblaze-xilinx basic_machine=microblaze-xilinx
;; ;;
mingw64)
basic_machine=x86_64-pc
os=-mingw64
;;
mingw32) mingw32)
basic_machine=i386-pc basic_machine=i686-pc
os=-mingw32 os=-mingw32
;; ;;
mingw32ce) mingw32ce)
@ -820,6 +829,10 @@ case $basic_machine in
basic_machine=powerpc-unknown basic_machine=powerpc-unknown
os=-morphos os=-morphos
;; ;;
moxiebox)
basic_machine=moxie-unknown
os=-moxiebox
;;
msdos) msdos)
basic_machine=i386-pc basic_machine=i386-pc
os=-msdos os=-msdos
@ -828,7 +841,7 @@ case $basic_machine in
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;; ;;
msys) msys)
basic_machine=i386-pc basic_machine=i686-pc
os=-msys os=-msys
;; ;;
mvs) mvs)
@ -1019,7 +1032,11 @@ case $basic_machine in
basic_machine=i586-unknown basic_machine=i586-unknown
os=-pw32 os=-pw32
;; ;;
rdos) rdos | rdos64)
basic_machine=x86_64-pc
os=-rdos
;;
rdos32)
basic_machine=i386-pc basic_machine=i386-pc
os=-rdos os=-rdos
;; ;;
@ -1346,29 +1363,29 @@ case $os in
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
| -sym* | -kopensolaris* \ | -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \ | -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
| -openbsd* | -solidbsd* \ | -bitrig* | -openbsd* | -solidbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \ | -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -linux-android* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-uclibc* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
# Remember, each alternative MUST END IN *, to match a version number. # Remember, each alternative MUST END IN *, to match a version number.
;; ;;
-qnx*) -qnx*)
@ -1492,9 +1509,6 @@ case $os in
-aros*) -aros*)
os=-aros os=-aros
;; ;;
-kaos*)
os=-kaos
;;
-zvmoe) -zvmoe)
os=-zvmoe os=-zvmoe
;; ;;
@ -1543,6 +1557,9 @@ case $basic_machine in
c4x-* | tic4x-*) c4x-* | tic4x-*)
os=-coff os=-coff
;; ;;
c8051-*)
os=-elf
;;
hexagon-*) hexagon-*)
os=-elf os=-elf
;; ;;

1008
configure vendored

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,9 @@
dnl +------------------------------------------------------------------+ dnl +------------------------------------------------------------------+
dnl | Network UPS Tools: configure.in | dnl | Network UPS Tools: configure.ac |
dnl +------------------------------------------------------------------+ dnl +------------------------------------------------------------------+
dnl NUT version number is defined here, with a Git suffix in include/nut_version.h dnl NUT version number is defined here, with a Git suffix in include/nut_version.h
AC_INIT(nut, 2.7.2) AC_INIT(nut, 2.7.3, [https://github.com/networkupstools/nut/issues])
AC_CONFIG_SRCDIR(server/upsd.c) AC_CONFIG_SRCDIR(server/upsd.c)
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])
echo "Network UPS Tools version ${PACKAGE_VERSION}" echo "Network UPS Tools version ${PACKAGE_VERSION}"
@ -11,7 +11,7 @@ AC_CANONICAL_SYSTEM
NUT_CHECK_OS NUT_CHECK_OS
AC_CONFIG_HEADER(include/config.h) AC_CONFIG_HEADER(include/config.h)
AC_PREFIX_DEFAULT(/usr/local/ups) AC_PREFIX_DEFAULT(/usr/local/ups)
AM_INIT_AUTOMAKE AM_INIT_AUTOMAKE([subdir-objects])
dnl we need Autoconf 2.60 or better to enable features of Posix that are extensions to C dnl we need Autoconf 2.60 or better to enable features of Posix that are extensions to C
AC_MSG_CHECKING(for autoconf macro to enable system extensions) AC_MSG_CHECKING(for autoconf macro to enable system extensions)
@ -23,7 +23,7 @@ m4_version_prereq(2.60, [
]) ])
dnl Use "./configure --enable-maintainer-mode" to keep Makefile.in and Makefile dnl Use "./configure --enable-maintainer-mode" to keep Makefile.in and Makefile
dnl in sync after SVN updates. dnl in sync after Git updates.
AM_MAINTAINER_MODE AM_MAINTAINER_MODE
dnl PKG_PROG_PKG_CONFIG dnl PKG_PROG_PKG_CONFIG
@ -42,6 +42,8 @@ dnl However, automatically define the tree version (mostly for AC_SUBST)
TREE_VERSION="`echo ${PACKAGE_VERSION} | awk '{ print substr($0,1,3) }'`" TREE_VERSION="`echo ${PACKAGE_VERSION} | awk '{ print substr($0,1,3) }'`"
AC_DEFINE_UNQUOTED(TREE_VERSION, "${TREE_VERSION}", [NUT tree version]) AC_DEFINE_UNQUOTED(TREE_VERSION, "${TREE_VERSION}", [NUT tree version])
dnl Should not be necessary, since old servers have well-defined errors for
dnl unsupported commands:
NUT_NETVERSION="1.2" NUT_NETVERSION="1.2"
AC_DEFINE_UNQUOTED(NUT_NETVERSION, "${NUT_NETVERSION}", [NUT network protocol version]) AC_DEFINE_UNQUOTED(NUT_NETVERSION, "${NUT_NETVERSION}", [NUT network protocol version])
@ -221,7 +223,7 @@ dnl check for --with-all (or --without-all, or --with-all=auto) flag
AC_MSG_CHECKING(for --with-all) AC_MSG_CHECKING(for --with-all)
AC_ARG_WITH(all, AC_ARG_WITH(all,
AS_HELP_STRING([--with-all], [enable serial, usb, snmp, neon, ipmi, powerman, cgi, dev, avahi]), AS_HELP_STRING([--with-all], [enable serial, usb, snmp, neon, ipmi, powerman, cgi, dev, avahi, linux_i2c]),
[ [
if test -n "${withval}"; then if test -n "${withval}"; then
dnl Note: we allow "no" as a positive value, because dnl Note: we allow "no" as a positive value, because
@ -235,6 +237,7 @@ AC_ARG_WITH(all,
if test -z "${with_dev}"; then with_dev="${withval}"; fi if test -z "${with_dev}"; then with_dev="${withval}"; fi
if test -z "${with_avahi}"; then with_avahi="${withval}"; fi if test -z "${with_avahi}"; then with_avahi="${withval}"; fi
if test -z "${with_ipmi}"; then with_ipmi="${withval}"; fi if test -z "${with_ipmi}"; then with_ipmi="${withval}"; fi
if test -z "${with_linux_i2c}"; then with_linux_i2c="${withval}"; fi
AC_MSG_RESULT("${withval}") AC_MSG_RESULT("${withval}")
else else
AC_MSG_RESULT(not given) AC_MSG_RESULT(not given)
@ -464,6 +467,35 @@ NUT_REPORT_FEATURE([build Mac OS X meta-driver],
[${nut_with_macosx_ups}], [${nut_macosx_ups_lib}], [${nut_with_macosx_ups}], [${nut_macosx_ups_lib}],
[WITH_MACOSX], [Define to enable Mac OS X meta-driver]) [WITH_MACOSX], [Define to enable Mac OS X meta-driver])
dnl ----------------------------------------------------------------------
dnl checks related to --with_linux_i2c
dnl Check for i2c header on Linux, used for ASEM UPS driver
NUT_ARG_WITH([linux_i2c], [build and install i2c drivers], [auto])
if test "${nut_with_linux_i2c}" != no; then
case ${target_os} in
linux* )
AC_CHECK_DECLS(
[i2c_smbus_read_word_data, i2c_smbus_write_word_data, i2c_smbus_read_block_data],
[nut_with_linux_i2c="yes"],
[nut_with_linux_i2c="no"],
[#include <stdio.h>
#include <linux/i2c-dev.h>
]
)
;;
* )
nut_with_linux_i2c="no"
;;
esac
fi
NUT_REPORT_FEATURE(
[build i2c based drivers],
[${nut_with_linux_i2c}],
[],
[WITH_LINUX_I2C],
[Define to enable I2C support]
)
dnl ---------------------------------------------------------------------- dnl ----------------------------------------------------------------------
dnl Check for with-ssl, and --with-nss or --with-openssl dnl Check for with-ssl, and --with-nss or --with-openssl
dnl Only one can be enabled at a time, with a preference for OpenSSL dnl Only one can be enabled at a time, with a preference for OpenSSL
@ -611,7 +643,7 @@ esac
for nut_doc_build_target in ${nut_doc_build_list}; do for nut_doc_build_target in ${nut_doc_build_list}; do
case "${nut_doc_build_target}" in case "${nut_doc_build_target}" in
html-single) html-single)
AC_MSG_CHECKING([if asciidoc version can build ${nut_doc_build_target}]) AC_MSG_CHECKING([if asciidoc version can build ${nut_doc_build_target} (minimum required 8.6.3)])
AX_COMPARE_VERSION([${ASCIIDOC_VERSION}], [ge], [8.6.3], [ AX_COMPARE_VERSION([${ASCIIDOC_VERSION}], [ge], [8.6.3], [
AC_MSG_RESULT(yes) AC_MSG_RESULT(yes)
DOC_BUILD_LIST="${DOC_BUILD_LIST} ${nut_doc_build_target}" DOC_BUILD_LIST="${DOC_BUILD_LIST} ${nut_doc_build_target}"
@ -622,7 +654,7 @@ for nut_doc_build_target in ${nut_doc_build_list}; do
;; ;;
html-chunked) html-chunked)
AC_MSG_CHECKING([if a2x version can build ${nut_doc_build_target}]) AC_MSG_CHECKING([if a2x version can build ${nut_doc_build_target} (minimum required 8.6.3)])
AX_COMPARE_VERSION([${A2X_VERSION}], [ge], [8.6.3], [ AX_COMPARE_VERSION([${A2X_VERSION}], [ge], [8.6.3], [
AC_MSG_RESULT(yes) AC_MSG_RESULT(yes)
DOC_BUILD_LIST="${DOC_BUILD_LIST} ${nut_doc_build_target}" DOC_BUILD_LIST="${DOC_BUILD_LIST} ${nut_doc_build_target}"
@ -633,7 +665,7 @@ for nut_doc_build_target in ${nut_doc_build_list}; do
;; ;;
pdf) pdf)
AC_MSG_CHECKING([if dblatex version can build ${nut_doc_build_target}]) AC_MSG_CHECKING([if dblatex version can build ${nut_doc_build_target} (minimum required 0.2.5)])
AX_COMPARE_VERSION([${DBLATEX_VERSION}], [ge], [0.2.5], [ AX_COMPARE_VERSION([${DBLATEX_VERSION}], [ge], [0.2.5], [
AC_MSG_RESULT(yes) AC_MSG_RESULT(yes)
DOC_BUILD_LIST="${DOC_BUILD_LIST} ${nut_doc_build_target}" DOC_BUILD_LIST="${DOC_BUILD_LIST} ${nut_doc_build_target}"
@ -659,7 +691,7 @@ no)
if test -z "${DOC_NOBUILD_LIST}"; then if test -z "${DOC_NOBUILD_LIST}"; then
nut_with_doc="yes" nut_with_doc="yes"
else else
AC_MSG_ERROR(["Unable to build ${DOC_NOBUILD_LIST} documentation"]) AC_MSG_ERROR(["Unable to build ${DOC_NOBUILD_LIST} documentation (check for 'no' results above)"])
fi fi
;; ;;
esac esac
@ -681,6 +713,31 @@ AX_COMPARE_VERSION([${A2X_VERSION}], [ge], [8.6.3], [
nut_have_asciidoc="no" nut_have_asciidoc="no"
]) ])
dnl TODO: test for docbook-xsl files (maybe build a test man page?)
dnl https://github.com/networkupstools/nut/issues/162
AC_MSG_CHECKING([if xsltproc is present (mandatory for man page regeneration)])
if test -n "${XSLTPROC}"; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
nut_have_asciidoc="no"
fi
AC_MSG_CHECKING([if xmllint is present (mandatory for man page regeneration)])
if test -n "${XMLLINT}"; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
nut_have_asciidoc="no"
fi
AC_MSG_CHECKING([if source-highlight is present (preferable for documentation generation)])
if test -n "${SOURCE_HIGHLIGHT}"; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
NUT_REPORT_FEATURE([build and install documentation], [${nut_with_doc}], [], NUT_REPORT_FEATURE([build and install documentation], [${nut_with_doc}], [],
[WITH_ASCIIDOC], [Define to enable Asciidoc support]) [WITH_ASCIIDOC], [Define to enable Asciidoc support])
@ -1010,7 +1067,6 @@ dnl files will try to get intalled to the actual system directories
if test -n "${systemdsystemunitdir}"; then if test -n "${systemdsystemunitdir}"; then
systemdsystemshutdowndir="${libdir}/systemd/system-shutdown" systemdsystemshutdowndir="${libdir}/systemd/system-shutdown"
AC_MSG_RESULT(using ${systemdsystemunitdir}) AC_MSG_RESULT(using ${systemdsystemunitdir})
systemdsystemunitdir="`echo ${systemdsystemunitdir} | sed 's/\/lib/\${libdir}/'`"
else else
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
fi fi
@ -1112,6 +1168,12 @@ dnl check for spell checking deps
AC_PATH_PROGS([ASPELL], [aspell], [none]) AC_PATH_PROGS([ASPELL], [aspell], [none])
AM_CONDITIONAL([HAVE_ASPELL], [test "x$ASPELL" != "xnone"]) AM_CONDITIONAL([HAVE_ASPELL], [test "x$ASPELL" != "xnone"])
dnl AIX system
AM_CONDITIONAL([SYSTEM_AIX], [test "xAIX" = "x`uname -s 2>/dev/null`"])
dnl processor type
AC_DEFINE_UNQUOTED(CPU_TYPE, $target_cpu, [Define processor type])
dnl expand ${sysconfdir} and write it out dnl expand ${sysconfdir} and write it out
conftemp="${sysconfdir}" conftemp="${sysconfdir}"
eval conftemp=\"${conftemp}\" eval conftemp=\"${conftemp}\"
@ -1140,6 +1202,10 @@ eval conftemp=\"${conftemp}\"
SBINDIR=${conftemp} SBINDIR=${conftemp}
AC_DEFINE_UNQUOTED(SBINDIR, "${conftemp}", [Default path for system executables]) AC_DEFINE_UNQUOTED(SBINDIR, "${conftemp}", [Default path for system executables])
dnl Current date
now=`TZ=UTC date +%Y-%m-%d`
AC_SUBST(now)
AC_SUBST(OS_NAME) AC_SUBST(OS_NAME)
AC_SUBST(TREE_VERSION) AC_SUBST(TREE_VERSION)
AC_SUBST(NUT_NETVERSION) AC_SUBST(NUT_NETVERSION)
@ -1201,6 +1267,7 @@ AC_OUTPUT([
data/Makefile data/Makefile
data/driver.list data/driver.list
docs/Makefile docs/Makefile
docs/docinfo.xml
docs/man/Makefile docs/man/Makefile
drivers/Makefile drivers/Makefile
include/Makefile include/Makefile
@ -1209,6 +1276,7 @@ AC_OUTPUT([
lib/libnutclient.pc lib/libnutclient.pc
lib/libnutscan.pc lib/libnutscan.pc
lib/Makefile lib/Makefile
scripts/Aix/nut-aix.spec
scripts/augeas/Makefile scripts/augeas/Makefile
scripts/augeas/nutnutconf.aug scripts/augeas/nutnutconf.aug
scripts/augeas/nutupsconf.aug scripts/augeas/nutupsconf.aug

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.6 from Makefile.am. # Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2013 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -18,23 +17,51 @@
# Network UPS Tools: data # Network UPS Tools: data
VPATH = @srcdir@ VPATH = @srcdir@
am__make_dryrun = \ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
{ \ am__make_running_with_option = \
am__dry=no; \ case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \ case $$MAKEFLAGS in \
*\\[\ \ ]*) \ *\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ bs=\\; \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
*) \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \ esac; \
done;; \ fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \ esac; \
test $$am__dry = yes; \ case $$flg in \
} *$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -55,8 +82,8 @@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
target_triplet = @target@ target_triplet = @target@
subdir = data subdir = data
DIST_COMMON = $(dist_data_DATA) $(srcdir)/Makefile.am \ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/driver.list.in $(srcdir)/driver.list.in $(dist_data_DATA)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@ -85,15 +112,28 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = driver.list CONFIG_CLEAN_FILES = driver.list
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES = SOURCES =
DIST_SOURCES = DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
html-recursive info-recursive install-data-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \
install-dvi-recursive install-exec-recursive \ install-data-recursive install-dvi-recursive \
install-html-recursive install-info-recursive \ install-exec-recursive install-html-recursive \
install-pdf-recursive install-ps-recursive install-recursive \ install-info-recursive install-pdf-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \
ps-recursive uninstall-recursive installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \ am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \ case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \ n|no|NO) false;; \
@ -130,9 +170,29 @@ am__installdirs = "$(DESTDIR)$(datadir)" "$(DESTDIR)$(datadir)"
DATA = $(dist_data_DATA) $(nodist_data_DATA) DATA = $(dist_data_DATA) $(nodist_data_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ am__recursive_targets = \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ $(RECURSIVE_TARGETS) \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
distdir distdir
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags ETAGS = etags
CTAGS = ctags CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS) DIST_SUBDIRS = $(SUBDIRS)
@ -165,6 +225,7 @@ am__relativize = \
A2X = @A2X@ A2X = @A2X@
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
ASCIIDOC = @ASCIIDOC@ ASCIIDOC = @ASCIIDOC@
ASPELL = @ASPELL@ ASPELL = @ASPELL@
@ -271,12 +332,15 @@ SED = @SED@
SERLIBS = @SERLIBS@ SERLIBS = @SERLIBS@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
SOURCE_HIGHLIGHT = @SOURCE_HIGHLIGHT@
STATEPATH = @STATEPATH@ STATEPATH = @STATEPATH@
STRIP = @STRIP@ STRIP = @STRIP@
SUN_LIBUSB = @SUN_LIBUSB@ SUN_LIBUSB = @SUN_LIBUSB@
TREE_VERSION = @TREE_VERSION@ TREE_VERSION = @TREE_VERSION@
VERSION = @VERSION@ VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@ WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
XMLLINT = @XMLLINT@
XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
@ -321,6 +385,7 @@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
now = @now@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
pdfdir = @pdfdir@ pdfdir = @pdfdir@
pkgconfigdir = @pkgconfigdir@ pkgconfigdir = @pkgconfigdir@
@ -431,22 +496,25 @@ uninstall-nodist_dataDATA:
dir='$(DESTDIR)$(datadir)'; $(am__uninstall_files_from_dir) dir='$(DESTDIR)$(datadir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd # This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile. # into them and run 'make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles, # To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status' # (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run `make'); # (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the `make' command line. # (2) otherwise, pass the desired values on the 'make' command line.
$(RECURSIVE_TARGETS): $(am__recursive_targets):
@fail= failcom='exit 1'; \ @fail=; \
for f in x $$MAKEFLAGS; do \ if $(am__make_keepgoing); then \
case $$f in \ failcom='fail=yes'; \
*=* | --[!k]*);; \ else \
*k*) failcom='fail=yes';; \ failcom='exit 1'; \
esac; \ fi; \
done; \
dot_seen=no; \ dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \ target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \ case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \ echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \ if test "$$subdir" = "."; then \
dot_seen=yes; \ dot_seen=yes; \
@ -461,57 +529,12 @@ $(RECURSIVE_TARGETS):
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail" fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS): ID: $(am__tagged_files)
@fail= failcom='exit 1'; \ $(am__define_uniq_tagged_files); mkid -fID $$unique
for f in x $$MAKEFLAGS; do \ tags: tags-recursive
case $$f in \ TAGS: tags
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \ set x; \
here=`pwd`; \ here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@ -527,12 +550,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \ fi; \
done; \ done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \ shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \ test -n "$$unique" || unique=$$empty_fix; \
@ -544,15 +562,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \ $$unique; \
fi; \ fi; \
fi fi
ctags: CTAGS ctags: ctags-recursive
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) CTAGS: ctags
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
unique=`for i in $$list; do \ $(am__define_uniq_tagged_files); \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique $$unique
@ -561,6 +575,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \ here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \ && $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here" && gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@ -724,24 +753,22 @@ ps-am:
uninstall-am: uninstall-dist_dataDATA uninstall-nodist_dataDATA uninstall-am: uninstall-dist_dataDATA uninstall-nodist_dataDATA
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ .MAKE: $(am__recursive_targets) install-am install-strip
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
all all-am check check-am clean clean-generic clean-libtool \ check-am clean clean-generic clean-libtool cscopelist-am ctags \
ctags ctags-recursive distclean distclean-generic \ ctags-am distclean distclean-generic distclean-libtool \
distclean-libtool distclean-tags distdir dvi dvi-am html \ distclean-tags distdir dvi dvi-am html html-am info info-am \
html-am info info-am install install-am install-data \ install install-am install-data install-data-am \
install-data-am install-dist_dataDATA install-dvi \ install-dist_dataDATA install-dvi install-dvi-am install-exec \
install-dvi-am install-exec install-exec-am install-html \ install-exec-am install-html install-html-am install-info \
install-html-am install-info install-info-am install-man \ install-info-am install-man install-nodist_dataDATA \
install-nodist_dataDATA install-pdf install-pdf-am install-ps \ install-pdf install-pdf-am install-ps install-ps-am \
install-ps-am install-strip installcheck installcheck-am \ install-strip installcheck installcheck-am installdirs \
installdirs installdirs-am maintainer-clean \ installdirs-am maintainer-clean maintainer-clean-generic \
maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ ps ps-am tags tags-am uninstall uninstall-am \
uninstall uninstall-am uninstall-dist_dataDATA \ uninstall-dist_dataDATA uninstall-nodist_dataDATA
uninstall-nodist_dataDATA
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.

View file

@ -20,6 +20,7 @@ VARDESC ups.firmware "UPS firmware"
VARDESC ups.firmware.aux "Auxiliary device firmware" VARDESC ups.firmware.aux "Auxiliary device firmware"
VARDESC ups.temperature "UPS temperature (degrees C)" VARDESC ups.temperature "UPS temperature (degrees C)"
VARDESC ups.load "Load on UPS (percent of full)" VARDESC ups.load "Load on UPS (percent of full)"
VARDESC ups.load.energysave "Load on UPS that triggers energysave (percent)"
VARDESC ups.load.high "Load when UPS switches to overload condition (percent)" VARDESC ups.load.high "Load when UPS switches to overload condition (percent)"
VARDESC ups.id "UPS system identifier" VARDESC ups.id "UPS system identifier"
VARDESC ups.delay.start "Interval to wait before (re)starting the load (seconds)" VARDESC ups.delay.start "Interval to wait before (re)starting the load (seconds)"
@ -67,6 +68,10 @@ VARDESC input.transfer.boost.low "Low voltage boosting transfer point (V)"
VARDESC input.transfer.boost.high "High voltage boosting transfer point (V)" VARDESC input.transfer.boost.high "High voltage boosting transfer point (V)"
VARDESC input.transfer.trim.low "Low voltage trimming transfer point (V)" VARDESC input.transfer.trim.low "Low voltage trimming transfer point (V)"
VARDESC input.transfer.trim.high "High voltage trimming transfer point (V)" VARDESC input.transfer.trim.high "High voltage trimming transfer point (V)"
VARDESC input.transfer.delay "Delay before transfer to mains"
VARDESC input.load "Load on (ePDU) input (percent of full)"
VARDESC input.realpower "Current sum value of all (ePDU) phases real power (W)"
VARDESC input.power "Current sum value of all (ePDU) phases apparent power (VA)"
VARDESC output.voltage "Output voltage (V)" VARDESC output.voltage "Output voltage (V)"
VARDESC output.voltage.nominal "Nominal output voltage (V)" VARDESC output.voltage.nominal "Nominal output voltage (V)"
@ -94,6 +99,10 @@ VARDESC battery.packs.bad "Number of bad battery packs"
VARDESC battery.type "Battery chemistry" VARDESC battery.type "Battery chemistry"
VARDESC battery.protection "Prevent deep discharge of battery" VARDESC battery.protection "Prevent deep discharge of battery"
VARDESC battery.energysave "Switch off when running on battery and no/low load" VARDESC battery.energysave "Switch off when running on battery and no/low load"
VARDESC battery.energysave.load "Switch off UPS if on battery and load level lower (percent)"
VARDESC battery.energysave.delay "Delay before switch off UPS if on battery and load level low (min)"
VARDESC battery.energysave.realpower "Switch off UPS if on battery and load level lower (Watts)"
VARDESC battery.charger.status "Battery charger status"
VARDESC ambient.temperature "Ambient temperature (degrees C)" VARDESC ambient.temperature "Ambient temperature (degrees C)"
VARDESC ambient.temperature.alarm "Ambient temperature alarm is active" VARDESC ambient.temperature.alarm "Ambient temperature alarm is active"
@ -179,8 +188,10 @@ CMDDESC beeper.mute "Temporarily mute the UPS beeper"
CMDDESC beeper.toggle "Toggle the UPS beeper" CMDDESC beeper.toggle "Toggle the UPS beeper"
CMDDESC outlet.1.load.off "Turn off the load on outlet 1 immediately" CMDDESC outlet.1.load.off "Turn off the load on outlet 1 immediately"
CMDDESC outlet.1.load.on "Turn on the load on outlet 1 immediately" CMDDESC outlet.1.load.on "Turn on the load on outlet 1 immediately"
CMDDESC outlet.1.shutdown.return "Turn off the outlet 1 and return when power is back"
CMDDESC outlet.2.load.off "Turn off the load on outlet 2 immediately" CMDDESC outlet.2.load.off "Turn off the load on outlet 2 immediately"
CMDDESC outlet.2.load.on "Turn on the load on outlet 2 immediately" CMDDESC outlet.2.load.on "Turn on the load on outlet 2 immediately"
CMDDESC outlet.2.shutdown.return "Turn off the outlet 2 and return when power is back"
# The following two commands should *only* be defined when you need # The following two commands should *only* be defined when you need
# to compose a 'shutdown.return' command by sending both a switch-off # to compose a 'shutdown.return' command by sending both a switch-off

View file

@ -48,6 +48,8 @@
"AEG Power Solutions" "ups" "2" "PROTECT HOME" "" "blazer_ser or blazer_usb" "AEG Power Solutions" "ups" "2" "PROTECT HOME" "" "blazer_ser or blazer_usb"
"APC" "ups" "2" "Back-UPS 1200BR (Microsol)" "" "solis"
"APC" "ups" "2" "Back-UPS BZ2200BI-BR (Microsol)" "" "solis"
"APC" "ups" "1" "Back-UPS Pro" "" "apcsmart" "APC" "ups" "1" "Back-UPS Pro" "" "apcsmart"
"APC" "ups" "1" "Matrix-UPS" "" "apcsmart" "APC" "ups" "1" "Matrix-UPS" "" "apcsmart"
"APC" "ups" "1" "Smart-UPS" "" "apcsmart" "APC" "ups" "1" "Smart-UPS" "" "apcsmart"
@ -91,6 +93,8 @@
"ARTronic" "ups" "2" "ARTon Platinium Combo 3.1 10/15/20 kVA" "USB" "blazer_usb" "ARTronic" "ups" "2" "ARTon Platinium Combo 3.1 10/15/20 kVA" "USB" "blazer_usb"
"ARTronic" "ups" "2" "ARTon Platinium RT 1/2/3/6/10 kVA" "USB" "blazer_usb" "ARTronic" "ups" "2" "ARTon Platinium RT 1/2/3/6/10 kVA" "USB" "blazer_usb"
"ASEM SPA" "UPS" "5" "PB1300 UPS" "i2c" "asem"
"ATEK" "ups" "2" "Defensor 1K Tower / Rack" "USB" "blazer_usb" "ATEK" "ups" "2" "Defensor 1K Tower / Rack" "USB" "blazer_usb"
"ATEK" "ups" "2" "Defensor 2K Tower / Rack" "USB" "blazer_usb" "ATEK" "ups" "2" "Defensor 2K Tower / Rack" "USB" "blazer_usb"
"ATEK" "ups" "2" "Defensor 3K Tower / Rack" "USB" "blazer_usb" "ATEK" "ups" "2" "Defensor 3K Tower / Rack" "USB" "blazer_usb"
@ -120,6 +124,7 @@
"Belkin" "ups" "2" "F6H375-USB" "USB (<= 2005 models, vendor id: 050d)" "usbhid-ups" "Belkin" "ups" "2" "F6H375-USB" "USB (<= 2005 models, vendor id: 050d)" "usbhid-ups"
"Belkin" "ups" "2" "F6H375-USB" "USB (2007 models, vendor id: 0665)" "blazer_usb" "Belkin" "ups" "2" "F6H375-USB" "USB (2007 models, vendor id: 0665)" "blazer_usb"
"Belkin" "ups" "2" "Office Series F6C550-AVR" "USB" "usbhid-ups" "Belkin" "ups" "2" "Office Series F6C550-AVR" "USB" "usbhid-ups"
"Belkin" "ups" "3" "Regulator PRO-USB" "USB (~2000, product id: 0f51)" "usbhid-ups"
"Belkin" "ups" "2" "Regulator Pro" "F6C525-SER, F6C625-SER" "belkin" "Belkin" "ups" "2" "Regulator Pro" "F6C525-SER, F6C625-SER" "belkin"
"Belkin" "ups" "1" "Resource" "" "genericups upstype=4" "Belkin" "ups" "1" "Resource" "" "genericups upstype=4"
"Belkin" "ups" "2" "Small Enterprise F6C1500-TW-RK" "serial port" "belkin" "Belkin" "ups" "2" "Small Enterprise F6C1500-TW-RK" "serial port" "belkin"
@ -203,6 +208,7 @@
"Cyber Power Systems" "ups" "2" "Value 400E" "USB" "usbhid-ups" "Cyber Power Systems" "ups" "2" "Value 400E" "USB" "usbhid-ups"
"Cyber Power Systems" "ups" "2" "Value 600E" "USB" "usbhid-ups" "Cyber Power Systems" "ups" "2" "Value 600E" "USB" "usbhid-ups"
"Cyber Power Systems" "ups" "2" "Value 800E" "USB" "usbhid-ups" "Cyber Power Systems" "ups" "2" "Value 800E" "USB" "usbhid-ups"
"Cyber Power Systems" "ups" "2" "Value 1500ELCD-RU" "USB" "usbhid-ups"
"Cyber Power Systems" "ups" "2" "CP900AVR" "USB" "usbhid-ups" "Cyber Power Systems" "ups" "2" "CP900AVR" "USB" "usbhid-ups"
"Cyber Power Systems" "ups" "2" "CP1000AVRLCD" "USB" "usbhid-ups" "Cyber Power Systems" "ups" "2" "CP1000AVRLCD" "USB" "usbhid-ups"
"Cyber Power Systems" "ups" "2" "CP1350AVRLCD" "USB" "usbhid-ups" "Cyber Power Systems" "ups" "2" "CP1350AVRLCD" "USB" "usbhid-ups"
@ -319,6 +325,8 @@
"ETA" "ups" "1" "mini+UPS" "WinNT/Upsoft cable" "genericups upstype=7" "ETA" "ups" "1" "mini+UPS" "WinNT/Upsoft cable" "genericups upstype=7"
"ETA" "ups" "1" "mini+UPS PRO" "UPS Explorer cable" "etapro" "ETA" "ups" "1" "mini+UPS PRO" "UPS Explorer cable" "etapro"
"EUROCASE" "ups" "2" "EA200N 2000VA" "USB" "nutdrv_qx" # http://partis.cz/index.php?gid=2551
"EVER" "ups" "1" "NET DPC series" "Serial port" "everups" "EVER" "ups" "1" "NET DPC series" "Serial port" "everups"
"EVER" "ups" "1" "AP Pro series" "Serial port" "everups" "EVER" "ups" "1" "AP Pro series" "Serial port" "everups"
"EVER" "ups" "1" "625/1000" "" "safenet" "EVER" "ups" "1" "625/1000" "" "safenet"
@ -341,6 +349,7 @@
"Fairstone" "ups" "1" "L525/L625/L750" "" "safenet" "Fairstone" "ups" "1" "L525/L625/L750" "" "safenet"
"Fideltronik" "ups" "1" "Ares 700 and larger" "" "genericups upstype=6" "Fideltronik" "ups" "1" "Ares 700 and larger" "" "genericups upstype=6"
"Fideltronik" "ups" "2" "LUPUS 500" "USB" "nutdrv_qx"
"Fideltronik" "ups" "1" "Other Ares models" "" "genericups upstype=19" "Fideltronik" "ups" "1" "Other Ares models" "" "genericups upstype=19"
"Fiskars" "ups" "4" "PowerRite MAX" "" "upscode2" "Fiskars" "ups" "4" "PowerRite MAX" "" "upscode2"
@ -348,6 +357,10 @@
"Fiskars" "ups" "4" "PowerServer 30" "" "upscode2" "Fiskars" "ups" "4" "PowerServer 30" "" "upscode2"
"Fiskars" "ups" "4" "9200" "UPS Information Unit" "upscode2" "Fiskars" "ups" "4" "9200" "UPS Information Unit" "upscode2"
"Flight Technic & International (FTUPS)" "ups" "2" "FT-1000BS" "Serial" "nutdrv_qx"
"Flight Technic & International (FTUPS)" "ups" "2" "FT-1000BS" "USB" "nutdrv_qx"
"Flight Technic & International (FTUPS)" "ups" "2" "FT-1000BS(T)" "Serial" "nutdrv_qx"
"Flight Technic & International (FTUPS)" "ups" "2" "FT-1000BS(T)" "USB" "nutdrv_qx"
"Flight Technic & International (FTUPS)" "ups" "2" "Smart On Line UPS 1KVA" "Serial" "nutdrv_qx" "Flight Technic & International (FTUPS)" "ups" "2" "Smart On Line UPS 1KVA" "Serial" "nutdrv_qx"
"Flight Technic & International (FTUPS)" "ups" "2" "Smart On Line UPS 1KVA" "USB" "nutdrv_qx" "Flight Technic & International (FTUPS)" "ups" "2" "Smart On Line UPS 1KVA" "USB" "nutdrv_qx"
"Flight Technic & International (FTUPS)" "ups" "2" "(various)" "Serial" "nutdrv_qx" "Flight Technic & International (FTUPS)" "ups" "2" "(various)" "Serial" "nutdrv_qx"
@ -372,6 +385,8 @@
"Gemini" "ups" "1" "UPS625/UPS1000" "" "safenet" "Gemini" "ups" "1" "UPS625/UPS1000" "" "safenet"
"Grafenthal" "ups" "2" "PR-3000-HS" "SNMP/Web Minislot card (ref 149G0006)" "snmp-ups" # http://grafenthal.de/produkte/usv/online/pr-hs-serie/pr-3000-hs/?L=3et8
"Gtec" "ups" "2" "ZP120N-1K / ZP120N-1KS / ZP120N-2K / ZP120N-2KS / ZP120N-3K / ZP120N-3KS" "" "blazer_usb" "Gtec" "ups" "2" "ZP120N-1K / ZP120N-1KS / ZP120N-2K / ZP120N-2KS / ZP120N-3K / ZP120N-3KS" "" "blazer_usb"
"Gtec" "ups" "2" "ZP120N-6K / ZP120N-6KS / ZP120N-10K-11 / ZP120N-10KS-11" "" "blazer_usb" "Gtec" "ups" "2" "ZP120N-6K / ZP120N-6KS / ZP120N-10K-11 / ZP120N-10KS-11" "" "blazer_usb"
"Gtec" "ups" "2" "ZP120N-10K-31-00 / ZP120N-10K-31-07 / ZP120N-10K-31-09 / ZP120N-10K-31-99 / ZP120N-20K" "USB port" "blazer_usb" "Gtec" "ups" "2" "ZP120N-10K-31-00 / ZP120N-10K-31-07 / ZP120N-10K-31-09 / ZP120N-10K-31-99 / ZP120N-20K" "USB port" "blazer_usb"
@ -445,6 +460,8 @@
"Jageson Technology" "ups" "1" "Jasuny USPS" "" "genericups upstype=4" "Jageson Technology" "ups" "1" "Jasuny USPS" "" "genericups upstype=4"
"JAWAN" "ups" "2" "JW-UPSLC02" "USB" "blazer_usb"
"Kanji" "ups" "1" "800 VA" "USB" "nutdrv_atcl_usb" "Kanji" "ups" "1" "800 VA" "USB" "nutdrv_atcl_usb"
"Kebo" "ups" "2" "1200D/D Series" "" "blazer_ser" "Kebo" "ups" "2" "1200D/D Series" "" "blazer_ser"
@ -457,6 +474,8 @@
"Krauler" "ups" "2" "UP-D1200VA" "USB" "blazer_usb" "Krauler" "ups" "2" "UP-D1200VA" "USB" "blazer_usb"
"Krauler" "ups" "2" "UP-M500VA" "USB" "blazer_usb" "Krauler" "ups" "2" "UP-M500VA" "USB" "blazer_usb"
"Lacerda" "ups" "2" "New Orion 800VA" "USB" "blazer_usb"
"LDLC" "ups" "2" "UPS-1200D" "" "blazer_usb langid_fix=0x4095" "LDLC" "ups" "2" "UPS-1200D" "" "blazer_usb langid_fix=0x4095"
"Lestar" "ups" "2" "MD-800E" "" "blazer_ser" "Lestar" "ups" "2" "MD-800E" "" "blazer_ser"
@ -478,6 +497,7 @@
"Maxxtro" "ups" "2" "UPS 600 VA" "serial port" "blazer_ser" "Maxxtro" "ups" "2" "UPS 600 VA" "serial port" "blazer_ser"
"Mecer" "ups" "2" "ME-1000-WTU" "USB" "nutdrv_qx" # http://www.comx-computers.co.za/download/mecer/ME-1000-WTU.pdf
"Mecer" "ups" "2" "ME-2000" "" "blazer_ser" "Mecer" "ups" "2" "ME-2000" "" "blazer_ser"
"Meta System" "ups" "1" "HF Line" "1..4 boards" "metasys" "Meta System" "ups" "1" "HF Line" "1..4 boards" "metasys"
@ -696,6 +716,14 @@
"Neus" "ups" "2" "400va / 600va" "" "blazer_ser" "Neus" "ups" "2" "400va / 600va" "" "blazer_ser"
"NHS Sistemas de Energia" "ups" "5" "Expert C Online 6000" "" "gamatronic" # http://www.nhs.com.br/produtos_interna/id/TWpFeQ==
"NHS Sistemas de Energia" "ups" "5" "Expert C Online 8000" "" "gamatronic"
"NHS Sistemas de Energia" "ups" "5" "Expert C Online 10000" "" "gamatronic"
"NHS Sistemas de Energia" "ups" "5" "Expert S Online 6000" "" "gamatronic"
"NHS Sistemas de Energia" "ups" "5" "Expert S Online 8000" "" "gamatronic"
"NHS Sistemas de Energia" "ups" "5" "Expert S Online 10000" "" "gamatronic"
"NHS Sistemas de Energia" "ups" "5" "Expert S Online 10000" "" "gamatronic"
"Nitram" "ups" "1" "Elite 500" "" "genericups upstype=8" "Nitram" "ups" "1" "Elite 500" "" "genericups upstype=8"
"Nitram" "ups" "1" "Elite 2002" "" "genericups upstype=16" "Nitram" "ups" "1" "Elite 2002" "" "genericups upstype=16"
"Nitram" "ups" "1" "Elite 2005" "" "powerpanel" "Nitram" "ups" "1" "Elite 2005" "" "powerpanel"
@ -760,6 +788,7 @@
"Powercom" "ups" "4" "(various)" "USB (<= 2009 models, product id: 0002)" "powercom (requires 'usbserial' kernel module)" "Powercom" "ups" "4" "(various)" "USB (<= 2009 models, product id: 0002)" "powercom (requires 'usbserial' kernel module)"
"Powercom" "ups" "5" "(various)" "USB (2009 models, product id: 00a?)" "usbhid-ups (experimental)" "Powercom" "ups" "5" "(various)" "USB (2009 models, product id: 00a?)" "usbhid-ups (experimental)"
"Powercom" "ups" "5" "BNT-xxxAP" "USB (product id: 0004)" "usbhid-ups (experimental)" "Powercom" "ups" "5" "BNT-xxxAP" "USB (product id: 0004)" "usbhid-ups (experimental)"
"Powercom" "ups" "1" "BNT-xxxAP" "USB (product id: 0001)" "usbhid-ups (experimental)"
"POWEREX" "ups" "2" "VI 1000 LED" "" "blazer_usb" "POWEREX" "ups" "2" "VI 1000 LED" "" "blazer_usb"
@ -864,6 +893,8 @@
"Rocketfish" "ups" "2" "RF-1000VA / RF-1025VA" "" "usbhid-ups" "Rocketfish" "ups" "2" "RF-1000VA / RF-1025VA" "" "usbhid-ups"
"Rucelf" "ups" "2" "Rucelf UPOII-3000-96-EL" "" "blazer_ser" # http://www.rucelf.ua/en/catalog/upoii-3000-96-el/
"SmartLabs" "pdu" "1" "2412S Power Line Modem" "for X10/Insteon" "powerman-pdu (experimental)" "SmartLabs" "pdu" "1" "2412S Power Line Modem" "for X10/Insteon" "powerman-pdu (experimental)"
"SMS (Brazil)" "ups" "2" "Manager III" "" "blazer_ser" "SMS (Brazil)" "ups" "2" "Manager III" "" "blazer_ser"
@ -913,16 +944,6 @@
"Tecnoware" "ups" "2" "Easy Power 1200" "" "blazer_ser" "Tecnoware" "ups" "2" "Easy Power 1200" "" "blazer_ser"
"Tecnoware" "ups" "2" "UPS ERA LCD 0.65" "" "blazer_usb langid_fix=0x409" "Tecnoware" "ups" "2" "UPS ERA LCD 0.65" "" "blazer_usb langid_fix=0x409"
"Tripp Lite" "ups" "1" "INTERNETOFFICE700" "USB (older; product ID: 0001)" "tripplite_usb"
"Tripp Lite" "ups" "2" "OMNIVS1000" "USB (older; product ID: 0001)" "tripplite_usb"
"Tripp Lite" "ups" "1" "OMNIVS1500XL" "USB" "tripplite_usb"
"Tripp Lite" "ups" "1" "SMART700USB" "USB" "tripplite_usb"
"Tripp Lite" "ups" "1" "SMART1500RM2U" "USB (older; product ID: 0001)" "tripplite_usb"
"Tripp Lite" "ups" "1" "SMART550USB" "USB (older; product ID: 0001)" "tripplite_usb"
"Tripp Lite" "ups" "1" "OMNISMART500" "USB (older; product ID: 0001)" "tripplite_usb"
"Tripp Lite" "ups" "1" "SMART2200RMXL2U" "USB (older; product ID: 0001)" "tripplite_usb (experimental)"
"Tripp Lite" "ups" "1" "SmartUPS" "" "tripplite"
"Tripp Lite" "ups" "1" "SmartOnline" "" "tripplitesu"
"Tripp Lite" "ups" "1" "(various)" "Lan 2.2 interface - black 73-0844 cable" "genericups upstype=5" "Tripp Lite" "ups" "1" "(various)" "Lan 2.2 interface - black 73-0844 cable" "genericups upstype=5"
"Tripp Lite" "ups" "2" "1500 LCD" "USB" "usbhid-ups" "Tripp Lite" "ups" "2" "1500 LCD" "USB" "usbhid-ups"
"Tripp Lite" "ups" "3" "AVR550U" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=930&txtModelID=3090 "Tripp Lite" "ups" "3" "AVR550U" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=930&txtModelID=3090
@ -952,23 +973,39 @@
"Tripp Lite" "ups" "3" "INTERNET750U" "USB (protocol 1007)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3142 "Tripp Lite" "ups" "3" "INTERNET750U" "USB (protocol 1007)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3142
"Tripp Lite" "ups" "3" "INTERNET900U" "USB (protocol 1007)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=930&txtModelID=3657 "Tripp Lite" "ups" "3" "INTERNET900U" "USB (protocol 1007)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=930&txtModelID=3657
"Tripp Lite" "ups" "3" "INTERNETOFFICE500" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=930&txtModelID=11 "Tripp Lite" "ups" "3" "INTERNETOFFICE500" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=930&txtModelID=11
"Tripp Lite" "ups" "1" "INTERNETOFFICE700" "USB (older; product ID: 0001)" "tripplite_usb"
"Tripp Lite" "ups" "3" "INTERNETOFFICE700" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=930&txtModelID=14 "Tripp Lite" "ups" "3" "INTERNETOFFICE700" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=930&txtModelID=14
"Tripp Lite" "ups" "3" "OMNI650LCD" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3195 "Tripp Lite" "ups" "3" "OMNI650LCD" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3195
"Tripp Lite" "ups" "3" "OMNI900LCD" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=3082 "Tripp Lite" "ups" "3" "OMNI900LCD" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=3082
"Tripp Lite" "ups" "2" "OMNI1000LCD" "USB" "usbhid-ups" "Tripp Lite" "ups" "2" "OMNI1000LCD" "USB" "usbhid-ups"
"Tripp Lite" "ups" "3" "OMNISMART300PNP" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=19 "Tripp Lite" "ups" "3" "OMNISMART300PNP" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=19
"Tripp Lite" "ups" "1" "OMNISMART500" "USB (older; product ID: 0001)" "tripplite_usb"
"Tripp Lite" "ups" "3" "OMNISMART500" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=21 "Tripp Lite" "ups" "3" "OMNISMART500" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=21
"Tripp Lite" "ups" "3" "OMNISMART700" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=23 "Tripp Lite" "ups" "3" "OMNISMART700" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=23
"Tripp Lite" "ups" "3" "OMNIVS1000" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=2656 "Tripp Lite" "ups" "2" "OMNIVSINT800" "USB (older; product ID: 0001)" "tripplite_usb"
"Tripp Lite" "ups" "3" "OMNIVS800" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=2729 "Tripp Lite" "ups" "3" "OMNIVS800" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=2729
"Tripp Lite" "ups" "2" "OMNIVS1000" "USB (older; product ID: 0001)" "tripplite_usb"
"Tripp Lite" "ups" "3" "OMNIVS1000" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=2656
"Tripp Lite" "ups" "1" "OMNIVS1500XL" "USB" "tripplite_usb"
"Tripp Lite" "ups" "3" "POS500" "USB (protocol 2007)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3742 "Tripp Lite" "ups" "3" "POS500" "USB (protocol 2007)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3742
"Tripp Lite" "ups" "3" "SM2200RMDVTAA" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=4648 "Tripp Lite" "ups" "3" "SM2200RMDVTAA" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=4648
"Tripp Lite" "ups" "1" "SmartUPS" "" "tripplite"
"Tripp Lite" "ups" "1" "SmartOnline" "" "tripplitesu"
"Tripp Lite" "ups" "1" "SMART550USB" "USB (older; product ID: 0001)" "tripplite_usb"
"Tripp Lite" "ups" "3" "SMART550USB" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=2002
"Tripp Lite" "ups" "3" "SMART550USBWD" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=2591
"Tripp Lite" "ups" "1" "SMART700USB" "USB" "tripplite_usb"
"Tripp Lite" "ups" "3" "SMART750RMXL2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3020
"Tripp Lite" "ups" "3" "SMART750SLT" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3007
"Tripp Lite" "ups" "3" "SMART750USB" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=2679
"Tripp Lite" "ups" "3" "SMART750XLA" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3820
"Tripp Lite" "ups" "3" "SMART1000LCD" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=3071 "Tripp Lite" "ups" "3" "SMART1000LCD" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=3071
"Tripp Lite" "ups" "3" "SMART1000RM2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=2657 "Tripp Lite" "ups" "3" "SMART1000RM2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=2657
"Tripp Lite" "ups" "3" "SMART1000RMXL2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=5262 "Tripp Lite" "ups" "3" "SMART1000RMXL2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=5262
"Tripp Lite" "ups" "3" "SMART1050SLT" "USB (protocol 3012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3253 "Tripp Lite" "ups" "3" "SMART1050SLT" "USB (protocol 3012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3253
"Tripp Lite" "ups" "3" "SMART1050SLTAA" "USB (protocol 3012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=4389 "Tripp Lite" "ups" "3" "SMART1050SLTAA" "USB (protocol 3012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=4389
"Tripp Lite" "ups" "3" "SMART1200LCD" "USB (protocol 2009)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3193 "Tripp Lite" "ups" "3" "SMART1200LCD" "USB (protocol 2009)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3193
"Tripp Lite" "ups" "1" "SMART1500RM2U" "USB (older; product ID: 0001)" "tripplite_usb"
"Tripp Lite" "ups" "3" "SMART1500CRMXL" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3826 "Tripp Lite" "ups" "3" "SMART1500CRMXL" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3826
"Tripp Lite" "ups" "3" "SMART1500LCD" "USB (protocol 2009)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=3151 "Tripp Lite" "ups" "3" "SMART1500LCD" "USB (protocol 2009)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=3151
"Tripp Lite" "ups" "3" "SMART1500LCDXL" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=4978 "Tripp Lite" "ups" "3" "SMART1500LCDXL" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=4978
@ -980,6 +1017,7 @@
"Tripp Lite" "ups" "3" "SMART2200CRMXL" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3825 "Tripp Lite" "ups" "3" "SMART2200CRMXL" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3825
"Tripp Lite" "ups" "3" "SMART2200RM2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=4403 "Tripp Lite" "ups" "3" "SMART2200RM2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=4403
"Tripp Lite" "ups" "3" "SMART2200RM2UN" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=5428 "Tripp Lite" "ups" "3" "SMART2200RM2UN" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=5428
"Tripp Lite" "ups" "1" "SMART2200RMXL2U" "USB (older; product ID: 0001)" "tripplite_usb (experimental)"
"Tripp Lite" "ups" "3" "SMART2200RMXL2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3264 "Tripp Lite" "ups" "3" "SMART2200RMXL2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3264
"Tripp Lite" "ups" "3" "SMART2200RMXL2UP" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=4672 "Tripp Lite" "ups" "3" "SMART2200RMXL2UP" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=4672
"Tripp Lite" "ups" "3" "SMART2200RMXLN" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=5427 "Tripp Lite" "ups" "3" "SMART2200RMXLN" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=5427
@ -994,13 +1032,8 @@
"Tripp Lite" "ups" "3" "SMART3000RMXL2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=4418 "Tripp Lite" "ups" "3" "SMART3000RMXL2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=4418
"Tripp Lite" "ups" "3" "SMART3000RMXLN" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=5425 "Tripp Lite" "ups" "3" "SMART3000RMXLN" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=5425
"Tripp Lite" "ups" "3" "SMART3000SLT" "USB (protocol 3013)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3490 "Tripp Lite" "ups" "3" "SMART3000SLT" "USB (protocol 3013)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3490
"Tripp Lite" "ups" "3" "SMART500RT1U" "USB (protocol 3005)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=2853 "Tripp Lite" "ups" "2" "SMART500RT1U" "USB (older; product ID 0001, protocol 3005)" "tripplite_usb"
"Tripp Lite" "ups" "3" "SMART550USB" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=2002 "Tripp Lite" "ups" "3" "SMART500RT1U" "USB (newer; protocol/product ID 3005)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=2853
"Tripp Lite" "ups" "3" "SMART550USBWD" "USB (protocol 2010)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=2591
"Tripp Lite" "ups" "3" "SMART750RMXL2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3020
"Tripp Lite" "ups" "3" "SMART750SLT" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3007
"Tripp Lite" "ups" "3" "SMART750USB" "USB (protocol 2012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=932&txtModelID=2679
"Tripp Lite" "ups" "3" "SMART750XLA" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=933&txtModelID=3820
"Tripp Lite" "ups" "3" "SMX1000LCD" "USB (protocol 2005)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3200 "Tripp Lite" "ups" "3" "SMX1000LCD" "USB (protocol 2005)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3200
"Tripp Lite" "ups" "3" "SMX1000RT2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=2798 "Tripp Lite" "ups" "3" "SMX1000RT2U" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=2798
"Tripp Lite" "ups" "3" "SMX1050SLT" "USB (protocol 3012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3249 "Tripp Lite" "ups" "3" "SMX1050SLT" "USB (protocol 3012)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3249
@ -1013,6 +1046,9 @@
"Tripp Lite" "ups" "3" "SMX3000XLRT2UA" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=5658 "Tripp Lite" "ups" "3" "SMX3000XLRT2UA" "USB (protocol 3015)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=5658
"Tripp Lite" "ups" "3" "SMX500RT1U" "USB (protocol 3005)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=2691 "Tripp Lite" "ups" "3" "SMX500RT1U" "USB (protocol 3005)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=2691
"Tripp Lite" "ups" "3" "SMX750SLT" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3021 "Tripp Lite" "ups" "3" "SMX750SLT" "USB (protocol 3014)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3021
"Tripp Lite" "ups" "3" "SU750RTXL2U" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3194
"Tripp Lite" "ups" "3" "SU750RTXLCD2U" "USB (protocol 4004)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=5070
"Tripp Lite" "ups" "3" "SU750XL" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3299
"Tripp Lite" "ups" "3" "SU1000RTXL2UA" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=2948 "Tripp Lite" "ups" "3" "SU1000RTXL2UA" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=2948
"Tripp Lite" "ups" "3" "SU1000RTXLCD2U" "USB (protocol 4004)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=745&txtModelID=4980 "Tripp Lite" "ups" "3" "SU1000RTXLCD2U" "USB (protocol 4004)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=745&txtModelID=4980
"Tripp Lite" "ups" "3" "SU1000XLA" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=3180 "Tripp Lite" "ups" "3" "SU1000XLA" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=3180
@ -1032,9 +1068,6 @@
"Tripp Lite" "ups" "3" "SU3000RTXR3UHW" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=4976 "Tripp Lite" "ups" "3" "SU3000RTXR3UHW" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=4976
"Tripp Lite" "ups" "3" "SU3000XL" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=3601 "Tripp Lite" "ups" "3" "SU3000XL" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=3601
"Tripp Lite" "ups" "3" "SU3000XLCD" "USB (protocol 4004)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=744&txtModelID=5342 "Tripp Lite" "ups" "3" "SU3000XLCD" "USB (protocol 4004)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=744&txtModelID=5342
"Tripp Lite" "ups" "3" "SU750RTXL2U" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3194
"Tripp Lite" "ups" "3" "SU750RTXLCD2U" "USB (protocol 4004)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=5070
"Tripp Lite" "ups" "3" "SU750XL" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3299
"Tripp Lite" "ups" "3" "SUINT1000RTXL2UA" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3983 "Tripp Lite" "ups" "3" "SUINT1000RTXL2UA" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtModelID=3983
"Tripp Lite" "ups" "3" "SUINT1500RTXL2UA" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=2720 "Tripp Lite" "ups" "3" "SUINT1500RTXL2UA" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=2720
"Tripp Lite" "ups" "3" "SUINT2200RTXL2UA" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=3970 "Tripp Lite" "ups" "3" "SUINT2200RTXL2UA" "USB (protocol 4001)" "usbhid-ups" # http://www.tripplite.com/en/products/model.cfm?txtSeriesID=934&txtModelID=3970
@ -1084,10 +1117,14 @@
"Vivaldi" "ups" "1" "EA200 LED" "USB" "richcomm_usb" "Vivaldi" "ups" "1" "EA200 LED" "USB" "richcomm_usb"
"Voltronic Power" "ups" "2" "Apex 1KVA" "Serial" "nutdrv_qx"
"Voltronic Power" "ups" "2" "Apex 1KVA" "USB" "nutdrv_qx"
"Voltronic Power" "ups" "2" "Frigate TX 1KVA" "Serial" "nutdrv_qx" "Voltronic Power" "ups" "2" "Frigate TX 1KVA" "Serial" "nutdrv_qx"
"Voltronic Power" "ups" "2" "Frigate TX 1KVA" "USB" "nutdrv_qx" "Voltronic Power" "ups" "2" "Frigate TX 1KVA" "USB" "nutdrv_qx"
"Voltronic Power" "ups" "2" "Galleon 1KVA" "Serial" "nutdrv_qx" "Voltronic Power" "ups" "2" "Galleon 1KVA" "Serial" "nutdrv_qx"
"Voltronic Power" "ups" "2" "Galleon 1KVA" "USB" "nutdrv_qx" "Voltronic Power" "ups" "2" "Galleon 1KVA" "USB" "nutdrv_qx"
"Voltronic Power" "ups" "2" "Imperial 1KVA" "Serial" "nutdrv_qx"
"Voltronic Power" "ups" "2" "Imperial 1KVA" "USB" "nutdrv_qx"
"Voltronic Power" "ups" "2" "Prosine 800" "Serial" "nutdrv_qx" "Voltronic Power" "ups" "2" "Prosine 800" "Serial" "nutdrv_qx"
"Voltronic Power" "ups" "2" "Prosine 800" "USB" "nutdrv_qx" "Voltronic Power" "ups" "2" "Prosine 800" "USB" "nutdrv_qx"
"Voltronic Power" "ups" "2" "Vesta LED 850VA" "USB" "nutdrv_qx" "Voltronic Power" "ups" "2" "Vesta LED 850VA" "USB" "nutdrv_qx"

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.6 from Makefile.am. # Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2013 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -16,23 +15,51 @@
@SET_MAKE@ @SET_MAKE@
VPATH = @srcdir@ VPATH = @srcdir@
am__make_dryrun = \ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
{ \ am__make_running_with_option = \
am__dry=no; \ case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \ case $$MAKEFLAGS in \
*\\[\ \ ]*) \ *\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ bs=\\; \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
*) \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \ esac; \
done;; \ fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \ esac; \
test $$am__dry = yes; \ case $$flg in \
} *$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -53,8 +80,8 @@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
target_triplet = @target@ target_triplet = @target@
subdir = data/html subdir = data/html
DIST_COMMON = README $(am__dist_html_DATA_DIST) $(srcdir)/Makefile.am \ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/header.html.in $(srcdir)/header.html.in $(am__dist_html_DATA_DIST) README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@ -83,6 +110,18 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = header.html CONFIG_CLEAN_FILES = header.html
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES = SOURCES =
DIST_SOURCES = DIST_SOURCES =
am__can_run_installinfo = \ am__can_run_installinfo = \
@ -120,10 +159,12 @@ am__uninstall_files_from_dir = { \
} }
am__installdirs = "$(DESTDIR)$(htmldir)" "$(DESTDIR)$(htmldir)" am__installdirs = "$(DESTDIR)$(htmldir)" "$(DESTDIR)$(htmldir)"
DATA = $(dist_html_DATA) $(nodist_html_DATA) DATA = $(dist_html_DATA) $(nodist_html_DATA)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
A2X = @A2X@ A2X = @A2X@
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
ASCIIDOC = @ASCIIDOC@ ASCIIDOC = @ASCIIDOC@
ASPELL = @ASPELL@ ASPELL = @ASPELL@
@ -230,12 +271,15 @@ SED = @SED@
SERLIBS = @SERLIBS@ SERLIBS = @SERLIBS@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
SOURCE_HIGHLIGHT = @SOURCE_HIGHLIGHT@
STATEPATH = @STATEPATH@ STATEPATH = @STATEPATH@
STRIP = @STRIP@ STRIP = @STRIP@
SUN_LIBUSB = @SUN_LIBUSB@ SUN_LIBUSB = @SUN_LIBUSB@
TREE_VERSION = @TREE_VERSION@ TREE_VERSION = @TREE_VERSION@
VERSION = @VERSION@ VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@ WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
XMLLINT = @XMLLINT@
XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
@ -280,6 +324,7 @@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
now = @now@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
pdfdir = @pdfdir@ pdfdir = @pdfdir@
pkgconfigdir = @pkgconfigdir@ pkgconfigdir = @pkgconfigdir@
@ -390,11 +435,11 @@ uninstall-nodist_htmlDATA:
@list='$(nodist_html_DATA)'; test -n "$(htmldir)" || list=; \ @list='$(nodist_html_DATA)'; test -n "$(htmldir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(htmldir)'; $(am__uninstall_files_from_dir) dir='$(DESTDIR)$(htmldir)'; $(am__uninstall_files_from_dir)
tags: TAGS tags TAGS:
TAGS:
ctags: CTAGS ctags CTAGS:
CTAGS:
cscope cscopelist:
distdir: $(DISTFILES) distdir: $(DISTFILES)
@ -533,16 +578,17 @@ uninstall-am: uninstall-dist_htmlDATA uninstall-nodist_htmlDATA
.MAKE: install-am install-strip .MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \ .PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \ cscopelist-am ctags-am distclean distclean-generic \
dvi-am html html-am info info-am install install-am \ distclean-libtool distdir dvi dvi-am html html-am info info-am \
install-data install-data-am install-dist_htmlDATA install-dvi \ install install-am install-data install-data-am \
install-dvi-am install-exec install-exec-am install-html \ install-dist_htmlDATA install-dvi install-dvi-am install-exec \
install-html-am install-info install-info-am install-man \ install-exec-am install-html install-html-am install-info \
install-nodist_htmlDATA install-pdf install-pdf-am install-ps \ install-info-am install-man install-nodist_htmlDATA \
install-ps-am install-strip installcheck installcheck-am \ install-pdf install-pdf-am install-ps install-ps-am \
installdirs maintainer-clean maintainer-clean-generic \ install-strip installcheck installcheck-am installdirs \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ maintainer-clean maintainer-clean-generic mostlyclean \
ps ps-am uninstall uninstall-am uninstall-dist_htmlDATA \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags-am uninstall uninstall-am uninstall-dist_htmlDATA \
uninstall-nodist_htmlDATA uninstall-nodist_htmlDATA

327
depcomp
View file

@ -1,10 +1,9 @@
#! /bin/sh #! /bin/sh
# depcomp - compile a program generating dependencies as side-effects # depcomp - compile a program generating dependencies as side-effects
scriptversion=2012-03-27.16; # UTC scriptversion=2013-05-30.07; # UTC
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, # Copyright (C) 1999-2013 Free Software Foundation, Inc.
# 2011, 2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@ -57,11 +56,65 @@ EOF
;; ;;
esac esac
# Get the directory component of the given path, and save it in the
# global variables '$dir'. Note that this directory component will
# be either empty or ending with a '/' character. This is deliberate.
set_dir_from ()
{
case $1 in
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
*) dir=;;
esac
}
# Get the suffix-stripped basename of the given path, and save it the
# global variable '$base'.
set_base_from ()
{
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
}
# If no dependency file was actually created by the compiler invocation,
# we still have to create a dummy depfile, to avoid errors with the
# Makefile "include basename.Plo" scheme.
make_dummy_depfile ()
{
echo "#dummy" > "$depfile"
}
# Factor out some common post-processing of the generated depfile.
# Requires the auxiliary global variable '$tmpdepfile' to be set.
aix_post_process_depfile ()
{
# If the compiler actually managed to produce a dependency file,
# post-process it.
if test -f "$tmpdepfile"; then
# Each line is of the form 'foo.o: dependency.h'.
# Do two passes, one to just change these to
# $object: dependency.h
# and one to simply output
# dependency.h:
# which is needed to avoid the deleted-header problem.
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
} > "$depfile"
rm -f "$tmpdepfile"
else
make_dummy_depfile
fi
}
# A tabulation character. # A tabulation character.
tab=' ' tab=' '
# A newline character. # A newline character.
nl=' nl='
' '
# Character ranges might be problematic outside the C locale.
# These definitions help.
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
lower=abcdefghijklmnopqrstuvwxyz
digits=0123456789
alpha=${upper}${lower}
if test -z "$depmode" || test -z "$source" || test -z "$object"; then if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2 echo "depcomp: Variables source, object and depmode must be set" 1>&2
@ -75,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
# Avoid interferences from the environment.
gccflag= dashmflag=
# Some modes work just like other modes, but use different flags. We # Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below, # parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case # to make depend.m4 easier to write. Note that we *cannot* use a case
@ -109,7 +165,7 @@ if test "$depmode" = msvc7msys; then
fi fi
if test "$depmode" = xlc; then if test "$depmode" = xlc; then
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
gccflag=-qmakedep=gcc,-MF gccflag=-qmakedep=gcc,-MF
depmode=gcc depmode=gcc
fi fi
@ -134,8 +190,7 @@ gcc3)
done done
"$@" "$@"
stat=$? stat=$?
if test $stat -eq 0; then : if test $stat -ne 0; then
else
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
exit $stat exit $stat
fi fi
@ -143,13 +198,17 @@ gcc3)
;; ;;
gcc) gcc)
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
## (see the conditional assignment to $gccflag above).
## There are various ways to get dependency output from gcc. Here's ## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method: ## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end ## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly. ## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.) ## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say). ## -MM, not -M (despite what the docs say). Also, it might not be
## supported by the other compilers which use the 'gcc' depmode.
## - Using -M directly means running the compiler twice (even worse ## - Using -M directly means running the compiler twice (even worse
## than renaming). ## than renaming).
if test -z "$gccflag"; then if test -z "$gccflag"; then
@ -157,15 +216,14 @@ gcc)
fi fi
"$@" -Wp,"$gccflag$tmpdepfile" "$@" -Wp,"$gccflag$tmpdepfile"
stat=$? stat=$?
if test $stat -eq 0; then : if test $stat -ne 0; then
else
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
exit $stat exit $stat
fi fi
rm -f "$depfile" rm -f "$depfile"
echo "$object : \\" > "$depfile" echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz # The second -e expression handles DOS-style file names with drive
## The second -e expression handles DOS-style file names with drive letters. # letters.
sed -e 's/^[^:]*: / /' \ sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the "deleted header file" problem. ## This next piece of magic avoids the "deleted header file" problem.
@ -174,14 +232,14 @@ gcc)
## typically no way to rebuild the header). We avoid this by adding ## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do ## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly. ## this for us directly.
tr ' ' "$nl" < "$tmpdepfile" |
## Some versions of gcc put a space before the ':'. On the theory ## Some versions of gcc put a space before the ':'. On the theory
## that the space means something, we add a space to the output as ## that the space means something, we add a space to the output as
## well. hp depmode also adds that space, but also prefixes the VPATH ## well. hp depmode also adds that space, but also prefixes the VPATH
## to the object. Take care to not repeat it in the output. ## to the object. Take care to not repeat it in the output.
## Some versions of the HPUX 10.20 sed can't process this invocation ## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround. ## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile" | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
;; ;;
@ -200,8 +258,7 @@ sgi)
"$@" -MDupdate "$tmpdepfile" "$@" -MDupdate "$tmpdepfile"
fi fi
stat=$? stat=$?
if test $stat -eq 0; then : if test $stat -ne 0; then
else
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
exit $stat exit $stat
fi fi
@ -209,7 +266,6 @@ sgi)
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile" echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be # Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle # clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in # lines with more than a fixed number of characters (4096 in
@ -217,19 +273,15 @@ sgi)
# the IRIX cc adds comments like '#:fec' to the end of the # the IRIX cc adds comments like '#:fec' to the end of the
# dependency line. # dependency line.
tr ' ' "$nl" < "$tmpdepfile" \ tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
tr "$nl" ' ' >> "$depfile" | tr "$nl" ' ' >> "$depfile"
echo >> "$depfile" echo >> "$depfile"
# The second pass generates a dummy entry for each header file. # The second pass generates a dummy entry for each header file.
tr ' ' "$nl" < "$tmpdepfile" \ tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile" >> "$depfile"
else else
# The sourcefile does not contain any dependencies, so just make_dummy_depfile
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi fi
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
;; ;;
@ -247,9 +299,8 @@ aix)
# current directory. Also, the AIX compiler puts '$object:' at the # current directory. Also, the AIX compiler puts '$object:' at the
# start of each line; $object doesn't have directory information. # start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases. # Version 6 uses the directory in both cases.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` set_dir_from "$object"
test "x$dir" = "x$object" && dir= set_base_from "$object"
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u tmpdepfile2=$base.u
@ -262,9 +313,7 @@ aix)
"$@" -M "$@" -M
fi fi
stat=$? stat=$?
if test $stat -ne 0; then
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat exit $stat
fi fi
@ -273,65 +322,113 @@ aix)
do do
test -f "$tmpdepfile" && break test -f "$tmpdepfile" && break
done done
if test -f "$tmpdepfile"; then aix_post_process_depfile
# Each line is of the form 'foo.o: dependent.h'. ;;
# Do two passes, one to just change these to
# '$object: dependent.h' and one to simply 'dependent.h:'. tcc)
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" # FIXME: That version still under development at the moment of writing.
else # Make that this statement remains true also for stable, released
# The sourcefile does not contain any dependencies, so just # versions.
# store a dummy comment line, to avoid errors with the Makefile # It will wrap lines (doesn't matter whether long or short) with a
# "include basename.Plo" scheme. # trailing '\', as in:
echo "#dummy" > "$depfile" #
# foo.o : \
# foo.c \
# foo.h \
#
# It will put a trailing '\' even on the last line, and will use leading
# spaces rather than leading tabs (at least since its commit 0394caf7
# "Emit spaces for -MD").
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi fi
rm -f "$depfile"
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
# We have to change lines of the first kind to '$object: \'.
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
# And for each line of the second kind, we have to emit a 'dep.h:'
# dummy dependency, to avoid the deleted-header problem.
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
;; ;;
icc) ## The order of this option in the case statement is important, since the
# Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. ## shell code in configure will try each of these formats in the order
# However on ## listed in this file. A plain '-MD' option would be understood by many
# $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c ## compilers, so we must ensure this comes after the gcc and icc options.
# ICC 7.0 will fill foo.d with something like pgcc)
# foo.o: sub/foo.c # Portland's C compiler understands '-MD'.
# foo.o: sub/foo.h # Will always output deps to 'file.d' where file is the root name of the
# which is wrong. We want # source file under compilation, even if file resides in a subdirectory.
# sub/foo.o: sub/foo.c # The object file name does not affect the name of the '.d' file.
# sub/foo.o: sub/foo.h # pgcc 10.2 will output
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h # foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using '\' : # and will wrap long lines using '\' :
# foo.o: sub/foo.c ... \ # foo.o: sub/foo.c ... \
# sub/foo.h ... \ # sub/foo.h ... \
# ... # ...
# tcc 0.9.26 (FIXME still under development at the moment of writing) set_dir_from "$object"
# will emit a similar output, but also prepend the continuation lines # Use the source, not the object, to determine the base name, since
# with horizontal tabulation characters. # that's sadly what pgcc will do too.
"$@" -MD -MF "$tmpdepfile" set_base_from "$source"
tmpdepfile=$base.d
# For projects that build the same source file twice into different object
# files, the pgcc approach of using the *source* file root name can cause
# problems in parallel builds. Use a locking strategy to avoid stomping on
# the same $tmpdepfile.
lockdir=$base.d-lock
trap "
echo '$0: caught signal, cleaning up...' >&2
rmdir '$lockdir'
exit 1
" 1 2 13 15
numtries=100
i=$numtries
while test $i -gt 0; do
# mkdir is a portable test-and-set.
if mkdir "$lockdir" 2>/dev/null; then
# This process acquired the lock.
"$@" -MD
stat=$? stat=$?
if test $stat -eq 0; then : # Release the lock.
rmdir "$lockdir"
break
else else
# If the lock is being held by a different process, wait
# until the winning process is done or we timeout.
while test -d "$lockdir" && test $i -gt 0; do
sleep 1
i=`expr $i - 1`
done
fi
i=`expr $i - 1`
done
trap - 1 2 13 15
if test $i -le 0; then
echo "$0: failed to acquire lock after $numtries attempts" >&2
echo "$0: check lockdir '$lockdir'" >&2
exit 1
fi
if test $stat -ne 0; then
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
exit $stat exit $stat
fi fi
rm -f "$depfile" rm -f "$depfile"
# Each line is of the form 'foo.o: dependent.h', # Each line is of the form `foo.o: dependent.h',
# or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to # Do two passes, one to just change these to
# '$object: dependent.h' and one to simply 'dependent.h:'. # `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
< "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation
sed ' # correctly. Breaking it into two sed invocations is a workaround.
s/[ '"$tab"'][ '"$tab"']*/ /g sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
s/^ *// | sed -e 's/$/ :/' >> "$depfile"
s/ *\\*$//
s/^[^:]*: *//
/^$/d
/:$/d
s/$/ :/
' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
;; ;;
@ -342,9 +439,8 @@ hp2)
# 'foo.d', which lands next to the object file, wherever that # 'foo.d', which lands next to the object file, wherever that
# happens to be. # happens to be.
# Much of this is similar to the tru64 case; see comments there. # Much of this is similar to the tru64 case; see comments there.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` set_dir_from "$object"
test "x$dir" = "x$object" && dir= set_base_from "$object"
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d tmpdepfile2=$dir.libs/$base.d
@ -355,8 +451,7 @@ hp2)
"$@" +Maked "$@" +Maked
fi fi
stat=$? stat=$?
if test $stat -eq 0; then : if test $stat -ne 0; then
else
rm -f "$tmpdepfile1" "$tmpdepfile2" rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat exit $stat
fi fi
@ -366,7 +461,7 @@ hp2)
test -f "$tmpdepfile" && break test -f "$tmpdepfile" && break
done done
if test -f "$tmpdepfile"; then if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
# Add 'dependent.h:' lines. # Add 'dependent.h:' lines.
sed -ne '2,${ sed -ne '2,${
s/^ *// s/^ *//
@ -375,7 +470,7 @@ hp2)
p p
}' "$tmpdepfile" >> "$depfile" }' "$tmpdepfile" >> "$depfile"
else else
echo "#dummy" > "$depfile" make_dummy_depfile
fi fi
rm -f "$tmpdepfile" "$tmpdepfile2" rm -f "$tmpdepfile" "$tmpdepfile2"
;; ;;
@ -386,55 +481,40 @@ tru64)
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in 'foo.d' instead, so we check for that too. # dependencies in 'foo.d' instead, so we check for that too.
# Subdirectories are respected. # Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` set_dir_from "$object"
test "x$dir" = "x$object" && dir= set_base_from "$object"
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a # Libtool generates 2 separate objects for the 2 libraries. These
# static library. This mechanism is used in libtool 1.4 series to # two compilations output dependencies in $dir.libs/$base.o.d and
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
# compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because # in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer # one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring # automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic. # the former would cause a distcleancheck panic.
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile1=$dir$base.o.d # libtool 1.5
tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise.
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD "$@" -Wc,-MD
else else
tmpdepfile1=$dir$base.o.d tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d tmpdepfile3=$dir$base.d
tmpdepfile4=$dir$base.d
"$@" -MD "$@" -MD
fi fi
stat=$? stat=$?
if test $stat -eq 0; then : if test $stat -ne 0; then
else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat exit $stat
fi fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do do
test -f "$tmpdepfile" && break test -f "$tmpdepfile" && break
done done
if test -f "$tmpdepfile"; then # Same post-processing that is required for AIX mode.
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" aix_post_process_depfile
sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;; ;;
msvc7) msvc7)
@ -446,8 +526,7 @@ msvc7)
"$@" $showIncludes > "$tmpdepfile" "$@" $showIncludes > "$tmpdepfile"
stat=$? stat=$?
grep -v '^Note: including file: ' "$tmpdepfile" grep -v '^Note: including file: ' "$tmpdepfile"
if test "$stat" = 0; then : if test $stat -ne 0; then
else
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
exit $stat exit $stat
fi fi
@ -473,6 +552,7 @@ $ {
G G
p p
}' >> "$depfile" }' >> "$depfile"
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
;; ;;
@ -524,13 +604,14 @@ dashmstdout)
# in the target name. This is to cope with DOS-style filenames: # in the target name. This is to cope with DOS-style filenames:
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
"$@" $dashmflag | "$@" $dashmflag |
sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
rm -f "$depfile" rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile" cat < "$tmpdepfile" > "$depfile"
tr ' ' "$nl" < "$tmpdepfile" | \ # Some versions of the HPUX 10.20 sed can't process this sed invocation
## Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround.
## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" rm -f "$tmpdepfile"
;; ;;
@ -583,10 +664,12 @@ makedepend)
# makedepend may prepend the VPATH from the source file name to the object. # makedepend may prepend the VPATH from the source file name to the object.
# No need to regex-escape $object, excess matching of '.' is harmless. # No need to regex-escape $object, excess matching of '.' is harmless.
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ # Some versions of the HPUX 10.20 sed can't process the last invocation
## Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround.
## correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | tr ' ' "$nl" \
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak rm -f "$tmpdepfile" "$tmpdepfile".bak
;; ;;
@ -622,10 +705,10 @@ cpp)
esac esac
done done
"$@" -E | "$@" -E \
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
sed '$ s: \\$::' > "$tmpdepfile" | sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile" rm -f "$depfile"
echo "$object : \\" > "$depfile" echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile" cat < "$tmpdepfile" >> "$depfile"

View file

@ -10,15 +10,6 @@ right?
If not, go read it now, then come back to this file if your If not, go read it now, then come back to this file if your
question wasn't answered in there. question wasn't answered in there.
== upsstats says 'Error: can't open template file (upsstats.html)'.
Go into your configuration path (/usr/local/ups/etc by default) and
copy the sample template files over to their real names. The sample
template files are installed with 'make install' and can
also be found inside the source distribution in the conf directory.
== upsmon fails the login and says 'username required' now.
Go read the link:UPGRADING[UPGRADING] file again.
== My UPS driver now says it's 'broken', and won't start. What now? == My UPS driver now says it's 'broken', and won't start. What now?
Or a variation like... Or a variation like...
@ -108,6 +99,19 @@ tcp-wrappers or kernel firewall rules.
This isn't a NUT-specific limitation - it applies equally to your web server or This isn't a NUT-specific limitation - it applies equally to your web server or
mailer daemon. mailer daemon.
== Which UPS should I buy?
One with a no-questions-asked money-back guarantee. Seriously. The NUT
developers cannot take responsibility for recommending an UPS (see the LICENSE
file for more details on the explicit lack of warranty), only to find out that
the manufacturer has changed the internals of the UPS without changing the
model name.
That said, from time to time, certain vendors have helped out by providing
hardware for testing, results of their testing efforts, or protocol
specifications. We try to publish this information on the NUT website, so you
can take this into consideration when selecting an UPS brand.
== I have an APC Smart-UPS connected with a grey APC serial cable and it won't work. == I have an APC Smart-UPS connected with a grey APC serial cable and it won't work.
The Back-UPS type in the genericups driver works but then I don't get to use The Back-UPS type in the genericups driver works but then I don't get to use
@ -158,7 +162,7 @@ hardware properly.
*Answer 1* *Answer 1*
I try to follow the "tool for the job" philosophy. It may mean We try to follow the "tool for the job" philosophy. It may mean
more programs running, but the flexibility you get is usually more programs running, but the flexibility you get is usually
worth it. worth it.
@ -172,7 +176,8 @@ Besides, if upsmon were rolled into upsd, upsd would get even
bigger than it is now. You'd have one less process, but the bigger than it is now. You'd have one less process, but the
RAM consumption would be pretty close to now. RAM consumption would be pretty close to now.
See data-room.txt for more configuration ideas and explanations. See the "Data Room" section in docs/config-notes.txt for more configuration
ideas and explanations.
*Answer 2* *Answer 2*
@ -225,7 +230,7 @@ driver supports the older Best hardware.
There is a similar problem with the tripplite_usb driver: it only supports the There is a similar problem with the tripplite_usb driver: it only supports the
older, proprietary protocol. Newer standards-compliant Tripp Lite UPS models older, proprietary protocol. Newer standards-compliant Tripp Lite UPS models
are supported by usbhid-ups. We name drivers based on the information are supported by usbhid-ups. We name drivers based on the information
available at that time, which often is incomplete. available at the time the driver was first written, which often is incomplete.
== What's this about 'data stale'? == What's this about 'data stale'?
@ -237,9 +242,9 @@ If this happens to you, make sure your driver is still running.
Also look at the syslog. Sometimes the driver loses the connection Also look at the syslog. Sometimes the driver loses the connection
to the UPS, and that will also make the data go stale. to the UPS, and that will also make the data go stale.
Note: some very slow machines have trouble keeping up with the This might also happen on certain virtualization platforms. If you cannot
serial ports during periods of extreme load. My old 486 used to reproduce the problem on a physical machine, please report the bug to the
flip between "stale" and "OK" while running backups. virtualization software vendor.
If this happens a lot, you might consider cranking up DEADTIME If this happens a lot, you might consider cranking up DEADTIME
in the upsmon.conf to suppress some of the warnings for shorter in the upsmon.conf to suppress some of the warnings for shorter
@ -250,8 +255,8 @@ what's going on with the UPS.
Note: some drivers occasionally need more time to update than the Note: some drivers occasionally need more time to update than the
default value of MAXAGE (in upsd.conf) allows. As a result, they default value of MAXAGE (in upsd.conf) allows. As a result, they
are temporarily marked stale even though everything is fine. This are temporarily marked stale even though everything is fine. This
can happen with MGE Ellipse equipment - see the mge-shut man page. can happen with MGE Ellipse equipment - see the mge-shut or usbhid-ups man
In such cases, you can raise the value of MAXAGE to avoid these pages. In such cases, you can raise the value of MAXAGE to avoid these
warnings; try a value like 25 or 30. warnings; try a value like 25 or 30.
== Why do the client programs say 'Driver not connected' when I try to run them? == Why do the client programs say 'Driver not connected' when I try to run them?
@ -267,6 +272,17 @@ Note: if you jumped in with both feet and didn't follow the INSTALL.nut
document, you probably started upsd by itself. You have to run document, you probably started upsd by itself. You have to run
'upsdrvctl start' to start the drivers after configuring ups.conf. 'upsdrvctl start' to start the drivers after configuring ups.conf.
== Why don't the pathnames in your documentation match the package I installed?
Each distribution has conventions for where specific file types should be
stored. The NUT project cannot possibly track all of these conventions, so the
documentation assumes the default installation directory prefix of
`/usr/local/ups` when describing file locations. The distributions tend not to
change the base name of the files, so you can search for drivers and
configuration files in the package database of installed files. For instance,
on Debian or Ubuntu derivatives, you can use `dpkg --search usbhid-ups` to see
where the drivers are stored.
== Everything works perfectly during the shutdown, and the UPS comes back on, but my system stays off. What's happening? == Everything works perfectly during the shutdown, and the UPS comes back on, but my system stays off. What's happening?
Assuming you don't have the problem in the next question, then you Assuming you don't have the problem in the next question, then you
@ -518,45 +534,65 @@ file.
There are several driver to support USB models. There are several driver to support USB models.
- usbhid-ups supports various manufacturers complying to the HID standard, - usbhid-ups supports various manufacturers complying to the HID Power Device Class (PDC) standard,
- tripplite_usb supports various Tripp-Lite units, - tripplite_usb supports various older Tripp-Lite units (with USB ProductID 0001)
- bcmxcp_usb supports various Powerware units, - bcmxcp_usb supports various Powerware units,
- blazer_usb supports various manufacturers that use the Megatec / Q1 protocol. - nutdrv_qx and blazer_usb support various manufacturers that use the Megatec / Q1 protocol.
Refer to the 'driver-name' (8) manpage for more information. Refer to the 'driver-name' (8) manpage for more information.
== What is this usbhid-ups (formerly newhidups) about? You can also consult the Hardware Compatibility List (HCL) and filter on USB:
http://www.networkupstools.org/stable-hcl.html?connection=USB
The basic USB UPS support was done until NUT 2.2 using hidups. To allow
a wider support accross platforms for USB/HID compliant devices,
usbhid-ups driver uses libusb (which is available for a wide range of
operating systems) and libhid (currently, a modified internal version
of it).
As of NUT 2.2, usbhid-ups completely replaces the legacy hidups driver,
and provides support for various manufacturers. At that time, newhidups was
renamed to usbhid-ups.
usbhid-ups is built automatically if possible (libusb development files
need to be installed) and installed by the "make install" command.
== My USB UPS is supported but doesn't work! == My USB UPS is supported but doesn't work!
On Linux, udev rules are provided to set the correct permissions on device file. On Linux, udev rules are provided to set the correct permissions on device file.
This allows the NUT driver to communicate with the UPS, through this device file. This allows the NUT driver to communicate with the UPS, through this device file.
However, the driver may still failed to start and support the device, with a However, the driver may still fail to start and support the device, with a
message like: message like:
failed to claim USB device: could not claim interface 0: Operation not permitted failed to claim USB device: could not claim interface 0: Operation not permitted
*Operation not permitted* is a message pointing a privilege issue. *Operation not permitted* is a message pointing to a privilege issue.
The most frequent issue is that udev has not actually applied the rule: The most frequent issue is that udev has not actually applied the rule:
- if NUT has been freshly installed, - if NUT has been freshly installed,
- and if the device USB cord was already plugged when installing nut. - and if the device USB cord was already plugged when installing NUT.
In this case, just unplug and plug back the USB cord, then restart nut. In this case, just unplug and plug back the USB cord, then restart NUT.
There was a mistake in the naming of the NUT udev rules file which resulted in
the rules being overridden by another udev configuration file. While this has
been fixed in the Git master branch, your distribution may still be affected.
Details are available in the following Github issue:
https://github.com/networkupstools/nut/issues/140
== Why do you not use the Linux kernel HID driver when communicating with USB UPSes?
When the `usbhid-ups` was first written, it replaced an older driver `hidups`
which used the Linux kernel USB HID API. At the time, the kernel HID API could
not distinguish between identical Usage IDs that were nested in different
parent IDs, so many common measurements were not available from `hidups`. For
this reason, the libusb approach was chosen, which has the added side effect
of being more portable than the Linux HID API. The Linux hiddev device nodes
have very similar permissions problems as the `/dev/bus/usb` nodes that the
libusb approach uses.
Due to difficulties in running libusb on OS X and Windows, those platforms
might benefit more from a native HID approach.
== I get a message from the kernel that the driver "did not claim interface 0 before use"
On Linux, if two copies of a driver are competing for the UPS, these messages
will appear in dmesg:
usbfs: process 29641 (usbhid-ups) did not claim interface 0 before use
This can be a symptom of a source install conflicting with a package install.
There is a rudimetary locking mechanism in NUT, but there is a chance that the
packages might not use the same directory as the NUT default, and the conflict
will be reported by the kernel.
== Why doesn't my package work? == Why doesn't my package work?
@ -587,23 +623,50 @@ root, start upsmon with -p and it will go back to being one big
process. This is not recommended, so don't blame us if something process. This is not recommended, so don't blame us if something
bad happens in this mode. bad happens in this mode.
== I get the following error while building: `make[4]: don't know how to make HP-UX/nut-drvctl.sh. Stop`
NUT still has some hidden dependencies on GNU Make which show up while running
`make distcheck`. If you are running `make distcheck` or its variants, you
will need to install GNU Make (`devel/gmake` in the ports tree), which is
incidentally what the official FreeBSD port of NUT does for all builds.
== I have 'some problem' with 'some old version' ... == I have 'some problem' with 'some old version' ...
Get the latest stable release, and see if it still happens. If it Get the latest stable release, and see if it still happens. If it
goes away, it means someone else reported it and got it fixed a goes away, it means someone else reported it and got it fixed a
long time ago. long time ago.
If that doesn't work, try the latest development version. You may want to search the mailing lists to see if someone else has
experienced the same problem. If so, there is a good chance that someone else
has worked through the process necessary to shoehorn the latest NUT version
into your distribution (potentially with unofficial packages).
If your problem is STILL there, then contact the mailing lists. Some OS distributions contain old versions of NUT. If your hardware is newer
than the NUT release, there is a good chance that support has not been added
yet. Please do not tell us you have the "latest version for Distro XYZ" - even
if the developers are familiar with that distribution, it helps others if you
quote the exact package version.
NOTE: check the release date on the version you have. If it's more NOTE: check the release date on the version you have. If it's more
than about 6 months old, there's probably a newer stable tree than about 6-12 months old, there's probably a newer stable tree
version out there. version out there.
== I built NUT from Git, and it complains about lots of missing files. What happened?
If you are not actively developing a driver, can you use a snapshot instead?
The NUT instance of Buildbot generates tar files of the latest NUT source
after each successful build, and these snapshots include a prebuilt version of
the `./configure` script.
Otherwise, you will need recent versions of autoconf, automake, libtool,
asciidoc, a2x and its dependencies for DocBook/dblatex. Rather than publish a
list of the exact versions needed (which will quickly become out of date), we
recommend you consult your distribution's dependency list for building a NUT
package, and use that as a starting point.
== Do I have to use a serial connection to monitor the UPS? What about direct network connections (SNMP or otherwise)? == Do I have to use a serial connection to monitor the UPS? What about direct network connections (SNMP or otherwise)?
No. NUT currently support USB communication through several drivers, NUT currently supports USB communication through several drivers,
and also SNMP and XML/HTTP (Eaton and MGE) communications. and also SNMP and XML/HTTP (Eaton and MGE) communications.
Since NUT is very extensible, support for a new communication bus can be added Since NUT is very extensible, support for a new communication bus can be added
@ -616,15 +679,10 @@ turn an owner into a developer or vice-versa.
== What happened to the patch I sent? == What happened to the patch I sent?
If a release goes by and your patch hasn't been included, it was We try to prioritize emails with patches, but you should understand that a
probably dropped. There can be a lot of patches waiting for simple fix for your bug might be complicated to integrate with the rest of
inclusion at some points, and occasionally some have to be NUT. Changing the way a fundamental component works, such as USB support,
rejected. means a lot of testing to ensure that your fix does not break other drivers.
Design issues or severe coding style problems can be the reason
for this. I try to point out what the problems are, but there are
limits. See developers.txt for some pointers on submitting
patches.
Sometimes patches are put on hold due to a feature freeze. If it Sometimes patches are put on hold due to a feature freeze. If it
doesn't show up once the new version opens up, send it again. doesn't show up once the new version opens up, send it again.
@ -632,7 +690,7 @@ doesn't show up once the new version opens up, send it again.
== I'm not much of a programmer. How can I help? == I'm not much of a programmer. How can I help?
There's always work to be done outside of the realm of code bashing. There's always work to be done outside of the realm of code bashing.
Documentation might not always be so clear. A user's perspective Documentation can always be improved. A user's perspective
is sometimes needed to appreciate this. Bug reports on a project's is sometimes needed to appreciate this. Bug reports on a project's
documentation are just as valuable as those for the actual source. documentation are just as valuable as those for the actual source.
@ -686,10 +744,13 @@ upsstats.html and change it from TEMPC to TEMPF.
== Why is the mailing list ignoring me? == Why is the mailing list ignoring me?
You probably asked a question that's answered in this FAQ or You probably asked a question that's answered in this FAQ, or
somewhere else in the documentation and nobody wants to quote it somewhere else in the documentation, and nobody wants to quote it
for you. for you.
There is a small chance that the mailing list spam filter ate your message.
Check the list archives to see if your message appears there.
Convincing the other subscribers that you've actually read down this Convincing the other subscribers that you've actually read down this
far might be useful. You might mention "queequeg" for better results. far might be useful. You might mention "queequeg" for better results.
@ -697,6 +758,22 @@ This URL may also be helpful:
http://www.catb.org/~esr/faqs/smart-questions.html http://www.catb.org/~esr/faqs/smart-questions.html
== Why are you so insistent about sending emails to public mailing lists instead of to individuals?
By and large, NUT is a volunteer effort. By emailing one person, you are
asking them to take care of your question. If you email the list instead, you
give others the opportunity to answer.
In addition, the mailing lists are publicly archived, and therefore easily
searchable. Chances are, you aren't the only person who will ever have that
question.
== If you want mailing list replies to go to the list, why don't you add a Reply-To: header?
We are not going to rehash all of the arguments for and against this in a
simple FAQ entry. If you intend for your reply to go to more than just the
last person who posted, it is not too much trouble to hit "reply all".
== I found some information about another kind of UPS protocol you don't support yet, but I don't know what to do with it. Can you help? == I found some information about another kind of UPS protocol you don't support yet, but I don't know what to do with it. Can you help?
If you're not a programmer, you can still help others by making If you're not a programmer, you can still help others by making

View file

@ -32,6 +32,7 @@ CABLES_IMAGES = images/cables/73-0724.png images/cables/940-0024C.jpg \
images/cables/belkin-f6cx-rkm-xu-cable.jpg images/cables/Lansafecable.jpg \ images/cables/belkin-f6cx-rkm-xu-cable.jpg images/cables/Lansafecable.jpg \
images/cables/mac-940-0024C.png images/cables/mge-66049.png \ images/cables/mac-940-0024C.png images/cables/mge-66049.png \
images/cables/mge-db9-rj12.jpg images/cables/mge-db9-rj45.jpg \ images/cables/mge-db9-rj12.jpg images/cables/mge-db9-rj45.jpg \
images/cables/mge-usb-rj45.jpg \
images/cables/SOLA-330.png images/cables/SOLA-330.png
ALL_TXT_SRC = nut-names.txt $(USER_MANUAL_DEPS) $(DEVELOPER_GUIDE_DEPS) \ ALL_TXT_SRC = nut-names.txt $(USER_MANUAL_DEPS) $(DEVELOPER_GUIDE_DEPS) \
@ -39,7 +40,7 @@ ALL_TXT_SRC = nut-names.txt $(USER_MANUAL_DEPS) $(DEVELOPER_GUIDE_DEPS) \
NUT_SPELL_DICT = nut.dict NUT_SPELL_DICT = nut.dict
EXTRA_DIST = $(ALL_TXT_SRC) $(SHARED_DEPS) $(IMAGE_FILES) \ EXTRA_DIST = $(ALL_TXT_SRC) $(SHARED_DEPS) $(IMAGE_FILES) \
$(CABLES_IMAGES) docinfo.xml $(NUT_SPELL_DICT) \ $(CABLES_IMAGES) $(NUT_SPELL_DICT) \
common.xsl xhtml.xsl chunked.xsl common.xsl xhtml.xsl chunked.xsl
ASCIIDOC_HTML_SINGLE = user-manual.html \ ASCIIDOC_HTML_SINGLE = user-manual.html \
@ -90,8 +91,10 @@ packager-guide.html packager-guide.chunked packager-guide.pdf: packager-guide.tx
# variable ASCIIDOC_VERBOSE to "-v", ie: # variable ASCIIDOC_VERBOSE to "-v", ie:
# $ ASCIIDOC_VERBOSE=-v make # $ ASCIIDOC_VERBOSE=-v make
A2X_COMMON_OPTS = $(ASCIIDOC_VERBOSE) --attribute icons \ A2X_COMMON_OPTS = $(ASCIIDOC_VERBOSE) --attribute icons \
--attribute localdate=`TZ=UTC date +%Y-%m-%d` \ --xsltproc-opts "--nonet" \
--attribute localtime=`TZ=UTC date +%H:%M:%S` \ --xsltproc-opts "--stringparam nut.localdate \"`TZ=UTC date +%Y-%m-%d`\"" \
--xsltproc-opts "--stringparam nut.localtime \"`TZ=UTC date +%H:%M:%S`\"" \
--xsltproc-opts "--stringparam nut.nutversion \"@PACKAGE_VERSION@\"" \
--attribute iconsdir=$(srcdir)/images \ --attribute iconsdir=$(srcdir)/images \
--attribute=badges \ --attribute=badges \
--attribute=external_title \ --attribute=external_title \

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.6 from Makefile.am. # Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2013 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -15,23 +14,51 @@
@SET_MAKE@ @SET_MAKE@
VPATH = @srcdir@ VPATH = @srcdir@
am__make_dryrun = \ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
{ \ am__make_running_with_option = \
am__dry=no; \ case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \ case $$MAKEFLAGS in \
*\\[\ \ ]*) \ *\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ bs=\\; \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
*) \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \ esac; \
done;; \ fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \ esac; \
test $$am__dry = yes; \ case $$flg in \
} *$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -52,7 +79,8 @@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
target_triplet = @target@ target_triplet = @target@
subdir = docs subdir = docs
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(srcdir)/docinfo.xml.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@ -79,17 +107,30 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4) $(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES = docinfo.xml
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES = SOURCES =
DIST_SOURCES = DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
html-recursive info-recursive install-data-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \
install-dvi-recursive install-exec-recursive \ install-data-recursive install-dvi-recursive \
install-html-recursive install-info-recursive \ install-exec-recursive install-html-recursive \
install-pdf-recursive install-ps-recursive install-recursive \ install-info-recursive install-pdf-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \
ps-recursive uninstall-recursive installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \ am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \ case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \ n|no|NO) false;; \
@ -97,9 +138,29 @@ am__can_run_installinfo = \
esac esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ am__recursive_targets = \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ $(RECURSIVE_TARGETS) \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
distdir distdir
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags ETAGS = etags
CTAGS = ctags CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS) DIST_SUBDIRS = $(SUBDIRS)
@ -132,6 +193,7 @@ am__relativize = \
A2X = @A2X@ A2X = @A2X@
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
ASCIIDOC = @ASCIIDOC@ ASCIIDOC = @ASCIIDOC@
ASPELL = @ASPELL@ ASPELL = @ASPELL@
@ -238,12 +300,15 @@ SED = @SED@
SERLIBS = @SERLIBS@ SERLIBS = @SERLIBS@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
SOURCE_HIGHLIGHT = @SOURCE_HIGHLIGHT@
STATEPATH = @STATEPATH@ STATEPATH = @STATEPATH@
STRIP = @STRIP@ STRIP = @STRIP@
SUN_LIBUSB = @SUN_LIBUSB@ SUN_LIBUSB = @SUN_LIBUSB@
TREE_VERSION = @TREE_VERSION@ TREE_VERSION = @TREE_VERSION@
VERSION = @VERSION@ VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@ WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
XMLLINT = @XMLLINT@
XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
@ -288,6 +353,7 @@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
now = @now@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
pdfdir = @pdfdir@ pdfdir = @pdfdir@
pkgconfigdir = @pkgconfigdir@ pkgconfigdir = @pkgconfigdir@
@ -343,6 +409,7 @@ CABLES_IMAGES = images/cables/73-0724.png images/cables/940-0024C.jpg \
images/cables/belkin-f6cx-rkm-xu-cable.jpg images/cables/Lansafecable.jpg \ images/cables/belkin-f6cx-rkm-xu-cable.jpg images/cables/Lansafecable.jpg \
images/cables/mac-940-0024C.png images/cables/mge-66049.png \ images/cables/mac-940-0024C.png images/cables/mge-66049.png \
images/cables/mge-db9-rj12.jpg images/cables/mge-db9-rj45.jpg \ images/cables/mge-db9-rj12.jpg images/cables/mge-db9-rj45.jpg \
images/cables/mge-usb-rj45.jpg \
images/cables/SOLA-330.png images/cables/SOLA-330.png
ALL_TXT_SRC = nut-names.txt $(USER_MANUAL_DEPS) $(DEVELOPER_GUIDE_DEPS) \ ALL_TXT_SRC = nut-names.txt $(USER_MANUAL_DEPS) $(DEVELOPER_GUIDE_DEPS) \
@ -350,7 +417,7 @@ ALL_TXT_SRC = nut-names.txt $(USER_MANUAL_DEPS) $(DEVELOPER_GUIDE_DEPS) \
NUT_SPELL_DICT = nut.dict NUT_SPELL_DICT = nut.dict
EXTRA_DIST = $(ALL_TXT_SRC) $(SHARED_DEPS) $(IMAGE_FILES) \ EXTRA_DIST = $(ALL_TXT_SRC) $(SHARED_DEPS) $(IMAGE_FILES) \
$(CABLES_IMAGES) docinfo.xml $(NUT_SPELL_DICT) \ $(CABLES_IMAGES) $(NUT_SPELL_DICT) \
common.xsl xhtml.xsl chunked.xsl common.xsl xhtml.xsl chunked.xsl
ASCIIDOC_HTML_SINGLE = user-manual.html \ ASCIIDOC_HTML_SINGLE = user-manual.html \
@ -387,8 +454,10 @@ FULL_DEVELOPER_GUIDE_DEPS = $(DEVELOPER_GUIDE_DEPS) $(SHARED_DEPS) \
# variable ASCIIDOC_VERBOSE to "-v", ie: # variable ASCIIDOC_VERBOSE to "-v", ie:
# $ ASCIIDOC_VERBOSE=-v make # $ ASCIIDOC_VERBOSE=-v make
A2X_COMMON_OPTS = $(ASCIIDOC_VERBOSE) --attribute icons \ A2X_COMMON_OPTS = $(ASCIIDOC_VERBOSE) --attribute icons \
--attribute localdate=`TZ=UTC date +%Y-%m-%d` \ --xsltproc-opts "--nonet" \
--attribute localtime=`TZ=UTC date +%H:%M:%S` \ --xsltproc-opts "--stringparam nut.localdate \"`TZ=UTC date +%Y-%m-%d`\"" \
--xsltproc-opts "--stringparam nut.localtime \"`TZ=UTC date +%H:%M:%S`\"" \
--xsltproc-opts "--stringparam nut.nutversion \"@PACKAGE_VERSION@\"" \
--attribute iconsdir=$(srcdir)/images \ --attribute iconsdir=$(srcdir)/images \
--attribute=badges \ --attribute=badges \
--attribute=external_title \ --attribute=external_title \
@ -429,6 +498,8 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps): $(am__aclocal_m4_deps):
docinfo.xml: $(top_builddir)/config.status $(srcdir)/docinfo.xml.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
mostlyclean-libtool: mostlyclean-libtool:
-rm -f *.lo -rm -f *.lo
@ -437,22 +508,25 @@ clean-libtool:
-rm -rf .libs _libs -rm -rf .libs _libs
# This directory's subdirectories are mostly independent; you can cd # This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile. # into them and run 'make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles, # To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status' # (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run `make'); # (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the `make' command line. # (2) otherwise, pass the desired values on the 'make' command line.
$(RECURSIVE_TARGETS): $(am__recursive_targets):
@fail= failcom='exit 1'; \ @fail=; \
for f in x $$MAKEFLAGS; do \ if $(am__make_keepgoing); then \
case $$f in \ failcom='fail=yes'; \
*=* | --[!k]*);; \ else \
*k*) failcom='fail=yes';; \ failcom='exit 1'; \
esac; \ fi; \
done; \
dot_seen=no; \ dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \ target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \ case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \ echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \ if test "$$subdir" = "."; then \
dot_seen=yes; \ dot_seen=yes; \
@ -467,57 +541,12 @@ $(RECURSIVE_TARGETS):
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail" fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS): ID: $(am__tagged_files)
@fail= failcom='exit 1'; \ $(am__define_uniq_tagged_files); mkid -fID $$unique
for f in x $$MAKEFLAGS; do \ tags: tags-recursive
case $$f in \ TAGS: tags
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \ set x; \
here=`pwd`; \ here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@ -533,12 +562,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \ fi; \
done; \ done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \ shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \ test -n "$$unique" || unique=$$empty_fix; \
@ -550,15 +574,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \ $$unique; \
fi; \ fi; \
fi fi
ctags: CTAGS ctags: ctags-recursive
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) CTAGS: ctags
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
unique=`for i in $$list; do \ $(am__define_uniq_tagged_files); \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique $$unique
@ -567,6 +587,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \ here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \ && $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here" && gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@ -725,12 +760,11 @@ ps-am:
uninstall-am: uninstall-am:
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ .MAKE: $(am__recursive_targets) install-am install-strip
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
all all-am check check-am clean clean-generic clean-libtool \ check-am clean clean-generic clean-libtool clean-local \
clean-local ctags ctags-recursive distclean distclean-generic \ cscopelist-am ctags ctags-am distclean distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \ distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \ html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \ install-data-am install-dvi install-dvi-am install-exec \
@ -739,8 +773,8 @@ uninstall-am:
install-ps install-ps-am install-strip installcheck \ install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \ installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \ maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall uninstall-am uninstall-am
all: doc all: doc

View file

@ -55,7 +55,7 @@ Documents in this section are provided courtesy of Eaton.
MGE Office Protection Systems MGE Office Protection Systems
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The two first cables also applies to MGE UPS SYSTEMS. The three first cables also applies to MGE UPS SYSTEMS and Eaton.
DB9-DB9 cable (ref 66049) DB9-DB9 cable (ref 66049)
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^
@ -67,11 +67,36 @@ image::images/cables/mge-66049.png[DB9-DB9 cable]
DB9-RJ45 cable DB9-RJ45 cable
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
This cable is used on the more recent models, including Ellipse MAX, Protection This cable is used on the more recent models, including Ellipse MAX,
Station, ... Protection Station, ...
image::images/cables/mge-db9-rj45.jpg[DB9-RJ45 cable] image::images/cables/mge-db9-rj45.jpg[DB9-RJ45 cable]
NMC DB9-RJ45 cable
^^^^^^^^^^^^^^^^^^
The following applies to the MGE 66102 NMC (Network Management Card), and
possibly other models. The NMC connection is an 8P8C RJ45-style jack.
|====
|Signal | PC | NMC
| | 1,4,6 |
|TxD | 2 | 3
|RxD | 3 | 6
|GND | 5 | 4
| | 7,8 |
| | shield | shield
|====
USB-RJ45 cable
^^^^^^^^^^^^^^
This cable is used also on the more recent models, including Ellipse MAX,
Protection Station, ...
image::images/cables/mge-usb-rj45.jpg[USB-RJ45 cable]
DB9-RJ12 cable DB9-RJ12 cable
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
@ -115,6 +140,26 @@ UPS PC 9 pin connector
Contributed by Kjell Claesson and Arnaud Quette. Contributed by Kjell Claesson and Arnaud Quette.
Phoenixtec (Best Power)
-----------------------
Many Best Power units (including the Patriot Pro II) have a female DB-9 socket
with a non-standard pinout.
|====
|Signal | PC | UPS
| | 1,4,6 | NC
|TxD | 2 | 2
|RxD | 3 | 1
|GND | 5 | 4
| | 7,8 | NC
|====
Sources:
* http://pinoutsguide.com/UPS/best_power_pinout.shtml
* http://lit.powerware.com/ll_download.asp?file=m_patriotproii_jan99.pdf
* Stan Gammons
Tripp-Lite Tripp-Lite
---------- ----------

View file

@ -14,9 +14,4 @@
<xsl:param name="navig.graphics.path">images/icons/</xsl:param> <xsl:param name="navig.graphics.path">images/icons/</xsl:param>
<xsl:param name="admon.graphics.path">images/icons/</xsl:param> <xsl:param name="admon.graphics.path">images/icons/</xsl:param>
<xsl:param name="callout.graphics.path" select="'images/icons/callouts/'"/> <xsl:param name="callout.graphics.path" select="'images/icons/callouts/'"/>
<!-- Format-detection to prevent smartphones from being too smart -->
<xsl:template name="user.head.content">
<meta name="format-detection" content="telephone=no" />
</xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View file

@ -103,4 +103,22 @@ book nop
</xsl:choose> </xsl:choose>
</xsl:param> </xsl:param>
<!-- Format-detection to prevent smartphones from being too smart -->
<xsl:template name="user.head.content">
<meta name="format-detection" content="telephone=no" />
</xsl:template>
<!-- NUT version/date -->
<xsl:param name="nut.nutversion"/>
<xsl:param name="nut.localdate"/>
<xsl:param name="nut.localtime"/>
<!-- Footer -->
<xsl:template name="user.footer.content">
<div class="navfooter nut_footer">
<hr/>
Last updated <xsl:value-of select="$nut.localdate"/><xsl:text> </xsl:text><xsl:value-of select="$nut.localtime"/> -- Network UPS Tools <xsl:value-of select="$nut.nutversion"/>
</div>
</xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View file

@ -76,7 +76,7 @@ Much better.
The *=* character should be used with care too. There should be only one The *=* character should be used with care too. There should be only one
"simple" *=* character in a line: between the parameter name and its value. "simple" *=* character in a line: between the parameter name and its value.
All other *=* characters should be either escaped or whithin "quotes". All other *=* characters should be either escaped or within "quotes".
password = 123=123 password = 123=123
@ -648,9 +648,9 @@ shut down completely in the middle.
In order for this to work, you need to shutdown NUT (UPS driver, upsd In order for this to work, you need to shutdown NUT (UPS driver, upsd
server and upsmon client) in the suspend script and start them again in server and upsmon client) in the suspend script and start them again in
the resume script. Don't try to keep them running. The upsd server the resume script. Don't try to keep them running. The upsd server
will latch the FSD state (so it won't be useable after resuming) and so will latch the FSD state (so it won't be usable after resuming) and so
will the upsmon client. Some drivers may work after resuming, but many will the upsmon client. Some drivers may work after resuming, but many
don't and some UPS'es will require re-initialization, so it's best not don't and some UPSs will require re-initialization, so it's best not
to keep this running either. to keep this running either.
After stopping driver, server and client you'll have to send the UPS After stopping driver, server and client you'll have to send the UPS

View file

@ -44,6 +44,11 @@ on servers.
Note that you need to install freeipmi (0.8.5 or higher) development package or Note that you need to install freeipmi (0.8.5 or higher) development package or
files. files.
--with-linux_i2c
Build and install i2c drivers (default: auto-detect)
Note that you need to install libi2c development package or files.
--with-drivers=<driver>,<driver>,... --with-drivers=<driver>,<driver>,...
Specify exactly which driver or drivers to build and install (this Specify exactly which driver or drivers to build and install (this
@ -101,7 +106,7 @@ library).
Enable SSL support, using either Mozilla NSS or OpenSSL. Enable SSL support, using either Mozilla NSS or OpenSSL.
If both are present, and nothing was specified, OpenSSL support will If both are present, and nothing was specified, OpenSSL support will
be prefered. Read docs/security.txt for instructions on SSL support. be preferred. Read docs/security.txt for instructions on SSL support.
--with-wrap (default: auto-detect) --with-wrap (default: auto-detect)
@ -115,7 +120,8 @@ Enable IPv6 support.
--with-avahi (default: auto-detect) --with-avahi (default: auto-detect)
Build and install Avahi support, to publish NUT server availability Build and install Avahi support, to publish NUT server availability
using mDNS protocol. using mDNS protocol. This requires Avahi development files for the
Core and Client parts.
--with-libltdl (default: auto-detect) --with-libltdl (default: auto-detect)

View file

@ -371,16 +371,22 @@ Most developers will be well served by committing to their own Git repository,
and having the NUT team merge their changes. and having the NUT team merge their changes.
Git offers a little more flexibility than the +svn update+ command. You may Git offers a little more flexibility than the +svn update+ command. You may
fetch other developers' changes from SVN into your repository, but hold off on fetch other developers' changes into your repository, but hold off on
actually combining them with your branch until you have compared the two actually combining them with your branch until you have compared the two
branches (for instance, with `gitk --all`). Git also allows you to accumulate branches (for instance, with `gitk --all`). Git also allows you to accumulate
more than one commit worth of changes before pushing to another repository. more than one commit worth of changes before pushing to another repository.
This allows development to continue without a constant network connection.
For a quick change to a file in the Git working copy, you can use `git diff` to For a quick change to a file in the Git working copy, you can use `git diff` to
generate a patch to send to the nut-upsdev mailing list. If you have more generate a patch to send to the nut-upsdev mailing list. If you have more
extensive changes, you can use `git format-patch` on a complete commit or extensive changes, you can use `git format-patch` on a complete commit or
branch, and send the resulting series of patches to the list. branch, and send the resulting series of patches to the list.
If you use GitHub's web-based editor to make changes, it tends to create lots
of small commits, one per change per file. Unless there is reason to keep the
intermediate history, we will probably collapse the entire branch into one
commit with `git rebase -i` before merging.
The link:https://git.wiki.kernel.org/index.php/GitSvnCrashCourse[GitSvnCrashCourse] The link:https://git.wiki.kernel.org/index.php/GitSvnCrashCourse[GitSvnCrashCourse]
wiki page has some useful information for long-time users of Subversion. wiki page has some useful information for long-time users of Subversion.
@ -479,7 +485,7 @@ best to add some context such as the commit title or a date.
You may notice that some older commits have `[[SVN:####]]` tags and Fossil-ID You may notice that some older commits have `[[SVN:####]]` tags and Fossil-ID
footers. These were lifted from the old SVN commit messages using reposurgeon, footers. These were lifted from the old SVN commit messages using reposurgeon,
and should not be used as a guide for future commits. and should *not* be used as a guide for future commits.
Repository etiquette and quality assurance Repository etiquette and quality assurance
------------------------------------------ ------------------------------------------
@ -500,28 +506,9 @@ will need to rebase on top of your rebased branch. Obviously, this hinders
collaboration. In this case, we recommend that you rebase only in your private collaboration. In this case, we recommend that you rebase only in your private
repository, and push when things are ready for discussion. Merging instead of repository, and push when things are ready for discussion. Merging instead of
rebasing will help with collaboration, but please do not turn the repository rebasing will help with collaboration, but please do not turn the repository
history into a pile of spaghetti by merging unnecessarily. Be sure that your history into a pile of spaghetti by merging unnecessarily. (Test merges can be
commit messages are descriptive when merging. done on integration branches, which can be discarded if the merge is trivial.)
Be sure that your commit messages are descriptive when merging.
Before pushing your commits upstream, please remember to run +make
distcheck-light+. This checks that the Makefiles are not broken, that all the
relevant files are distributed, and that there are no compilation or
installation errors.
Running +make distcheck-light+ is especially important if you have added or
removed files, or updated configure.in or some Makefile.am. Remember: simply
adding a file to Git does not mean it will be distributed. To distribute a
file, you must update the corresponding Makefile.am.
There is also +make distcheck+, which runs an even stricter set of
tests than +make distcheck-light+, but will not work unless you have all the
optional libraries and features installed.
You may create as many branches as you like in your local Git repository. When
using Git, our preferred way to combine small changes with the upstream
upstream repository is to use `git rebase` on your local branch. This is
equivalent to treating your branch as a series of patches, and re-applying your
patches on top of the upstream changes.
If you haven't created a commit out of your local changes yet, and you want to If you haven't created a commit out of your local changes yet, and you want to
fetch the latest code, you can also use +git stash+ before pulling, then +git fetch the latest code, you can also use +git stash+ before pulling, then +git
@ -561,4 +548,49 @@ Here is an example workflow:
If you are new to Git, but are familiar with SVN, the If you are new to Git, but are familiar with SVN, the
link:http://git-scm.com/course/svn.html[following link] may be of use. link:http://git-scm.com/course/svn.html[following link] may be of use.
[[building]]
Building the Code
-----------------
For a developer, the NUT build process starts with `./autogen.sh`. This script
generates the `./configure` script that end users typically invoke to build
NUT. If you are making a number of changes to the NUT source tree, configuring
with the `--enable-maintainer-mode` flag will ensure that after you change
`Makefile.am`, the `Makefile.in` and `Makefile` get regenerated. At a
minimum, you will need:
* autoconf
* automake
* libtool
* Python
* Perl
After running `./autogen.sh`, you can pass your local configuration options to
`./configure` and run `make` from the top-level directory. To avoid the need
for root privileges when testing new NUT code, you may wish to use
`--prefix=$HOME/local/nut --with-statepath=/tmp`. You can also keep
compilation times down by only building the driver you are currently working
on: `--with-drivers=driver1,dummy-ups`.
Before pushing your commits upstream, please run +make distcheck-light+. This
checks that the Makefiles are not broken, that all the
relevant files are distributed, and that there are no compilation or
installation errors. Note that this requires all of the dependencies necessary
to build the documentation, including asciidoc, a2x, xsltproc, dblatex and any
additional XSL stylesheets.
Running +make distcheck-light+ is especially important if you have added or
removed files, or updated configure.in or some Makefile.am. Remember: simply
adding a file to Git does not mean it will be distributed. To distribute a
file, you must update the corresponding Makefile.am.
There is also +make distcheck+, which runs an even stricter set of
tests than +make distcheck-light+, but will not work unless you have all the
optional libraries and features installed.
Even if you do not use your distribution's packages of NUT, installing the
distribution's list of build dependencies for NUT can reduce the amount of
trial-and-error when installing dependencies. For instance, in Debian, you can
run `apt-get build-dep nut` to install all of the auto* tools as well as any
development libraries and headers.

View file

@ -1,10 +0,0 @@
<revhistory>
<revision>
<revnumber>2.6.0</revnumber>
<date>2011-01-14</date>
<authorinitials></authorinitials>
<revremark>
First release of AsciiDoc documentation for Network UPS Tools (NUT).
</revremark>
</revision>
</revhistory>

23
docs/docinfo.xml.in Normal file
View file

@ -0,0 +1,23 @@
<revhistory>
<!-- Current release of NUT (to be left on top)-->
<revision>
<revnumber>@PACKAGE_VERSION@</revnumber>
<date>@now@</date>
<authorinitials></authorinitials>
<revremark>
Current release of Network UPS Tools (NUT).
</revremark>
</revision>
<!-- 'Real' revision history (news on top) -->
<revision>
<revnumber>2.6.0</revnumber>
<date>2011-01-14</date>
<authorinitials></authorinitials>
<revremark>
First release of AsciiDoc documentation for Network UPS Tools (NUT).
</revremark>
</revision>
</revhistory>

View file

@ -3,6 +3,7 @@ Documentation
============= =============
endif::website[] endif::website[]
User Documentation User Documentation
------------------ ------------------
@ -11,12 +12,14 @@ ifdef::website[]
- NUT User Manual (link:docs/user-manual.chunked/index.html[online]) (link:docs/user-manual.pdf[PDF]) - NUT User Manual (link:docs/user-manual.chunked/index.html[online]) (link:docs/user-manual.pdf[PDF])
- Cables information (link:cables.html[online]) (link:docs/cables.pdf[PDF]) - Cables information (link:cables.html[online]) (link:docs/cables.pdf[PDF])
- link:docs/man/index.html#User_man[User manual pages] - link:docs/man/index.html#User_man[User manual pages]
- link:ddl/index.html#_supported_devices[Devices Dumps Library (DDL)]: Provides information on how devices are supported
endif::website[] endif::website[]
ifndef::website[] ifndef::website[]
- link:../FAQ.html[FAQ - Frequently Asked Questions] - link:../FAQ.html[FAQ - Frequently Asked Questions]
- linkdoc:user-manual[NUT user manual] - linkdoc:user-manual[NUT user manual]
- <<Cables_information,Cables information>> - <<Cables_information,Cables information>>
- link:../man/index.html#User_man[User manual pages] - link:../man/index.html#User_man[User manual pages]
- link:http://www.networkupstools.org/ddl/index.html#_supported_devices[Devices Dumps Library (DDL)]: Provides information on how devices are supported
endif::website[] endif::website[]
Developer Documentation Developer Documentation
@ -28,6 +31,7 @@ ifdef::website[]
- link:ups-protocols.html[UPS protocols library] - link:ups-protocols.html[UPS protocols library]
- link:docs/man/index.html#Developer_man[Developer manual pages] - link:docs/man/index.html#Developer_man[Developer manual pages]
- link:nut-qa.html[NUT Quality Assurance] - link:nut-qa.html[NUT Quality Assurance]
- link:ddl/index.html[Devices Dumps Library (DDL)]: Provides simulation data to the linkman:dummy-ups[8] driver
endif::website[] endif::website[]
ifndef::website[] ifndef::website[]
- linkdoc:developer-guide[NUT Developer Guide] - linkdoc:developer-guide[NUT Developer Guide]
@ -35,6 +39,7 @@ ifndef::website[]
- link:ups-protocols.html[UPS protocols library] - link:ups-protocols.html[UPS protocols library]
- link:../man/index.html#Developer_man[Developer manual pages] - link:../man/index.html#Developer_man[Developer manual pages]
- link:nut-qa.html[NUT Quality Assurance] - link:nut-qa.html[NUT Quality Assurance]
- link:http://www.networkupstools.org/ddl/index.html[Devices Dumps Library (DDL)]: Provides simulation data to the linkman:dummy-ups[8] driver
endif::website[] endif::website[]
Offsite Links Offsite Links
@ -51,6 +56,7 @@ These are general information about UPS and PDU.
These are writeups by users of the software. These are writeups by users of the software.
- link:http://rogerprice.org/NUT.html[NUT Setup with openSUSE] '(Roger Price)'
- link:http://www.dimat.unina2.it/LCS/MonitoraggioUpsNutUbuntu10-eng.htm[Deploying NUT on an Ubuntu 10.04 cluster] '(Stefano Angelone)' - link:http://www.dimat.unina2.it/LCS/MonitoraggioUpsNutUbuntu10-eng.htm[Deploying NUT on an Ubuntu 10.04 cluster] '(Stefano Angelone)'
- link:http://blog.shadypixel.com/monitoring-a-ups-with-nut-on-debian-or-ubuntu-linux[Monitoring a UPS with nut on Debian or Ubuntu Linux] '(Avery Fay)' - link:http://blog.shadypixel.com/monitoring-a-ups-with-nut-on-debian-or-ubuntu-linux[Monitoring a UPS with nut on Debian or Ubuntu Linux] '(Avery Fay)'
- link:http://linux.developpez.com/cours/upsusb/[Installation et gestion d'un UPS USB en réseau sous linux] '(Olivier Van Hoof, french)' - link:http://linux.developpez.com/cours/upsusb/[Installation et gestion d'un UPS USB en réseau sous linux] '(Olivier Van Hoof, french)'
@ -67,5 +73,5 @@ These are writeups by users of the software.
News articles and Press releases News articles and Press releases
-------------------------------- --------------------------------
- link:http://www.crn.com/white-box/199000818?pgno=1[Linux UPS Without Tears] '(A. Lizard)' - link:http://www.crn.com/news/channel-programs/199000818/linux-ups-without-tears.htm[Linux UPS Without Tears] '(A. Lizard)'
- link:http://networking.earthweb.com/netsysm/article.php/10954_3295841_1[Graceful UPS shutdowns on Linux] '(Carla Schroder)' - link:http://www.enterprisenetworkingplanet.com/netsysm/article.php/3295841/Graceful-UPS-Shutdowns-on-Linux.htm[Graceful UPS shutdowns on Linux] '(Carla Schroder)'

View file

@ -15,7 +15,7 @@ ifdef::website[]
link:docs/user-manual.chunked/ar01s09.html#verifySourceSig[following procedure] link:docs/user-manual.chunked/ar01s09.html#verifySourceSig[following procedure]
endif::website[] endif::website[]
ifndef::website[] ifndef::website[]
- Else, you can read the <<verifySourceSig,following procedure>>. <<verifySourceSig,following procedure>>.
endif::website[] endif::website[]
to do so. to do so.
================================================================================ ================================================================================
@ -110,7 +110,8 @@ Mandriva,
link:https://admin.fedoraproject.org/pkgdb/acls/name/nut[Red Hat / Fedora], link:https://admin.fedoraproject.org/pkgdb/acls/name/nut[Red Hat / Fedora],
link:http://software.opensuse.org/package/nut[Novell Suse / openSUSE], link:http://software.opensuse.org/package/nut[Novell Suse / openSUSE],
link:https://forum.openwrt.org/viewtopic.php?id=26269[OpenWrt], link:https://forum.openwrt.org/viewtopic.php?id=26269[OpenWrt],
link:http://packages.ubuntu.com/nut[Ubuntu]. link:http://packages.ubuntu.com/nut[Ubuntu],
link:https://github.com/voidlinux/xbps-packages/blob/master/srcpkgs/network-ups-tools/template[Void Linux].
- BSD systems: - BSD systems:
link:http://www.FreeBSD.org/cgi/ports.cgi?query=^nut-&amp;stype=name[FreeBSD], link:http://www.FreeBSD.org/cgi/ports.cgi?query=^nut-&amp;stype=name[FreeBSD],
@ -143,7 +144,7 @@ Virtualization packages
VMware VMware
~~~~~~ ~~~~~~
- NUT client for ESXi 5.0 (offsite, René Garcia) - NUT client 2.7.2 for ESXi 5.x (offsite, René Garcia)
* link:http://rene.margar.fr/2012/05/client-nut-pour-esxi-5-0/[blog entry (French)] * link:http://rene.margar.fr/2012/05/client-nut-pour-esxi-5-0/[blog entry (French)]
* link:http://rene.margar.fr/downloads/NutClient-ESXi500-1.2.0.tar.gz[VIB package (v1.2.0)] * link:http://rene.margar.fr/downloads/NutClient-ESXi500-1.3.0.tar.gz[VIB package (v1.3.0)]

View file

@ -120,7 +120,7 @@ no mysteries or secrets in your critical monitoring tools.
UPS management and control UPS management and control
-------------------------- --------------------------
- Writable variables may be edited on higher end equipment for local customizations - Writable variables may be edited on higher end equipment for local customization
- Status monitoring can generate notifications (email/pager/SMS/...) on alert conditions - Status monitoring can generate notifications (email/pager/SMS/...) on alert conditions

View file

@ -234,7 +234,7 @@ On July 25, 2003, 1.4.0 was released. It contained support for both the old "REQ
July 2003: pushing towards 2.0 July 2003: pushing towards 2.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.5.0 forked from 1.4.0 and was released on July 29, 2003. The first changes were to throw out anything which was providing compatibilty with the older versions of the software. This means that 1.5 and the eventual 2.0 will not talk to anything older than 1.4. 1.5.0 forked from 1.4.0 and was released on July 29, 2003. The first changes were to throw out anything which was providing compatibility with the older versions of the software. This means that 1.5 and the eventual 2.0 will not talk to anything older than 1.4.
This tree continues to evolve with new serial routines for the drivers which are intended to replace the aging upscommon code which dates back to the early 0.x releases. The original routines would call alarm and read in a tight loop while fetching characters. The new functions are much cleaner, and wait for data with select. This makes for much cleaner code and easier strace/ktrace logs, since the number of syscalls has been greatly reduced. This tree continues to evolve with new serial routines for the drivers which are intended to replace the aging upscommon code which dates back to the early 0.x releases. The original routines would call alarm and read in a tight loop while fetching characters. The new functions are much cleaner, and wait for data with select. This makes for much cleaner code and easier strace/ktrace logs, since the number of syscalls has been greatly reduced.

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -516,6 +516,15 @@ endif
HTML_MACOSX_MANS = macosx-ups.html HTML_MACOSX_MANS = macosx-ups.html
SRC_LINUX_I2C_PAGES = asem.txt
MAN_LINUX_I2C_PAGES = asem.8
if WITH_LINUX_I2C
man8_MANS += $(LINUX_I2C_PAGES)
endif
HTML_LINUX_I2C_MANS = asem.html
# SOME_DRIVERS # SOME_DRIVERS
endif endif
@ -533,7 +542,8 @@ MAN_MANS = \
$(MAN_NETXML_PAGES) \ $(MAN_NETXML_PAGES) \
$(MAN_POWERMAN_PAGES) \ $(MAN_POWERMAN_PAGES) \
$(MAN_IPMIPSU_PAGES) \ $(MAN_IPMIPSU_PAGES) \
$(MAN_MACOSX_PAGES) $(MAN_MACOSX_PAGES) \
$(MAN_LINUX_I2C_PAGES)
# distribute everything, even those not installed by default # distribute everything, even those not installed by default
# Note that 'dist' target requires AsciiDoc! # Note that 'dist' target requires AsciiDoc!
@ -550,6 +560,7 @@ EXTRA_DIST = \
$(SRC_POWERMAN_PAGES) \ $(SRC_POWERMAN_PAGES) \
$(SRC_IPMIPSU_PAGES) \ $(SRC_IPMIPSU_PAGES) \
$(SRC_MACOSX_PAGES) \ $(SRC_MACOSX_PAGES) \
$(SRC_LINUX_I2C_PAGES) \
$(MAN_MANS) \ $(MAN_MANS) \
asciidoc.conf asciidoc.conf
@ -565,7 +576,8 @@ HTML_MANS = \
$(HTML_NETXML_MANS) \ $(HTML_NETXML_MANS) \
$(HTML_POWERMAN_MANS) \ $(HTML_POWERMAN_MANS) \
$(HTML_IPMIPSU_MANS) \ $(HTML_IPMIPSU_MANS) \
$(HTML_MACOSX_MANS) $(HTML_MACOSX_MANS) \
$(HTML_LINUX_I2C_MANS)
all: all:
@ -581,10 +593,12 @@ if HAVE_ASCIIDOC
$(ASCIIDOC) --backend=xhtml11 \ $(ASCIIDOC) --backend=xhtml11 \
--attribute localdate=`TZ=UTC date +%Y-%m-%d` \ --attribute localdate=`TZ=UTC date +%Y-%m-%d` \
--attribute localtime=`TZ=UTC date +%H:%M:%S` \ --attribute localtime=`TZ=UTC date +%H:%M:%S` \
--attribute nutversion="@PACKAGE_VERSION@" \
-o $@ $< -o $@ $<
### Prior to Asciidoc ~8.6.8, the --destination-dir flag didn't seem to affect the location of the intermediate .xml file. ### Prior to Asciidoc ~8.6.8, the --destination-dir flag didn't seem to affect the location of the intermediate .xml file.
A2X_MANPAGE_OPTS = --doctype manpage --format manpage \ A2X_MANPAGE_OPTS = --doctype manpage --format manpage \
--xsltproc-opts "--nonet" \
--attribute mansource="Network UPS Tools" \ --attribute mansource="Network UPS Tools" \
--attribute manversion="@PACKAGE_VERSION@" \ --attribute manversion="@PACKAGE_VERSION@" \
--attribute manmanual="NUT Manual" \ --attribute manmanual="NUT Manual" \
@ -605,18 +619,48 @@ A2X_MANPAGE_OPTS = --doctype manpage --format manpage \
else !HAVE_ASCIIDOC else !HAVE_ASCIIDOC
.txt.html: .txt.html:
@echo "Not (re)building $@ manual page, since 'asciidoc' was not found." @if [ -r "$@" ]; then \
echo "Not (re)building $@ manual page, since 'asciidoc', 'xmllint' or 'xsltproc' were not found." ; \
else \
echo "Could not find prebuilt $@ manual page." ; \
echo "If you are building from Git, do you have all of the asciidoc/a2x tools installed?"; \
exit 1; \
fi
.txt.1: .txt.1:
@echo "Using existing $@ manual page, since 'asciidoc' was not found." @if [ -r "$@" ]; then \
echo "Not (re)building $@ manual page, since 'asciidoc', 'xmllint' or 'xsltproc' were not found." ; \
else \
echo "Could not find prebuilt $@ manual page." ; \
echo "If you are building from Git, do you have all of the asciidoc/a2x tools installed?"; \
exit 1; \
fi
.txt.3: .txt.3:
@echo "Using existing $@ manual page, since 'asciidoc' was not found." @if [ -r "$@" ]; then \
echo "Not (re)building $@ manual page, since 'asciidoc', 'xmllint' or 'xsltproc' were not found." ; \
else \
echo "Could not find prebuilt $@ manual page." ; \
echo "If you are building from Git, do you have all of the asciidoc/a2x tools installed?"; \
exit 1; \
fi
.txt.5: .txt.5:
@echo "Using existing $@ manual page, since 'asciidoc' was not found." @if [ -r "$@" ]; then \
echo "Not (re)building $@ manual page, since 'asciidoc', 'xmllint' or 'xsltproc' were not found." ; \
else \
echo "Could not find prebuilt $@ manual page." ; \
echo "If you are building from Git, do you have all of the asciidoc/a2x tools installed?"; \
exit 1; \
fi
.txt.8: .txt.8:
@echo "Using existing $@ manual page, since 'asciidoc' was not found." @if [ -r "$@" ]; then \
echo "Not (re)building $@ manual page, since 'asciidoc', 'xmllint' or 'xsltproc' were not found." ; \
else \
echo "Could not find prebuilt $@ manual page." ; \
echo "If you are building from Git, do you have all of the asciidoc/a2x tools installed?"; \
exit 1; \
fi
endif !HAVE_ASCIIDOC endif !HAVE_ASCIIDOC

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.6 from Makefile.am. # Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2013 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -29,23 +28,51 @@
# FIXME: investigate an autogen.sh hook # FIXME: investigate an autogen.sh hook
# - Ref: http://www.gnu.org/software/hello/manual/automake/Man-pages.html # - Ref: http://www.gnu.org/software/hello/manual/automake/Man-pages.html
VPATH = @srcdir@ VPATH = @srcdir@
am__make_dryrun = \ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
{ \ am__make_running_with_option = \
am__dry=no; \ case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \ case $$MAKEFLAGS in \
*\\[\ \ ]*) \ *\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ bs=\\; \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
*) \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \ esac; \
done;; \ fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \ esac; \
test $$am__dry = yes; \ case $$flg in \
} *$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -79,8 +106,9 @@ target_triplet = @target@
@SOME_DRIVERS_FALSE@@WITH_LIBPOWERMAN_TRUE@am__append_8 = $(MAN_POWERMAN_PAGES) @SOME_DRIVERS_FALSE@@WITH_LIBPOWERMAN_TRUE@am__append_8 = $(MAN_POWERMAN_PAGES)
@SOME_DRIVERS_FALSE@@WITH_IPMI_TRUE@am__append_9 = $(MAN_IPMIPSU_PAGES) @SOME_DRIVERS_FALSE@@WITH_IPMI_TRUE@am__append_9 = $(MAN_IPMIPSU_PAGES)
@SOME_DRIVERS_FALSE@@WITH_MACOSX_TRUE@am__append_10 = $(MAN_MACOSX_PAGES) @SOME_DRIVERS_FALSE@@WITH_MACOSX_TRUE@am__append_10 = $(MAN_MACOSX_PAGES)
@SOME_DRIVERS_FALSE@@WITH_LINUX_I2C_TRUE@am__append_11 = $(LINUX_I2C_PAGES)
subdir = docs/man subdir = docs/man
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@ -109,6 +137,18 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES = SOURCES =
DIST_SOURCES = DIST_SOURCES =
am__can_run_installinfo = \ am__can_run_installinfo = \
@ -151,10 +191,12 @@ man5dir = $(mandir)/man5
man8dir = $(mandir)/man8 man8dir = $(mandir)/man8
NROFF = nroff NROFF = nroff
MANS = $(man1_MANS) $(man3_MANS) $(man5_MANS) $(man8_MANS) MANS = $(man1_MANS) $(man3_MANS) $(man5_MANS) $(man8_MANS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
A2X = @A2X@ A2X = @A2X@
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
ASCIIDOC = @ASCIIDOC@ ASCIIDOC = @ASCIIDOC@
ASPELL = @ASPELL@ ASPELL = @ASPELL@
@ -261,12 +303,15 @@ SED = @SED@
SERLIBS = @SERLIBS@ SERLIBS = @SERLIBS@
SET_MAKE = @SET_MAKE@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
SOURCE_HIGHLIGHT = @SOURCE_HIGHLIGHT@
STATEPATH = @STATEPATH@ STATEPATH = @STATEPATH@
STRIP = @STRIP@ STRIP = @STRIP@
SUN_LIBUSB = @SUN_LIBUSB@ SUN_LIBUSB = @SUN_LIBUSB@
TREE_VERSION = @TREE_VERSION@ TREE_VERSION = @TREE_VERSION@
VERSION = @VERSION@ VERSION = @VERSION@
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@ WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
XMLLINT = @XMLLINT@
XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
@ -311,6 +356,7 @@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
now = @now@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
pdfdir = @pdfdir@ pdfdir = @pdfdir@
pkgconfigdir = @pkgconfigdir@ pkgconfigdir = @pkgconfigdir@
@ -384,7 +430,7 @@ MAN_CLIENT_PAGES = \
man8_MANS = $(MAN_CLIENT_PAGES) $(MAN_TOOL_PAGES) $(am__append_2) \ man8_MANS = $(MAN_CLIENT_PAGES) $(MAN_TOOL_PAGES) $(am__append_2) \
$(am__append_3) $(am__append_4) $(am__append_5) \ $(am__append_3) $(am__append_4) $(am__append_5) \
$(am__append_6) $(am__append_7) $(am__append_8) \ $(am__append_6) $(am__append_7) $(am__append_8) \
$(am__append_9) $(am__append_10) $(am__append_9) $(am__append_10) $(am__append_11)
HTML_CLIENT_MANS = \ HTML_CLIENT_MANS = \
nutupsdrv.html \ nutupsdrv.html \
upsc.html \ upsc.html \
@ -782,6 +828,9 @@ HTML_DEV_MANS = \
@SOME_DRIVERS_FALSE@SRC_MACOSX_PAGES = macosx-ups.txt @SOME_DRIVERS_FALSE@SRC_MACOSX_PAGES = macosx-ups.txt
@SOME_DRIVERS_FALSE@MAN_MACOSX_PAGES = macosx-ups.8 @SOME_DRIVERS_FALSE@MAN_MACOSX_PAGES = macosx-ups.8
@SOME_DRIVERS_FALSE@HTML_MACOSX_MANS = macosx-ups.html @SOME_DRIVERS_FALSE@HTML_MACOSX_MANS = macosx-ups.html
@SOME_DRIVERS_FALSE@SRC_LINUX_I2C_PAGES = asem.txt
@SOME_DRIVERS_FALSE@MAN_LINUX_I2C_PAGES = asem.8
@SOME_DRIVERS_FALSE@HTML_LINUX_I2C_MANS = asem.html
# SOME_DRIVERS # SOME_DRIVERS
MAN_MANS = \ MAN_MANS = \
@ -798,7 +847,8 @@ MAN_MANS = \
$(MAN_NETXML_PAGES) \ $(MAN_NETXML_PAGES) \
$(MAN_POWERMAN_PAGES) \ $(MAN_POWERMAN_PAGES) \
$(MAN_IPMIPSU_PAGES) \ $(MAN_IPMIPSU_PAGES) \
$(MAN_MACOSX_PAGES) $(MAN_MACOSX_PAGES) \
$(MAN_LINUX_I2C_PAGES)
# distribute everything, even those not installed by default # distribute everything, even those not installed by default
@ -816,6 +866,7 @@ EXTRA_DIST = \
$(SRC_POWERMAN_PAGES) \ $(SRC_POWERMAN_PAGES) \
$(SRC_IPMIPSU_PAGES) \ $(SRC_IPMIPSU_PAGES) \
$(SRC_MACOSX_PAGES) \ $(SRC_MACOSX_PAGES) \
$(SRC_LINUX_I2C_PAGES) \
$(MAN_MANS) \ $(MAN_MANS) \
asciidoc.conf asciidoc.conf
@ -831,13 +882,15 @@ HTML_MANS = \
$(HTML_NETXML_MANS) \ $(HTML_NETXML_MANS) \
$(HTML_POWERMAN_MANS) \ $(HTML_POWERMAN_MANS) \
$(HTML_IPMIPSU_MANS) \ $(HTML_IPMIPSU_MANS) \
$(HTML_MACOSX_MANS) $(HTML_MACOSX_MANS) \
$(HTML_LINUX_I2C_MANS)
CLEANFILES = *.xml *.html CLEANFILES = *.xml *.html
SUFFIXES = .txt .html .1 .3 .5 .8 SUFFIXES = .txt .html .1 .3 .5 .8
### Prior to Asciidoc ~8.6.8, the --destination-dir flag didn't seem to affect the location of the intermediate .xml file. ### Prior to Asciidoc ~8.6.8, the --destination-dir flag didn't seem to affect the location of the intermediate .xml file.
@HAVE_ASCIIDOC_TRUE@A2X_MANPAGE_OPTS = --doctype manpage --format manpage \ @HAVE_ASCIIDOC_TRUE@A2X_MANPAGE_OPTS = --doctype manpage --format manpage \
@HAVE_ASCIIDOC_TRUE@ --xsltproc-opts "--nonet" \
@HAVE_ASCIIDOC_TRUE@ --attribute mansource="Network UPS Tools" \ @HAVE_ASCIIDOC_TRUE@ --attribute mansource="Network UPS Tools" \
@HAVE_ASCIIDOC_TRUE@ --attribute manversion="@PACKAGE_VERSION@" \ @HAVE_ASCIIDOC_TRUE@ --attribute manversion="@PACKAGE_VERSION@" \
@HAVE_ASCIIDOC_TRUE@ --attribute manmanual="NUT Manual" \ @HAVE_ASCIIDOC_TRUE@ --attribute manmanual="NUT Manual" \
@ -1047,27 +1100,14 @@ uninstall-man8:
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir)
tags: TAGS tags TAGS:
TAGS:
ctags: CTAGS ctags CTAGS:
CTAGS:
cscope cscopelist:
distdir: $(DISTFILES) distdir: $(DISTFILES)
@list='$(MANS)'; if test -n "$$list"; then \
list=`for p in $$list; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
if test -n "$$list" && \
grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
echo " typically \`make maintainer-clean' will remove them" >&2; \
exit 1; \
else :; fi; \
else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \ list='$(DISTFILES)'; \
@ -1207,18 +1247,18 @@ uninstall-man: uninstall-man1 uninstall-man3 uninstall-man5 \
.MAKE: install-am install-strip .MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \ .PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \ cscopelist-am ctags-am distclean distclean-generic \
dvi-am html html-am info info-am install install-am \ distclean-libtool distdir dvi dvi-am html html-am info info-am \
install-data install-data-am install-dvi install-dvi-am \ install install-am install-data install-data-am install-dvi \
install-exec install-exec-am install-html install-html-am \ install-dvi-am install-exec install-exec-am install-html \
install-info install-info-am install-man install-man1 \ install-html-am install-info install-info-am install-man \
install-man3 install-man5 install-man8 install-pdf \ install-man1 install-man3 install-man5 install-man8 \
install-pdf-am install-ps install-ps-am install-strip \ install-pdf install-pdf-am install-ps install-ps-am \
installcheck installcheck-am installdirs maintainer-clean \ install-strip installcheck installcheck-am installdirs \
maintainer-clean-generic mostlyclean mostlyclean-generic \ maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
uninstall-man uninstall-man1 uninstall-man3 uninstall-man5 \ tags-am uninstall uninstall-am uninstall-man uninstall-man1 \
uninstall-man8 uninstall-man3 uninstall-man5 uninstall-man8
all: all:
@ -1229,6 +1269,7 @@ html-man: $(HTML_MANS) index.html
@HAVE_ASCIIDOC_TRUE@ $(ASCIIDOC) --backend=xhtml11 \ @HAVE_ASCIIDOC_TRUE@ $(ASCIIDOC) --backend=xhtml11 \
@HAVE_ASCIIDOC_TRUE@ --attribute localdate=`TZ=UTC date +%Y-%m-%d` \ @HAVE_ASCIIDOC_TRUE@ --attribute localdate=`TZ=UTC date +%Y-%m-%d` \
@HAVE_ASCIIDOC_TRUE@ --attribute localtime=`TZ=UTC date +%H:%M:%S` \ @HAVE_ASCIIDOC_TRUE@ --attribute localtime=`TZ=UTC date +%H:%M:%S` \
@HAVE_ASCIIDOC_TRUE@ --attribute nutversion="@PACKAGE_VERSION@" \
@HAVE_ASCIIDOC_TRUE@ -o $@ $< @HAVE_ASCIIDOC_TRUE@ -o $@ $<
@HAVE_ASCIIDOC_TRUE@.txt.1: @HAVE_ASCIIDOC_TRUE@.txt.1:
@ -1244,19 +1285,49 @@ html-man: $(HTML_MANS) index.html
@HAVE_ASCIIDOC_TRUE@ $(A2X) $(A2X_MANPAGE_OPTS) $< @HAVE_ASCIIDOC_TRUE@ $(A2X) $(A2X_MANPAGE_OPTS) $<
@HAVE_ASCIIDOC_FALSE@.txt.html: @HAVE_ASCIIDOC_FALSE@.txt.html:
@HAVE_ASCIIDOC_FALSE@ @echo "Not (re)building $@ manual page, since 'asciidoc' was not found." @HAVE_ASCIIDOC_FALSE@ @if [ -r "$@" ]; then \
@HAVE_ASCIIDOC_FALSE@ echo "Not (re)building $@ manual page, since 'asciidoc', 'xmllint' or 'xsltproc' were not found." ; \
@HAVE_ASCIIDOC_FALSE@ else \
@HAVE_ASCIIDOC_FALSE@ echo "Could not find prebuilt $@ manual page." ; \
@HAVE_ASCIIDOC_FALSE@ echo "If you are building from Git, do you have all of the asciidoc/a2x tools installed?"; \
@HAVE_ASCIIDOC_FALSE@ exit 1; \
@HAVE_ASCIIDOC_FALSE@ fi
@HAVE_ASCIIDOC_FALSE@.txt.1: @HAVE_ASCIIDOC_FALSE@.txt.1:
@HAVE_ASCIIDOC_FALSE@ @echo "Using existing $@ manual page, since 'asciidoc' was not found." @HAVE_ASCIIDOC_FALSE@ @if [ -r "$@" ]; then \
@HAVE_ASCIIDOC_FALSE@ echo "Not (re)building $@ manual page, since 'asciidoc', 'xmllint' or 'xsltproc' were not found." ; \
@HAVE_ASCIIDOC_FALSE@ else \
@HAVE_ASCIIDOC_FALSE@ echo "Could not find prebuilt $@ manual page." ; \
@HAVE_ASCIIDOC_FALSE@ echo "If you are building from Git, do you have all of the asciidoc/a2x tools installed?"; \
@HAVE_ASCIIDOC_FALSE@ exit 1; \
@HAVE_ASCIIDOC_FALSE@ fi
@HAVE_ASCIIDOC_FALSE@.txt.3: @HAVE_ASCIIDOC_FALSE@.txt.3:
@HAVE_ASCIIDOC_FALSE@ @echo "Using existing $@ manual page, since 'asciidoc' was not found." @HAVE_ASCIIDOC_FALSE@ @if [ -r "$@" ]; then \
@HAVE_ASCIIDOC_FALSE@ echo "Not (re)building $@ manual page, since 'asciidoc', 'xmllint' or 'xsltproc' were not found." ; \
@HAVE_ASCIIDOC_FALSE@ else \
@HAVE_ASCIIDOC_FALSE@ echo "Could not find prebuilt $@ manual page." ; \
@HAVE_ASCIIDOC_FALSE@ echo "If you are building from Git, do you have all of the asciidoc/a2x tools installed?"; \
@HAVE_ASCIIDOC_FALSE@ exit 1; \
@HAVE_ASCIIDOC_FALSE@ fi
@HAVE_ASCIIDOC_FALSE@.txt.5: @HAVE_ASCIIDOC_FALSE@.txt.5:
@HAVE_ASCIIDOC_FALSE@ @echo "Using existing $@ manual page, since 'asciidoc' was not found." @HAVE_ASCIIDOC_FALSE@ @if [ -r "$@" ]; then \
@HAVE_ASCIIDOC_FALSE@ echo "Not (re)building $@ manual page, since 'asciidoc', 'xmllint' or 'xsltproc' were not found." ; \
@HAVE_ASCIIDOC_FALSE@ else \
@HAVE_ASCIIDOC_FALSE@ echo "Could not find prebuilt $@ manual page." ; \
@HAVE_ASCIIDOC_FALSE@ echo "If you are building from Git, do you have all of the asciidoc/a2x tools installed?"; \
@HAVE_ASCIIDOC_FALSE@ exit 1; \
@HAVE_ASCIIDOC_FALSE@ fi
@HAVE_ASCIIDOC_FALSE@.txt.8: @HAVE_ASCIIDOC_FALSE@.txt.8:
@HAVE_ASCIIDOC_FALSE@ @echo "Using existing $@ manual page, since 'asciidoc' was not found." @HAVE_ASCIIDOC_FALSE@ @if [ -r "$@" ]; then \
@HAVE_ASCIIDOC_FALSE@ echo "Not (re)building $@ manual page, since 'asciidoc', 'xmllint' or 'xsltproc' were not found." ; \
@HAVE_ASCIIDOC_FALSE@ else \
@HAVE_ASCIIDOC_FALSE@ echo "Could not find prebuilt $@ manual page." ; \
@HAVE_ASCIIDOC_FALSE@ echo "If you are building from Git, do you have all of the asciidoc/a2x tools installed?"; \
@HAVE_ASCIIDOC_FALSE@ exit 1; \
@HAVE_ASCIIDOC_FALSE@ fi
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: al175 .\" Title: al175
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "AL175" "8" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "AL175" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -77,7 +77,6 @@ Besides status, this driver reads UPS state into following variables:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fBups\&.test\&.result\fR \fBups\&.test\&.result\fR
.RE .RE
.sp .sp
@ -89,7 +88,6 @@ Besides status, this driver reads UPS state into following variables:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fBoutput\&.voltage\&.nominal\fR \fBoutput\&.voltage\&.nominal\fR
.RE .RE
.sp .sp
@ -101,7 +99,6 @@ Besides status, this driver reads UPS state into following variables:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fBoutput\&.current\fR \fBoutput\&.current\fR
.RE .RE
.sp .sp
@ -113,7 +110,6 @@ Besides status, this driver reads UPS state into following variables:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fBbattery\&.voltage\&.nominal\fR \fBbattery\&.voltage\&.nominal\fR
.RE .RE
.sp .sp
@ -125,7 +121,6 @@ Besides status, this driver reads UPS state into following variables:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fBbattery\&.current\fR \fBbattery\&.current\fR
.RE .RE
.sp .sp
@ -137,7 +132,6 @@ Besides status, this driver reads UPS state into following variables:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fBbattery\&.temperature\fR \fBbattery\&.temperature\fR
.RE .RE
.sp .sp
@ -149,7 +143,6 @@ Besides status, this driver reads UPS state into following variables:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fBinput\&.transfer\&.boost\&.low\fR \fBinput\&.transfer\&.boost\&.low\fR
.RE .RE
.SH "KNOWN ISSUES AND BUGS" .SH "KNOWN ISSUES AND BUGS"

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: apcsmart-old .\" Title: apcsmart-old
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "APCSMART\-OLD" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "APCSMART\-OLD" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: apcsmart .\" Title: apcsmart
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "APCSMART" "8" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "APCSMART" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -33,7 +33,7 @@ apcsmart \- Driver for American Power Conversion Smart Protocol UPS equipment
.sp .sp
\fBapcsmart\fR \-h \fBapcsmart\fR \-h
.sp .sp
\fBapcsmart\fR \-a \*(AqUPS_NAME\*(Aq [\-x option=value \&...] \fBapcsmart\fR \-a \fIUPS_NAME\fR [\-x option=value \&...]
.if n \{\ .if n \{\
.sp .sp
.\} .\}
@ -52,15 +52,15 @@ This man page only documents the hardware\-specific features of the apcsmart dri
.RE .RE
.SH "SUPPORTED HARDWARE" .SH "SUPPORTED HARDWARE"
.sp .sp
The apcsmart driver should recognize (or at the very least work with) majority of Smart\-UPS models \- which includes Smart\-UPS, Matrix\-UPS and Back\-UPS lineups, among few other ones\&. The apcsmart driver should recognize (or at the very least, work with) the majority of Smart\-UPS models \- which includes Smart\-UPS, Matrix\-UPS and Back\-UPS lineups, among few other ones\&.
.sp .sp
Currently we can roughly divide APC hardware into 3 groups (note that the division isn\*(Aqt strict by any means, and the borders between those are pretty fuzzy): Currently, we can roughly divide APC hardware into four groups (note that the division isn\(cqt strict by any means, and the borders between those are pretty fuzzy):
.PP .PP
[very] "old" models [very] "old" models
.RS 4 .RS 4
These models usually have old APC logo, white color and These models usually have old APC logo, white color and
\fIno\fR \fIno\fR
programmable eeprom; You won\*(Aqt find them listed anywhere on APC\(cqs site either\&. The support for those will be usually based on driver\*(Aqs compatibility tables, or if the model (firmware) is not listed in those \- the driver will try to follow the very basic subset of features, while still trying to remain useful\&. Despite "smart" tagname, they often tend to behave in pretty dumb way (see the section below about shutdown behaviour)\&. programmable EEPROM; you won\(cqt find them listed anywhere on APC\(cqs site either\&. The support for those will be usually based on driver\(cqs compatibility tables, or if the model (firmware) is not listed in those \- the driver will try to follow the very basic subset of features, while still trying to remain useful\&. Despite "smart" tagname, they often tend to behave in pretty dumb way (see the section below about shutdown behaviour)\&.
.PP .PP
\fBExample models:\fR \fBExample models:\fR
.sp .sp
@ -89,16 +89,52 @@ Smart\-UPS 900I
.PP .PP
"new" models "new" models
.RS 4 .RS 4
These models usually come from late 1990s / pre\-2009 times\&. They are often referred as "3rd\&. gen"\&. For the most part, they have programmable eeprom, report supported commands and capabilites, and should work just fine with the apcsmart driver\&. These models usually come from late 1990s / pre\-2009 times\&. They are often referred as "3rd\&. gen"\&. For the most part, they have programmable EEPROM, report supported commands and capabilites, and should work just fine with the apcsmart driver\&.
.RE .RE
.PP .PP
"microlink" models "microlink" models
.RS 4 .RS 4
WARNING: these are not WARNING: these are not
\fInatively\fR \fInatively\fR
supported by apcsmart (or apcupsd for that matter, if you\(cqre wondering)\&. Around 2007 APC (now APC Schneider) decided to go back to its proprietry roots and all the new models (SMT, SMX, SURTD) use completely different protocol and cables\&. If you purchased a new APC UPS, that uses cable with rj45 on the one end, and db\-9 on the other \- then you have such model\&. Your only option to support it through supported by
\fBapcsmart\fR
(or
\fBapcupsd\fR, for that matter, if you\(cqre wondering)\&. Around 2007, APC (now APC Schneider) decided to go back to its proprietry roots, and all the new models (SMT, SMX, SURTD) use completely different protocol and cables\&. If you purchased a new APC UPS \- that uses cable with RJ45 on the one end, and DB\-9 on the other \- then you have such model\&. Your only option to support it through
\fBNUT\fR \fBNUT\fR
is to purchase "legacy communications card" \- part #AP9620 (google \*(AqAP9620\*(Aq for more details)\&. Or if that\*(Aqs not an option, rely on official software\&. is to purchase a "legacy communications card" \- part #AP9620 (google \*(AqAP9620\*(Aq for more details)\&. Or if that\(cqs not an option, rely on official software\&.
.RE
.PP
Microsol models
.RS 4
Several Microsol serial models sold in Brazil have been rebranded as APC Back\-UPS, and the model numbers tend to start with "BZ"\&. If you have one of these "Nobreaks", they will not work with the
\fBapcsmart\fR
driver \- please see the
\fBsolis\fR(8)
driver instead\&.
.PP
\fBExample models:\fR
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Back\-UPS BZ1200\-BR
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Back\-UPS BZ2200BI\-BR
.RE
.RE .RE
.sp .sp
Another thing to remember is that Smart protocol is not USB protocol\&. If you have UPS with both USB and serial ports, then depending on how you connect it, you will need either apcsmart or usbhid\-ups driver\&. Another thing to remember is that Smart protocol is not USB protocol\&. If you have UPS with both USB and serial ports, then depending on how you connect it, you will need either apcsmart or usbhid\-ups driver\&.
@ -135,7 +171,7 @@ Alternatively, you can also provide it on the command line using:
\-x \fBcable\fR=940\-0095B \-x \fBcable\fR=940\-0095B
.SH "TTY MODES" .SH "TTY MODES"
.sp .sp
By default the driver works in canonical mode, but it showed to be a problem in windows systems\&. Furthermore there\(cqs a possibility of some obscure serial cards or serial\-usb convertes that could cause problems as well\&. You can use \*(Aqttymode=\*(Aq option to force non\-canonical discipline in \fBups.conf\fR(5): By default the driver works in canonical mode, but it proved to be a problem in Windows systems\&. Furthermore there\(cqs a possibility of some obscure serial cards or serial\-USB converters that could cause problems as well\&. You can use \*(Aqttymode=\*(Aq option to force non\-canonical discipline in \fBups.conf\fR(5):
.sp .sp
\fBttymode\fR=raw \fBttymode\fR=raw
.sp .sp
@ -165,7 +201,7 @@ APC hardware supports a lot of shutdown methods, that themselves can differ in b
\fBS\fR (soft hibernate) \fBS\fR (soft hibernate)
.RS 4 .RS 4
This is most basic command present in probably all APC models\&. It will hibernate the UPS, and subsequently wake it up when the mains supply returns\&. This is most basic command present in probably all APC models\&. It will hibernate the UPS, and subsequently wake it up when the mains supply returns\&.
\fBThe command doesn\*(Aqt work if UPS is running on mains\&.\fR \fBThe command doesn\(cqt work if the UPS is running on mains\&.\fR
.PP .PP
"old" models "old" models
.RS 4 .RS 4
@ -174,7 +210,7 @@ The behaviour here is unfortunately pretty primitive \- when the power returns,
.PP .PP
"new" models "new" models
.RS 4 .RS 4
The behaviour here is as expected \- the power is cut off after the eeprom defined grace period\&. The UPS will wake up when the power returns, after the eeprom defined delay AND if the eeprom defined min\&. battery charge level is met\&. The delay is counted from the power\*(Aqs return\&. The behaviour here is as expected \- the power is cut off after the EEPROM defined grace period\&. The UPS will wake up when the power returns, after the EEPROM defined delay AND if the EEPROM defined min\&. battery charge level is met\&. The delay is counted from the power\*(Aqs return\&.
.RE .RE
.RE .RE
.PP .PP
@ -206,8 +242,8 @@ If nnn = 000, then UPS will do precisely nothing\&. On those models you\*(Aqre b
.PP .PP
"new" models "new" models
.RS 4 .RS 4
All the usual variables defined in eeprom are respected (see All the usual variables defined in EEPROM are respected (see
\fBS\fR)\&. Additionally, if nnn > 0, the nnn*6 minutes are added to eeprom defined delay\&. UPS will not power up if it\*(Aqs running on batteries, contrary to what "old" models used to do \- the combined delay is counted from the moment of power return\&. \fBS\fR)\&. Additionally, if nnn > 0, the nnn*6 minutes are added to EEPROM defined delay\&. UPS will not power up if it\*(Aqs running on batteries, contrary to what "old" models used to do \- the combined delay is counted from the moment of power return\&.
.RE .RE
.sp .sp
Supposedly there exist models that take 2 digits instead of 3\&. Just in case, NUT also supports such variation\&. You have to provide exactly 2 digits to trigger it (\fBawd\fR Supposedly there exist models that take 2 digits instead of 3\&. Just in case, NUT also supports such variation\&. You have to provide exactly 2 digits to trigger it (\fBawd\fR
@ -216,7 +252,7 @@ option, or argument to one of the supported instant commands)\&.
.PP .PP
\fBK\fR (delayed poweroff) \fBK\fR (delayed poweroff)
.RS 4 .RS 4
This is permanent poweroff \- the UPS will not wake up automatically\&. On newer units, it will respect applicable eeprom variables\&. This is permanent poweroff \- the UPS will not wake up automatically\&. On newer units, it will respect applicable EEPROM variables\&.
.RE .RE
.PP .PP
\fBZ\fR (instant poweroff) \fBZ\fR (instant poweroff)
@ -366,7 +402,7 @@ Hard hibernate\*(Aqs additional wakeup delay can be provided by \fBawd\fR\&.
.RE .RE
.SH "IGNORING LB STATE" .SH "IGNORING LB STATE"
.sp .sp
APC units \- even if they report LB mode \- will not go into shutdown automatically\&. This gives us even more control with reference to "when to actually shutdown psu"\&. Since version 2\&.6\&.2, NUT supports \fBignorelb\fR option in driver\*(Aqs section of \fBups.conf\fR(5)\&. When such option is in effect, the core driver will ignore LB state as reported by specific driver and start shutdown basing the decision \fIonly\fR on two conditions: APC units \- even if they report LB mode \- will not go into shutdown automatically\&. This gives us even more control with reference to "when to actually shutdown PSU"\&. Since version 2\&.6\&.2, NUT supports \fBignorelb\fR option in driver\(cqs section of \fBups.conf\fR(5)\&. When such option is in effect, the core driver will ignore LB state as reported by specific driver and start shutdown basing the decision \fIonly\fR on two conditions:
.sp .sp
battery\&.charge < battery\&.charge\&.low battery\&.charge < battery\&.charge\&.low
.sp .sp
@ -376,7 +412,7 @@ battery\&.runtime < battery\&.runtime\&.low
.sp .sp
Of course \- if any of the variables are not available, the appropriate condition is not checked\&. If you want to explicitly disable one of the conditions, simply override the right hand variable causing the condition to always evaluate to false (you can even provide negative numbers)\&. Of course \- if any of the variables are not available, the appropriate condition is not checked\&. If you want to explicitly disable one of the conditions, simply override the right hand variable causing the condition to always evaluate to false (you can even provide negative numbers)\&.
.sp .sp
APC UPSes don\*(Aqt have battery\&.charge\&.low \- you will have to define it if you want to use such condition (prefix the variable with override\&. or default\&.)\&. APC UPSes don\(cqt have battery\&.charge\&.low \- you will have to define it if you want to use such condition (prefix the variable with override\&. or default\&.)\&.
.sp .sp
"New" units have battery\&.runtime\&.low, but depending on battery quality, firmware version, calibration and UPS load \- this variable can be underestimated quite a bit \- especially right after going into OB state\&. This in turn can cause LB to be asserted, which under normal conditions will cause \fBNUT\fR to initiate the shutdown\&. You might want to disable this condition entirely, when relying on \fBignorelb\fR option (this was actually the main motivation behind introduction of such feature)\&. "New" units have battery\&.runtime\&.low, but depending on battery quality, firmware version, calibration and UPS load \- this variable can be underestimated quite a bit \- especially right after going into OB state\&. This in turn can cause LB to be asserted, which under normal conditions will cause \fBNUT\fR to initiate the shutdown\&. You might want to disable this condition entirely, when relying on \fBignorelb\fR option (this was actually the main motivation behind introduction of such feature)\&.
.sp .sp
@ -535,7 +571,7 @@ calibrate\&.stop
.RE .RE
.SH "PREVIOUS DRIVER VERSION" .SH "PREVIOUS DRIVER VERSION"
.sp .sp
Previous driver is still available as apcsmart\-old \- should there be any need to use earlier version (bugs, incompatiblities with new functionality, etc\&.)\&. In due time apcsmart\-old will be phased out completely, but this won\(cqt happen until the new version gets solid exposure with no pending issues\&. Previous driver is still available as \fBapcsmart\-old\fR, should there be any need to use earlier version (bugs, incompatiblities with new functionality, etc\&.)\&. In due time, \fBapcsmart\-old\fR will be phased out completely, but this won\(cqt happen until the new version gets solid exposure with no pending issues\&.
.SH "BUGS" .SH "BUGS"
.sp .sp
Some older APC UPS models return bogus data in the status register during a front panel test\&. This is usually detected and discarded, but some other unexpected values have occasionally slipped through\&. Some older APC UPS models return bogus data in the status register during a front panel test\&. This is usually detected and discarded, but some other unexpected values have occasionally slipped through\&.
@ -546,7 +582,7 @@ APC UPS models with both USB and serial ports require a power cycle when switchi
Nigel Metheringham <Nigel\&.Metheringham@Intechnology\&.co\&.uk> (drawing heavily on the original apcsmart driver by Russell Kroll)\&. This driver was called newapc for a time and was renamed in the 1\&.5 series\&. In 2\&.6\&.2 it was renamed to apcsmart\-old, being superseded by updated version with new features, which is maintained by Michal Soltys <soltys@ziu\&.info> Nigel Metheringham <Nigel\&.Metheringham@Intechnology\&.co\&.uk> (drawing heavily on the original apcsmart driver by Russell Kroll)\&. This driver was called newapc for a time and was renamed in the 1\&.5 series\&. In 2\&.6\&.2 it was renamed to apcsmart\-old, being superseded by updated version with new features, which is maintained by Michal Soltys <soltys@ziu\&.info>
.SH "SEE ALSO" .SH "SEE ALSO"
.sp .sp
\fBnutupsdrv\fR(8), \fBups.conf\fR(5) \fBnutupsdrv\fR(8), \fBups.conf\fR(5), \fBusbhid-ups\fR(8), \fBsolis\fR(8)
.SS "Internet resources:" .SS "Internet resources:"
.sp .sp
The NUT (Network UPS Tools) home page: http://www\&.networkupstools\&.org/ The NUT (Network UPS Tools) home page: http://www\&.networkupstools\&.org/

View file

@ -11,7 +11,7 @@ SYNOPSIS
*apcsmart* -h *apcsmart* -h
*apcsmart* -a \'UPS_NAME' [-x option=value ...] *apcsmart* -a 'UPS_NAME' [-x option=value ...]
NOTE: This man page only documents the hardware-specific features of the NOTE: This man page only documents the hardware-specific features of the
apcsmart driver. For information about the core driver, see apcsmart driver. For information about the core driver, see
@ -21,17 +21,17 @@ linkman:nutupsdrv[8].
SUPPORTED HARDWARE SUPPORTED HARDWARE
------------------ ------------------
The apcsmart driver should recognize (or at the very least work with) majority The apcsmart driver should recognize (or at the very least, work with) the
of Smart-UPS models - which includes Smart-UPS, Matrix-UPS and Back-UPS lineups, majority of Smart-UPS models - which includes Smart-UPS, Matrix-UPS and Back-UPS
among few other ones. lineups, among few other ones.
Currently we can roughly divide APC hardware into 3 groups (note that the Currently, we can roughly divide APC hardware into four groups (note that the
division isn\'t strict by any means, and the borders between those are pretty fuzzy): division isn't strict by any means, and the borders between those are pretty fuzzy):
[very] "old" models:: [very] "old" models::
These models usually have old APC logo, white color and _no_ programmable These models usually have old APC logo, white color and _no_ programmable
eeprom; You won\'t find them listed anywhere on APC's site either. The support EEPROM; you won't find them listed anywhere on APC's site either. The support
for those will be usually based on driver\'s compatibility tables, or if the for those will be usually based on driver's compatibility tables, or if the
model (firmware) is not listed in those - the driver will try to follow the very model (firmware) is not listed in those - the driver will try to follow the very
basic subset of features, while still trying to remain useful. Despite basic subset of features, while still trying to remain useful. Despite
"smart" tagname, they often tend to behave in pretty dumb way (see the "smart" tagname, they often tend to behave in pretty dumb way (see the
@ -45,19 +45,32 @@ division isn\'t strict by any means, and the borders between those are pretty fu
"new" models:: "new" models::
These models usually come from late 1990s / pre-2009 times. They are often These models usually come from late 1990s / pre-2009 times. They are often
referred as "3rd. gen". For the most part, they have programmable eeprom, referred as "3rd. gen". For the most part, they have programmable EEPROM,
report supported commands and capabilites, and should work just fine with the report supported commands and capabilites, and should work just fine with the
apcsmart driver. apcsmart driver.
"microlink" models:: "microlink" models::
WARNING: these are not _natively_ supported by apcsmart (or apcupsd for that WARNING: these are not _natively_ supported by *apcsmart* (or *apcupsd*,
matter, if you\'re wondering). Around 2007 APC (now APC Schneider) decided to for that matter, if you're wondering). Around 2007, APC (now APC Schneider)
go back to its proprietry roots and all the new models (SMT, SMX, SURTD) use decided to go back to its proprietry roots, and all the new models (SMT,
completely different protocol and cables. If you purchased a new APC UPS, SMX, SURTD) use completely different protocol and cables. If you purchased
that uses cable with rj45 on the one end, and db-9 on the other - then you a new APC UPS - that uses cable with RJ45 on the one end, and DB-9 on the
have such model. Your only option to support it through *NUT* is to other - then you have such model. Your only option to support it through
purchase "legacy communications card" - part #AP9620 (google \'AP9620' for *NUT* is to purchase a "legacy communications card" - part #AP9620 (google
more details). Or if that\'s not an option, rely on official software. \'AP9620' for more details). Or if that's not an option, rely on official
software.
Microsol models::
Several Microsol serial models sold in Brazil have been rebranded as APC
Back-UPS, and the model numbers tend to start with "BZ". If you have one
of these "Nobreaks", they will not work with the *apcsmart* driver - please
see the linkman:solis[8] driver instead.
+
--
.Example models:
* Back-UPS BZ1200-BR
* Back-UPS BZ2200BI-BR
--
Another thing to remember is that Smart protocol is not USB protocol. If you Another thing to remember is that Smart protocol is not USB protocol. If you
have UPS with both USB and serial ports, then depending on how you connect it, have UPS with both USB and serial ports, then depending on how you connect it,
@ -92,9 +105,9 @@ Alternatively, you can also provide it on the command line using:
TTY MODES TTY MODES
--------- ---------
By default the driver works in canonical mode, but it showed to be a problem in By default the driver works in canonical mode, but it proved to be a problem in
windows systems. Furthermore there's a possibility of some obscure serial cards Windows systems. Furthermore there's a possibility of some obscure serial cards
or serial-usb convertes that could cause problems as well. You can use or serial-USB converters that could cause problems as well. You can use
\'ttymode=' option to force non-canonical discipline in linkman:ups.conf[5]: \'ttymode=' option to force non-canonical discipline in linkman:ups.conf[5]:
*ttymode*=raw *ttymode*=raw
@ -114,7 +127,7 @@ behaviour quite a bit, depending on the model.
*S* (soft hibernate):: *S* (soft hibernate)::
This is most basic command present in probably all APC models. It will This is most basic command present in probably all APC models. It will
hibernate the UPS, and subsequently wake it up when the mains supply hibernate the UPS, and subsequently wake it up when the mains supply
returns. *The command doesn\'t work if UPS is running on mains.* returns. *The command doesn't work if the UPS is running on mains.*
"old" models::: "old" models:::
The behaviour here is unfortunately pretty primitive - when the power The behaviour here is unfortunately pretty primitive - when the power
@ -123,8 +136,8 @@ behaviour quite a bit, depending on the model.
"new" models::: "new" models:::
The behaviour here is as expected - the power is cut off after the The behaviour here is as expected - the power is cut off after the
eeprom defined grace period. The UPS will wake up when the power EEPROM defined grace period. The UPS will wake up when the power
returns, after the eeprom defined delay AND if the eeprom defined min. returns, after the EEPROM defined delay AND if the EEPROM defined min.
battery charge level is met. The delay is counted from the power\'s battery charge level is met. The delay is counted from the power\'s
return. return.
@ -154,8 +167,8 @@ command if your UPS supports it (and is not too old, see below).
connection is kept alive). connection is kept alive).
"new" models::: "new" models:::
All the usual variables defined in eeprom are respected (see *S*). All the usual variables defined in EEPROM are respected (see *S*).
Additionally, if nnn > 0, the $$nnn*6$$ minutes are added to eeprom Additionally, if nnn > 0, the $$nnn*6$$ minutes are added to EEPROM
defined delay. UPS will not power up if it\'s running on batteries, defined delay. UPS will not power up if it\'s running on batteries,
contrary to what "old" models used to do - the combined delay is counted contrary to what "old" models used to do - the combined delay is counted
from the moment of power return. from the moment of power return.
@ -167,7 +180,7 @@ trigger it (*awd* option, or argument to one of the supported instant commands).
*K* (delayed poweroff):: *K* (delayed poweroff)::
This is permanent poweroff - the UPS will not wake up automatically. On This is permanent poweroff - the UPS will not wake up automatically. On
newer units, it will respect applicable eeprom variables. newer units, it will respect applicable EEPROM variables.
*Z* (instant poweroff):: *Z* (instant poweroff)::
This is also permanent poweroff - the UPS will not wake up automatically. This is also permanent poweroff - the UPS will not wake up automatically.
@ -248,8 +261,8 @@ IGNORING LB STATE
APC units - even if they report LB mode - will not go into shutdown APC units - even if they report LB mode - will not go into shutdown
automatically. This gives us even more control with reference to "when to automatically. This gives us even more control with reference to "when to
actually shutdown psu". Since version 2.6.2, NUT supports *ignorelb* option in actually shutdown PSU". Since version 2.6.2, NUT supports *ignorelb* option in
driver\'s section of linkman:ups.conf[5]. When such option is in effect, driver's section of linkman:ups.conf[5]. When such option is in effect,
the core driver will ignore LB state as reported by specific driver and the core driver will ignore LB state as reported by specific driver and
start shutdown basing the decision _only_ on two conditions: start shutdown basing the decision _only_ on two conditions:
@ -264,8 +277,8 @@ is not checked. If you want to explicitly disable one of the conditions, simply
override the right hand variable causing the condition to always evaluate to override the right hand variable causing the condition to always evaluate to
false (you can even provide negative numbers). false (you can even provide negative numbers).
APC UPSes don\'t have battery.charge.low - you will have to define it if you want APC UPSes don't have battery.charge.low - you will have to define it if you want
to use such condition (prefix the variable with override. or default.). to use such condition (prefix the variable with `override.` or `default.`).
"New" units have battery.runtime.low, but depending on battery quality, firmware "New" units have battery.runtime.low, but depending on battery quality, firmware
version, calibration and UPS load - this variable can be underestimated quite a bit - version, calibration and UPS load - this variable can be underestimated quite a bit -
@ -335,9 +348,9 @@ Other supported commands:
PREVIOUS DRIVER VERSION PREVIOUS DRIVER VERSION
----------------------- -----------------------
Previous driver is still available as apcsmart-old - should there be any need to Previous driver is still available as *apcsmart-old*, should there be any need to
use earlier version (bugs, incompatiblities with new functionality, etc.). In use earlier version (bugs, incompatiblities with new functionality, etc.). In
due time apcsmart-old will be phased out completely, but this won't happen until due time, *apcsmart-old* will be phased out completely, but this won't happen until
the new version gets solid exposure with no pending issues. the new version gets solid exposure with no pending issues.
BUGS BUGS
@ -362,7 +375,8 @@ new features, which is maintained by Michal Soltys <soltys@ziu.info>
SEE ALSO SEE ALSO
-------- --------
linkman:nutupsdrv[8], linkman:ups.conf[5] linkman:nutupsdrv[8], linkman:ups.conf[5], linkman:usbhid-ups[8],
linkman:solis[8]
Internet resources: Internet resources:
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: apcupsd-ups .\" Title: apcupsd-ups
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "APCUPSD\-UPS" "8" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "APCUPSD\-UPS" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -23,6 +23,10 @@ ifdef::backend-xhtml11[]
[linkman-inlinemacro] [linkman-inlinemacro]
<a href="{target}.html">{target}{0?({0})}</a> <a href="{target}.html">{target}{0?({0})}</a>
# Override HTML footer, to include NUT version
[footer-text]
Last updated {docdate} {doctime} -- Network UPS Tools {nutversion}
# Format-detection to prevent smartphones from being too smart # Format-detection to prevent smartphones from being too smart
[+docinfo] [+docinfo]
<meta name="format-detection" content="telephone=no" /> <meta name="format-detection" content="telephone=no" />

87
docs/man/asem.8 Normal file
View file

@ -0,0 +1,87 @@
'\" t
.\" Title: asem
.\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 04/17/2015
.\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.3
.\" Language: English
.\"
.TH "ASEM" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
asem \- driver for UPS in ASEM PB1300
.SH "NOTE"
.sp
This man page only documents the hardware\-specific features of the \fBasem\fR driver\&. For information about the core driver, see \fBnutupsdrv\fR(8)\&.
.SH "SUPPORTED HARDWARE"
.sp
The \fBasem\fR driver supports the UPS in ASEM PB1300 embedded PCs\&. Likely other I2C devices from the same manufacturer will work too, since this is a "custom" charger\&.
.sp
Seems that there are two versions of the charger\&. Older one is based on Max1667, newer one is a custom solution\&. Both are on I2C address 0x09\&. To be compatible with both versions, the driver just reads bit 15 of address 0x13 which yields online/on battery status\&. Battery monitor is a BQ2060 at address 0x0B\&.
.SH "EXTRA ARGUMENTS"
.sp
The required parameter for this driver is the I2C bus name:
.PP
\fBport\fR=\fIdev\-node\fR
.RS 4
On the Asem PB1300, this should be
/dev/i2c\-7
for the i801 SMBUS adapter\&.
.RE
.sp
This driver also supports the following optional settings:
.PP
\fBlb\fR=\fInum\fR
.RS 4
Set the low battery threshold to
\fInum\fR
volts\&.
.RE
.PP
\fBhb\fR=\fInum\fR
.RS 4
Set the high battery threshold to
\fInum\fR
volts\&.
.RE
.SH "INSTALLATION"
.sp
This driver is specific to the Linux I2C API, and requires the lm_sensors libi2c\-dev or its equivalent to compile\&.
.sp
Beware that the SystemIO memory used by the I2C controller is reserved by ACPI\&. If only a native I2C driver (e\&.g\&. i2c_i801, as of 3\&.5\&.X Linux kernels) is available, then you\(cqll need to relax the ACPI resources check\&. For example, you can boot with the acpi_enforce_resources=lax option\&.
.SH "KNOWN ISSUES AND BUGS"
.sp
The driver shutdown function is not implemented, so other arrangements must be made to turn off the UPS\&.
.SH "AUTHORS"
.sp
Giuseppe Corbelli <giuseppe\&.corbelli@copanitalia\&.com>
.SH "SEE ALSO"
.SS "The core driver:"
.sp
\fBnutupsdrv\fR(8)
.SS "Internet resources:"
.sp
PB1300 specifications: http://www\&.asem\&.it/en/products/industrial\-automation/box\-pcs/performance/pb1300/
.sp
BQ2060 datasheet: http://www\&.ti\&.com/lit/ds/symlink/bq2060\&.pdf
.sp
The NUT (Network UPS Tools) home page: http://www\&.networkupstools\&.org/

83
docs/man/asem.txt Normal file
View file

@ -0,0 +1,83 @@
ASEM(8)
=======
NAME
----
asem - driver for UPS in ASEM PB1300
NOTE
----
This man page only documents the hardware-specific features of the
*asem* driver. For information about the core driver, see
linkman:nutupsdrv[8].
SUPPORTED HARDWARE
------------------
The *asem* driver supports the UPS in ASEM PB1300 embedded PCs. Likely other
I2C devices from the same manufacturer will work too, since this is a "custom"
charger.
Seems that there are two versions of the charger. Older one is based on
Max1667, newer one is a custom solution. Both are on I2C address 0x09.
To be compatible with both versions, the driver just reads bit 15 of address
0x13 which yields online/on battery status.
Battery monitor is a BQ2060 at address 0x0B.
EXTRA ARGUMENTS
---------------
The required parameter for this driver is the I2C bus name:
*port*='dev-node'::
On the Asem PB1300, this should be `/dev/i2c-7` for the i801 SMBUS adapter.
This driver also supports the following optional settings:
*lb*='num'::
Set the low battery threshold to 'num' volts.
*hb*='num'::
Set the high battery threshold to 'num' volts.
INSTALLATION
------------
This driver is specific to the Linux I2C API, and requires the lm_sensors
libi2c-dev or its equivalent to compile.
Beware that the SystemIO memory used by the I2C controller is reserved by ACPI.
If only a native I2C driver (e.g. i2c_i801, as of 3.5.X Linux kernels) is
available, then you'll need to relax the ACPI resources check. For example, you
can boot with the `acpi_enforce_resources=lax` option.
//////////////////////////////////////////
Optional: use DIAGNOSTICS to describe troubleshooting techniques that are
longer than what can be conveniently described in the driver error messages.
DIAGNOSTICS
-----------
//////////////////////////////////////////
KNOWN ISSUES AND BUGS
---------------------
The driver shutdown function is not implemented, so other arrangements must be
made to turn off the UPS.
AUTHORS
-------
Giuseppe Corbelli <giuseppe.corbelli@copanitalia.com>
SEE ALSO
--------
The core driver:
~~~~~~~~~~~~~~~~
linkman:nutupsdrv[8]
Internet resources:
~~~~~~~~~~~~~~~~~~~
PB1300 specifications: http://www.asem.it/en/products/industrial-automation/box-pcs/performance/pb1300/
BQ2060 datasheet: http://www.ti.com/lit/ds/symlink/bq2060.pdf
The NUT (Network UPS Tools) home page: http://www.networkupstools.org/

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: bcmxcp .\" Title: bcmxcp
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "BCMXCP" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "BCMXCP" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -58,9 +58,7 @@ Communication speed for the UPS\&. If this is set to 9600, it tries to connect t
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fBshutdown_delay =\fR\fI120\fR
\fBshutdown_delay =\fR
\fI120\fR
.RE .RE
.sp .sp
.RS 4 .RS 4
@ -71,9 +69,7 @@ Communication speed for the UPS\&. If this is set to 9600, it tries to connect t
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fBbaud_rate =\fR\fInone\fR
\fBbaud_rate =\fR
\fInone\fR
.RE .RE
.SH "INSTANT COMMANDS" .SH "INSTANT COMMANDS"
.sp .sp

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: bcmxcp_usb .\" Title: bcmxcp_usb
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "BCMXCP_USB" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "BCMXCP_USB" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: belkin .\" Title: belkin
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "BELKIN" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "BELKIN" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: belkinunv .\" Title: belkinunv
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "BELKINUNV" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "BELKINUNV" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: bestfcom .\" Title: bestfcom
.\" Author: [see the "AUTHORS" section] .\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "BESTFCOM" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "BESTFCOM" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: bestfortress .\" Title: bestfortress
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "BESTFORTRESS" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "BESTFORTRESS" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: bestuferrups .\" Title: bestuferrups
.\" Author: [see the "AUTHORS" section] .\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "BESTUFERRUPS" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "BESTUFERRUPS" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: bestups .\" Title: bestups
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "BESTUPS" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "BESTUPS" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: blazer_ser .\" Title: blazer_ser
.\" Author: [see the "AUTHORS" section] .\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "BLAZER_SER" "8" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "BLAZER_SER" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: blazer_usb .\" Title: blazer_usb
.\" Author: [see the "AUTHORS" section] .\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "BLAZER_USB" "8" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "BLAZER_USB" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -154,7 +154,6 @@ Examples:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\-x vendor="Foo\&.Corporation\&.*" \-x vendor="Foo\&.Corporation\&.*"
.RE .RE
.sp .sp
@ -166,7 +165,6 @@ Examples:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\-x vendorid=051d* \-x vendorid=051d*
(APC) (APC)
.RE .RE
@ -179,7 +177,6 @@ Examples:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\-x product="\&.*(Smart|Back)\-?UPS\&.*" \-x product="\&.*(Smart|Back)\-?UPS\&.*"
.RE .RE
.RE .RE

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: clone .\" Title: clone
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "CLONE" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "CLONE" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: dummy-ups .\" Title: dummy-ups
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "DUMMY\-UPS" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "DUMMY\-UPS" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -95,7 +95,7 @@ Port is the name of a remote UPS, using the NUT form, ie:
.RS 4 .RS 4
.\} .\}
.nf .nf
<upsname>[@<hostname>[:<port>]] <upsname>@<hostname>[:<port>]
.fi .fi
.if n \{\ .if n \{\
.RE .RE
@ -115,6 +115,8 @@ For instance:
.if n \{\ .if n \{\
.RE .RE
.\} .\}
.sp
Unlike UPS specifications in the rest of NUT, the @hostname portion is not optional \- it is the @ character which enables Repeater Mode\&. To refer to an UPS on the same host as \fBdummy\-ups\fR, use port = upsname@localhost\&.
.SH "INTERACTION" .SH "INTERACTION"
.sp .sp
Once the driver is loaded in dummy mode, you can change any variables, except those of the driver\&.* and server\&.* collections\&. You can do this by either editing the definition file, or use the \fBupsrw\fR(1) and \fBupscmd\fR(1) commands\&. Once the driver is loaded in dummy mode, you can change any variables, except those of the driver\&.* and server\&.* collections\&. You can do this by either editing the definition file, or use the \fBupsrw\fR(1) and \fBupscmd\fR(1) commands\&.
@ -124,9 +126,9 @@ Note that in simulation mode, new variables can be added on the fly, by adding t
In repeater mode, the driver acts according to the capabilities of the UPS, and so support the same instant commands and settable values\&. In repeater mode, the driver acts according to the capabilities of the UPS, and so support the same instant commands and settable values\&.
.SH "BACKGROUND" .SH "BACKGROUND"
.sp .sp
This driver was written in one evening to replace the previous dummycons testing driver\&. It was too limited and required to work from a terminal to interact\&. Dummy Mode was originally written in one evening to replace the previous dummycons testing driver, which was too limited, and required a terminal for interaction\&.
.sp .sp
\fBdummy\-ups\fR is useful for NUT client development, and other testing purpose\&. \fBdummy\-ups\fR is useful for NUT client development, and other testing purposes\&.
.sp .sp
It also helps the NUT Quality Assurance effort, by automating some tests on the NUT framework\&. It also helps the NUT Quality Assurance effort, by automating some tests on the NUT framework\&.
.sp .sp

View file

@ -86,7 +86,7 @@ Repeater Mode
Port is the name of a remote UPS, using the NUT form, ie: Port is the name of a remote UPS, using the NUT form, ie:
<upsname>[@<hostname>[:<port>]] <upsname>@<hostname>[:<port>]
For instance: For instance:
@ -95,6 +95,10 @@ For instance:
port = ups@hostname port = ups@hostname
desc = "dummy-ups in repeater mode" desc = "dummy-ups in repeater mode"
Unlike UPS specifications in the rest of NUT, the `@hostname` portion is not
optional - it is the `@` character which enables Repeater Mode. To refer to an
UPS on the same host as *dummy-ups*, use `port = upsname@localhost`.
INTERACTION INTERACTION
----------- -----------
@ -114,11 +118,11 @@ so support the same instant commands and settable values.
BACKGROUND BACKGROUND
---------- ----------
This driver was written in one evening to replace the previous dummycons Dummy Mode was originally written in one evening to replace the previous
testing driver. It was too limited and required to work from a terminal to dummycons testing driver, which was too limited, and required a terminal for
interact. interaction.
*dummy-ups* is useful for NUT client development, and other testing purpose. *dummy-ups* is useful for NUT client development, and other testing purposes.
It also helps the NUT Quality Assurance effort, by automating some tests on the It also helps the NUT Quality Assurance effort, by automating some tests on the
NUT framework. NUT framework.

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: etapro .\" Title: etapro
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "ETAPRO" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "ETAPRO" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: everups .\" Title: everups
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "EVERUPS" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "EVERUPS" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: gamatronic .\" Title: gamatronic
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "GAMATRONIC" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "GAMATRONIC" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: genericups .\" Title: genericups
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "GENERICUPS" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "GENERICUPS" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: hosts.conf .\" Title: hosts.conf
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "HOSTS\&.CONF" "5" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "HOSTS\&.CONF" "5" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: isbmex .\" Title: isbmex
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "ISBMEX" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "ISBMEX" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: ivtscd .\" Title: ivtscd
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "IVTSCD" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "IVTSCD" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: libnutclient .\" Title: libnutclient
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "LIBNUTCLIENT" "3" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "LIBNUTCLIENT" "3" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: libnutclient_commands .\" Title: libnutclient_commands
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "LIBNUTCLIENT_COMMAND" "3" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "LIBNUTCLIENT_COMMAND" "3" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: libnutclient_devices .\" Title: libnutclient_devices
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "LIBNUTCLIENT_DEVICES" "3" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "LIBNUTCLIENT_DEVICES" "3" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: libnutclient_general .\" Title: libnutclient_general
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "LIBNUTCLIENT_GENERAL" "3" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "LIBNUTCLIENT_GENERAL" "3" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: libnutclient_misc .\" Title: libnutclient_misc
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "LIBNUTCLIENT_MISC" "3" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "LIBNUTCLIENT_MISC" "3" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: libnutclient_tcp .\" Title: libnutclient_tcp
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "LIBNUTCLIENT_TCP" "3" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "LIBNUTCLIENT_TCP" "3" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: libnutclient_variables .\" Title: libnutclient_variables
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "LIBNUTCLIENT_VARIABL" "3" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "LIBNUTCLIENT_VARIABL" "3" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: libupsclient-config .\" Title: libupsclient-config
.\" Author: [see the "AUTHORS" section] .\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "LIBUPSCLIENT\-CONFIG" "1" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "LIBUPSCLIENT\-CONFIG" "1" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: liebert-esp2 .\" Title: liebert-esp2
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "LIEBERT\-ESP2" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "LIEBERT\-ESP2" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: liebert .\" Title: liebert
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "LIEBERT" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "LIEBERT" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: macosx-ups .\" Title: macosx-ups
.\" Author: [see the "AUTHORS" section] .\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "MACOSX\-UPS" "8" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "MACOSX\-UPS" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: masterguard .\" Title: masterguard
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "MASTERGUARD" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "MASTERGUARD" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: metasys .\" Title: metasys
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "METASYS" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "METASYS" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: mge-shut .\" Title: mge-shut
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "MGE\-SHUT" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "MGE\-SHUT" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: mge-utalk .\" Title: mge-utalk
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "MGE\-UTALK" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "MGE\-UTALK" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: microdowell .\" Title: microdowell
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "MICRODOWELL" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "MICRODOWELL" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: netxml-ups .\" Title: netxml-ups
.\" Author: [see the "AUTHORS" section] .\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "NETXML\-UPS" "8" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "NETXML\-UPS" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: nut-ipmipsu .\" Title: nut-ipmipsu
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "NUT\-IPMIPSU" "8" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "NUT\-IPMIPSU" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -153,7 +153,6 @@ status of the PSU:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fIOL\fR \fIOL\fR
means that the PSU is present and providing power, means that the PSU is present and providing power,
.RE .RE
@ -166,7 +165,6 @@ means that the PSU is present and providing power,
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fIOFF\fR \fIOFF\fR
means that the PSU is present but not providing power (power cable removed), means that the PSU is present but not providing power (power cable removed),
.RE .RE
@ -179,7 +177,6 @@ means that the PSU is present but not providing power (power cable removed),
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fIstale\fR \fIstale\fR
(no data) means that the PSU is not present (ie physically removed)\&. (no data) means that the PSU is not present (ie physically removed)\&.
.RE .RE

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: nut-recorder .\" Title: nut-recorder
.\" Author: [see the "AUTHOR" section] .\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "NUT\-RECORDER" "8" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "NUT\-RECORDER" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: nut-scanner .\" Title: nut-scanner
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "NUT\-SCANNER" "8" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "NUT\-SCANNER" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -115,7 +115,6 @@ can be expressed in various forms:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fIauto\fR \fIauto\fR
to scan all serial ports\&. to scan all serial ports\&.
.RE .RE
@ -266,7 +265,7 @@ Set the username used for authenticating IPMI over LAN connections (mandatory fo
.PP .PP
\fB\-B\fR | \fB\-\-password\fR \fIpassword\fR \fB\-B\fR | \fB\-\-password\fR \fIpassword\fR
.RS 4 .RS 4
Specify the password to use when authenticationg with the remote host (mandatory for IPMI over LAN\&. No default)\&. Specify the password to use when authenticating with the remote host (mandatory for IPMI over LAN\&. No default)\&.
.RE .RE
.PP .PP
\fB\-d\fR | \fB\-\-authType\fR \fIauthentication type\fR \fB\-d\fR | \fB\-\-authType\fR \fIauthentication type\fR
@ -290,7 +289,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB0\fR: None; None; None \fB0\fR: None; None; None
.RE .RE
.sp .sp
@ -302,7 +300,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB1\fR: HMAC\-SHA1; None; None \fB1\fR: HMAC\-SHA1; None; None
.RE .RE
.sp .sp
@ -314,7 +311,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB2\fR: HMAC\-SHA1; HMAC\-SHA1\-96; None \fB2\fR: HMAC\-SHA1; HMAC\-SHA1\-96; None
.RE .RE
.sp .sp
@ -326,7 +322,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB3\fR: HMAC\-SHA1; HMAC\-SHA1\-96; AES\-CBC\-128 \fB3\fR: HMAC\-SHA1; HMAC\-SHA1\-96; AES\-CBC\-128
.RE .RE
.sp .sp
@ -338,7 +333,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB6\fR: HMAC\-MD5; None; None \fB6\fR: HMAC\-MD5; None; None
.RE .RE
.sp .sp
@ -350,7 +344,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB7\fR: HMAC\-MD5; HMAC\-MD5\-128; None \fB7\fR: HMAC\-MD5; HMAC\-MD5\-128; None
.RE .RE
.sp .sp
@ -362,7 +355,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB8\fR: HMAC\-MD5; HMAC\-MD5\-128; AES\-CBC\-128 \fB8\fR: HMAC\-MD5; HMAC\-MD5\-128; AES\-CBC\-128
.RE .RE
.sp .sp
@ -374,7 +366,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB11\fR: HMAC\-MD5; MD5\-128; None \fB11\fR: HMAC\-MD5; MD5\-128; None
.RE .RE
.sp .sp
@ -386,7 +377,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB12\fR: HMAC\-MD5; MD5\-128; AES\-CBC\-128 \fB12\fR: HMAC\-MD5; MD5\-128; AES\-CBC\-128
.RE .RE
.sp .sp
@ -398,7 +388,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB15\fR: HMAC\-SHA256; None; None \fB15\fR: HMAC\-SHA256; None; None
.RE .RE
.sp .sp
@ -410,7 +399,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB16\fR: HMAC\-SHA256; HMAC_SHA256_128; None \fB16\fR: HMAC\-SHA256; HMAC_SHA256_128; None
.RE .RE
.sp .sp
@ -422,7 +410,6 @@ The following cipher suite ids are currently supported (Authentication; Integrit
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\fB17\fR: HMAC\-SHA256; HMAC_SHA256_128; AES\-CBC\-128 \fB17\fR: HMAC\-SHA256; HMAC_SHA256_128; AES\-CBC\-128
.RE .RE
.RE .RE
@ -456,7 +443,7 @@ The same using CIDR notation:
.sp .sp
\fBnut\-scanner \-S \-m 192\&.168\&.0\&.0/24\fR \fBnut\-scanner \-S \-m 192\&.168\&.0\&.0/24\fR
.sp .sp
To scan NUT servers with a timeout of 10 seconds on IP range 192\&.168\&.0\&.0 to 192\&.168\&.0\&.128 using CIDR notation: To scan NUT servers with a timeout of 10 seconds on IP range 192\&.168\&.0\&.0 to 192\&.168\&.0\&.127 using CIDR notation:
.sp .sp
\fBnut\-scanner \-O \-t 10 \-m 192\&.168\&.0\&.0/25\fR \fBnut\-scanner \-O \-t 10 \-m 192\&.168\&.0\&.0/25\fR
.sp .sp

View file

@ -134,7 +134,7 @@ IPMI OPTIONS
Set the username used for authenticating IPMI over LAN connections (mandatory for IPMI over LAN. No default). Set the username used for authenticating IPMI over LAN connections (mandatory for IPMI over LAN. No default).
*-B* | *--password* 'password':: *-B* | *--password* 'password'::
Specify the password to use when authenticationg with the remote host (mandatory for IPMI over LAN. No default). Specify the password to use when authenticating with the remote host (mandatory for IPMI over LAN. No default).
*-d* | *--authType* 'authentication type':: *-d* | *--authType* 'authentication type'::
Specify the IPMI 1.5 authentication type to use (NONE, STRAIGHT_PASSWORD_KEY, MD2, and MD5) with the remote host (default=MD5). Specify the IPMI 1.5 authentication type to use (NONE, STRAIGHT_PASSWORD_KEY, MD2, and MD5) with the remote host (default=MD5).
@ -188,7 +188,7 @@ The same using CIDR notation:
*nut-scanner -S -m 192.168.0.0/24* *nut-scanner -S -m 192.168.0.0/24*
To scan NUT servers with a timeout of 10 seconds on IP range 192.168.0.0 to 192.168.0.128 using CIDR notation: To scan NUT servers with a timeout of 10 seconds on IP range 192.168.0.0 to 192.168.0.127 using CIDR notation:
*nut-scanner -O -t 10 -m 192.168.0.0/25* *nut-scanner -O -t 10 -m 192.168.0.0/25*

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: nut.conf .\" Title: nut.conf
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/15/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "NUT\&.CONF" "5" "02/15/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "NUT\&.CONF" "5" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -94,7 +94,7 @@ above indicates that no upsmon should be running\&.
.PP .PP
\fBPOWEROFF_WAIT\fR \fBPOWEROFF_WAIT\fR
.RS 4 .RS 4
Optional\&. At the end of an emergency system halt, the upsmon master will signal the UPS to switch off\&. This may fail for a number of reasons\&. Most notably is the case that mains power returns during the shutdown process\&. See the section "Power races" in /usr/share/doc/nut/docs/shutdown\&.txt\&.gz\&. The system will wait this long for the UPS to cut power, and then reboot\&. It should be long enough to exhaust the batteries, in case line power continues to be unavailable\&. On the other hand, it should not be so long that the system remains offline for an unreasonable amount of time if line power has returned\&. See sleep(1) for compatible time syntax\&. If you specify the time in seconds, use the "s" suffix\&. Optional\&. At the end of an emergency system halt, the upsmon master will signal the UPS to switch off\&. This may fail for a number of reasons\&. Most notably is the case that mains power returns during the shutdown process\&. See the section "Power races" in /usr/share/doc/nut/FAQ\&.txt\&.gz\&. The system will wait this long for the UPS to cut power, and then reboot\&. It should be long enough to exhaust the batteries, in case line power continues to be unavailable\&. On the other hand, it should not be so long that the system remains offline for an unreasonable amount of time if line power has returned\&. See sleep(1) for compatible time syntax\&. If you specify the time in seconds, use the "s" suffix\&.
.RE .RE
.if n \{\ .if n \{\
.sp .sp

View file

@ -68,7 +68,7 @@ Optional. At the end of an emergency system halt, the upsmon master
will signal the UPS to switch off. This may fail for a number of will signal the UPS to switch off. This may fail for a number of
reasons. Most notably is the case that mains power returns during reasons. Most notably is the case that mains power returns during
the shutdown process. See the section "Power races" in the shutdown process. See the section "Power races" in
/usr/share/doc/nut/docs/shutdown.txt.gz. The system will wait this /usr/share/doc/nut/FAQ.txt.gz. The system will wait this
long for the UPS to cut power, and then reboot. It should be long long for the UPS to cut power, and then reboot. It should be long
enough to exhaust the batteries, in case line power continues to be enough to exhaust the batteries, in case line power continues to be
unavailable. On the other hand, it should not be so long that the unavailable. On the other hand, it should not be so long that the

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: nutdrv_atcl_usb .\" Title: nutdrv_atcl_usb
.\" Author: [see the "AUTHORS" section] .\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/17/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "NUTDRV_ATCL_USB" "8" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "NUTDRV_ATCL_USB" "8" "04/17/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------

View file

@ -1,13 +1,13 @@
'\" t '\" t
.\" Title: nutdrv_qx .\" Title: nutdrv_qx
.\" Author: [see the "AUTHORS" section] .\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 02/25/2014 .\" Date: 04/22/2015
.\" Manual: NUT Manual .\" Manual: NUT Manual
.\" Source: Network UPS Tools 2.7.1.5 .\" Source: Network UPS Tools 2.7.3
.\" Language: English .\" Language: English
.\" .\"
.TH "NUTDRV_QX" "8" "02/25/2014" "Network UPS Tools 2\&.7\&.1\&." "NUT Manual" .TH "NUTDRV_QX" "8" "04/22/2015" "Network UPS Tools 2\&.7\&.3" "NUT Manual"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * Define some portability stuff .\" * Define some portability stuff
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -112,13 +112,15 @@ seconds (if mains meanwhile returned)\&.
\fBprotocol =\fR \fIstring\fR \fBprotocol =\fR \fIstring\fR
.RS 4 .RS 4
Skip autodetection of the protocol to use and only use the one specified\&. Supported values: Skip autodetection of the protocol to use and only use the one specified\&. Supported values:
\fIbestups\fR,
\fImecer\fR, \fImecer\fR,
\fImegatec\fR, \fImegatec\fR,
\fImegatec/old\fR, \fImegatec/old\fR,
\fImustek\fR, \fImustek\fR,
\fIq1\fR, \fIq1\fR,
\fIvoltronic\fR, \fIvoltronic\fR,
\fIvoltronic\-qs\fR \fIvoltronic\-qs\fR,
\fIvoltronic\-qs\-hex\fR
and and
\fIzinto\fR\&. \fIzinto\fR\&.
.sp .sp
@ -201,6 +203,13 @@ Minimum battery load used by the driver to estimate the runtime\&. If not specif
\fBruntimecal\fR \fBruntimecal\fR
is also specified\&. is also specified\&.
.RE .RE
.SS "BESTUPS, MECER, MEGATAEC, MEGATEC/OLD, MUSTEK, Q1, VOLTRONIC\-QS, VOLTRONIC\-QS\-HEX, ZINTO PROTOCOLS"
.PP
\fBignoresab\fR
.RS 4
Some UPSes incorrectly report the \(oqShutdown Active\(cq bit as always on, consequently making the driver believe the UPS is nearing a shutdown (and, as a result, ups\&.status always contains
FSD\&... and you know what this means)\&. Setting this flag will make the driver ignore the \(oqShutdown Active\(cq bit\&.
.RE
.SS "MECER, MEGATAEC, MEGATEC/OLD, MUSTEK, ZINTO PROTOCOLS" .SS "MECER, MEGATAEC, MEGATEC/OLD, MUSTEK, ZINTO PROTOCOLS"
.PP .PP
\fBondelay\fR \fBondelay\fR
@ -226,6 +235,30 @@ Some UPSes will lock up if you attempt to read rating information from them\&. S
.RS 4 .RS 4
Some UPSes will lock up if you attempt to read vendor information from them\&. Setting this flag will make the driver skip this step\&. Some UPSes will lock up if you attempt to read vendor information from them\&. Setting this flag will make the driver skip this step\&.
.RE .RE
.SS "BESTUPS PROTOCOL"
.PP
\fBondelay\fR
.RS 4
The acceptable range is
60\&.\&.599940
seconds\&.
.RE
.PP
\fBoffdelay\fR
.RS 4
The acceptable range is
12\&.\&.5940
seconds\&.
.RE
.PP
\fBpins_shutdown_mode =\fR \fIvalue\fR
.RS 4
Set
shutdown mode functionality of Pin 1 and Pin 7
on the UPS DB9 communication port (Per Best Power\(cqs EPS\-0059) to
\fIvalue\fR
[0\&.\&.6]\&.
.RE
.SS "Q1 PROTOCOL" .SS "Q1 PROTOCOL"
.PP .PP
\fBondelay\fR \fBondelay\fR
@ -241,7 +274,7 @@ The acceptable range is
12\&.\&.600 12\&.\&.600
seconds\&. seconds\&.
.RE .RE
.SS "VOLTRONIC\-QS PROTOCOL" .SS "VOLTRONIC\-QS, VOLTRONIC\-QS\-HEX PROTOCOLS"
.PP .PP
\fBondelay\fR \fBondelay\fR
.RS 4 .RS 4
@ -374,7 +407,7 @@ Enable or disable Battery Open Status Check [enabled/disabled]\&. If enabled, wh
Enable or disable site fault detection [enabled/disabled]\&. If enabled, the UPS will beep when the input neutral and hot wires are reversed\&. Enable or disable site fault detection [enabled/disabled]\&. If enabled, the UPS will beep when the input neutral and hot wires are reversed\&.
.RE .RE
.PP .PP
\fBcostant_phase_angle =\fR \fIstring\fR \fBconstant_phase_angle =\fR \fIstring\fR
.RS 4 .RS 4
Enable or disable Constant Phase Angle Function (output and input phase angles are not equal) [enabled/disabled]\&. Enable or disable Constant Phase Angle Function (output and input phase angles are not equal) [enabled/disabled]\&.
.RE .RE
@ -484,7 +517,6 @@ Examples:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\-x vendor="Foo\&.Corporation\&.*" \-x vendor="Foo\&.Corporation\&.*"
.RE .RE
.sp .sp
@ -496,7 +528,6 @@ Examples:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\-x vendorid=051d* \-x vendorid=051d*
(APC) (APC)
.RE .RE
@ -509,7 +540,6 @@ Examples:
.sp -1 .sp -1
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
\-x product="\&.*(Smart|Back)\-?UPS\&.*" \-x product="\&.*(Smart|Back)\-?UPS\&.*"
.RE .RE
.RE .RE
@ -524,10 +554,13 @@ bus="00[2\-3]")\&.
\fBsubdriver =\fR \fIstring\fR \fBsubdriver =\fR \fIstring\fR
.RS 4 .RS 4
Select a serial\-over\-USB subdriver to use\&. You have a choice between Select a serial\-over\-USB subdriver to use\&. You have a choice between
\fBphoenix\fR, \fBcypress\fR,
\fBfabula\fR,
\fBfuji\fR,
\fBippon\fR, \fBippon\fR,
\fBcypress\fR, and \fBkrauler\fR
\fBkrauler\fR\&. When using this option, it is mandatory to also specify the and
\fBphoenix\fR\&. When using this option, it is mandatory to also specify the
\fBvendorid\fR \fBvendorid\fR
and and
\fBproductid\fR\&. \fBproductid\fR\&.
@ -543,6 +576,60 @@ subdriver\&. This is mandatory for some devices to work (LDLC, Dynamix and other
or or
0x4095), according to your device entry in NUT hardware compatibility list (HCL)\&. 0x4095), according to your device entry in NUT hardware compatibility list (HCL)\&.
.RE .RE
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBIMPLEMENTATION NOTES\fR
.RS 4
.PP
\fB\fIfabula\fR\fR\fB subdriver\fR
.RS 4
This subdriver, meant to be used with the
\fImegatec\fR
protocol, does
\fBnot\fR
support the various
\fBtest\&.battery\fR
commands\&. Plus, the
\fBshutdown\&.return\fR
command ignores the values set in
\fIups\&.delay\&.start\fR/\fBondelay\fR
and makes the UPS turn on the load as soon as power is back\&.
.RE
.PP
\fB\fIfuji\fR\fR\fB subdriver\fR
.RS 4
This subdriver, meant to be used with the
\fImegatec\fR
protocol, does
\fBnot\fR
support the
\fBshutdown\&.stayoff\fR
and
\fBload\&.off\fR
commands\&. Plus, the
\fBshutdown\&.return\fR
command ignores the values set in
\fIups\&.delay\&.start\fR/\fBondelay\fR
and makes the UPS turn on the load as soon as power is back\&.
.RE
.PP
\fB\fIkrauler\fR\fR\fB subdriver\fR
.RS 4
This subdriver, meant to be used with the
\fImegatec\fR
protocol, does
\fBnot\fR
support the shutdown commands, i\&.e\&.:
\fBshutdown\&.return\fR,
\fBshutdown\&.stayoff\fR
and
\fBload\&.off\fR\&.
.RE
.RE
.SH "UPS COMMANDS" .SH "UPS COMMANDS"
.sp .sp
This driver supports some instant commands (see \fBupscmd\fR(8)): This driver supports some instant commands (see \fBupscmd\fR(8)):
@ -554,7 +641,7 @@ Toggle the UPS beeper\&. (Not available on some hardware)
.PP .PP
\fBload\&.on\fR \fBload\&.on\fR
.RS 4 .RS 4
Turn on the load immediately\&. Turn on the load immediately\&. (Not available on some hardware)
.RE .RE
.PP .PP
\fBload\&.off\fR \fBload\&.off\fR
@ -597,7 +684,7 @@ Perform a quick (10 second) battery test\&.
.RS 4 .RS 4
Stop a running battery test\&. (Not available on some hardware) Stop a running battery test\&. (Not available on some hardware)
.RE .RE
.SS "MECER, MEGATEC, MEGATEC/OLD, MUSTEK, Q1, ZINTO PROTOCOLS" .SS "BESTUPS, MECER, MEGATEC, MEGATEC/OLD, MUSTEK, Q1, ZINTO PROTOCOLS"
.PP .PP
\fBtest\&.battery\&.start\fR \fIvalue\fR \fBtest\&.battery\&.start\fR \fIvalue\fR
.RS 4 .RS 4
@ -763,6 +850,22 @@ driver wants a
\fIvalue\fR \fIvalue\fR
in seconds\&. in seconds\&.
.RE .RE
.SH "NOTES FOR THE PREVIOUS USER OF BESTUPS DRIVER"
.sp
The \fBnutdrv_qx\fR driver having replaced the bestups one, some configuration changes may be required by users switching to \fBnutdrv_qx\fR\&.
.sp
Part of this, the following bestups options, in \fBups.conf\fR(5), are no longer supported by this driver:
.PP
\fBnombattvolt\fR, \fBbattvoltmult\fR
.RS 4
See
BATTERY CHARGE\&.
.RE
.PP
\fBID\fR
.RS 4
Discarded\&.
.RE
.SH "NOTES FOR THE PREVIOUS USER OF VOLTRONIC DRIVERS" .SH "NOTES FOR THE PREVIOUS USER OF VOLTRONIC DRIVERS"
.sp .sp
The \fBnutdrv_qx\fR driver having replaced the voltronic ones, some configuration changes may be required by users switching to \fBnutdrv_qx\fR\&. The \fBnutdrv_qx\fR driver having replaced the voltronic ones, some configuration changes may be required by users switching to \fBnutdrv_qx\fR\&.
@ -971,11 +1074,9 @@ After issuing a \fBshutdown\&.return\fR instant command, the UPS won\(cqt wait \
.IP \(bu 2.3 .IP \(bu 2.3
.\} .\}
if the load has been previously (no matter how long before) powered off through if the load has been previously (no matter how long before) powered off through
\fBload\&.off\fR/\fBshutdown\&.stayoff\fR \fBload\&.off\fR/\fBshutdown\&.stayoff\fR\fIand\fR
\fIand\fR
powered on through powered on through
\fBload\&.on\fR/\fBshutdown\&.stop\fR \fBload\&.on\fR/\fBshutdown\&.stop\fR\fIand\fR
\fIand\fR
.RE .RE
.sp .sp
.RS 4 .RS 4
@ -1006,6 +1107,9 @@ command
.RE .RE
.sp .sp
In this case, as soon as mains returns the load will be powered\&. In this case, as soon as mains returns the load will be powered\&.
.SS "VOLTRONIC\-QS\-HEX UNITS"
.sp
\fBshutdown\&.return\fR, \fBload\&.off\fR, and \fBshutdown\&.stayoff\fR instant commands are known to work as expected only if mains is present, otherwise, as soon as mains returns the load will be powered\&.
.SH "UPS WARNINGS (VOLTRONIC PROTOCOL)" .SH "UPS WARNINGS (VOLTRONIC PROTOCOL)"
.sp .sp
The UPSes supported by \fIvoltronic\fR protocol report warnings through a 64bit flag (bit1bit2\&...bit63bit64) where 1 means that a warning arose, while 0 means no warning\&. Since more than one warning at a time can be signaled, and because of the limited space in the ups\&.alarm variable, if the length of the warnings exceeds that of ups\&.alarms variable, they will be reported as bits\&. If you want to know the explanation of that bit you can either watch the log or see the next table (unlisted bits equal to unknown warnings)\&. The UPSes supported by \fIvoltronic\fR protocol report warnings through a 64bit flag (bit1bit2\&...bit63bit64) where 1 means that a warning arose, while 0 means no warning\&. Since more than one warning at a time can be signaled, and because of the limited space in the ups\&.alarm variable, if the length of the warnings exceeds that of ups\&.alarms variable, they will be reported as bits\&. If you want to know the explanation of that bit you can either watch the log or see the next table (unlisted bits equal to unknown warnings)\&.

View file

@ -52,7 +52,7 @@ If you set stayoff in linkman:ups.conf[5] when FSD arises the UPS will call a *s
*protocol =* 'string':: *protocol =* 'string'::
Skip autodetection of the protocol to use and only use the one specified. Skip autodetection of the protocol to use and only use the one specified.
Supported values: 'mecer', 'megatec', 'megatec/old', 'mustek', 'q1', 'voltronic', 'voltronic-qs' and 'zinto'. Supported values: 'bestups', 'mecer', 'megatec', 'megatec/old', 'mustek', 'q1', 'voltronic', 'voltronic-qs', 'voltronic-qs-hex' and 'zinto'.
+ +
Note that if you end up using the 'q1' protocol, you may want to give a try to the 'mecer', 'megatec' and 'zinto' ones setting the <<old-blazer-protocols-options,*novendor*/*norating* flags>> (only one, or both). Note that if you end up using the 'q1' protocol, you may want to give a try to the 'mecer', 'megatec' and 'zinto' ones setting the <<old-blazer-protocols-options,*novendor*/*norating* flags>> (only one, or both).
@ -103,6 +103,14 @@ If not specified, the driver defaults to 10%.
Only used if *runtimecal* is also specified. Only used if *runtimecal* is also specified.
BESTUPS, MECER, MEGATAEC, MEGATEC/OLD, MUSTEK, Q1, VOLTRONIC-QS, VOLTRONIC-QS-HEX, ZINTO PROTOCOLS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*ignoresab*::
Some UPSes incorrectly report the `Shutdown Active' bit as always on, consequently making the driver believe the UPS is nearing a shutdown (and, as a result, ups.status always contains +FSD+... and you know what this means).
Setting this flag will make the driver ignore the `Shutdown Active' bit.
[[old-blazer-protocols-options]] [[old-blazer-protocols-options]]
MECER, MEGATAEC, MEGATEC/OLD, MUSTEK, ZINTO PROTOCOLS MECER, MEGATAEC, MEGATEC/OLD, MUSTEK, ZINTO PROTOCOLS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -122,6 +130,19 @@ Some UPSes will lock up if you attempt to read vendor information from them.
Setting this flag will make the driver skip this step. Setting this flag will make the driver skip this step.
BESTUPS PROTOCOL
~~~~~~~~~~~~~~~~
*ondelay*::
The acceptable range is +60..599940+ seconds.
*offdelay*::
The acceptable range is +12..5940+ seconds.
*pins_shutdown_mode =* 'value'::
Set http://www.networkupstools.org/protocols/sola.html#_shutdown_set_command[shutdown mode functionality of Pin 1 and Pin 7] on the UPS DB9 communication port (Per Best Powers EPS-0059) to 'value' [+0..6+].
Q1 PROTOCOL Q1 PROTOCOL
~~~~~~~~~~~ ~~~~~~~~~~~
@ -132,8 +153,8 @@ The acceptable range is +0..599940+ seconds.
The acceptable range is +12..600+ seconds. The acceptable range is +12..600+ seconds.
VOLTRONIC-QS PROTOCOL VOLTRONIC-QS, VOLTRONIC-QS-HEX PROTOCOLS
~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*ondelay*:: *ondelay*::
The acceptable range is +60..599940+ seconds. The acceptable range is +60..599940+ seconds.
@ -215,7 +236,7 @@ If enabled, when the UPS is turned on, it will check if the battery is connected
Enable or disable site fault detection [+enabled+/+disabled+]. Enable or disable site fault detection [+enabled+/+disabled+].
If enabled, the UPS will beep when the input neutral and hot wires are reversed. If enabled, the UPS will beep when the input neutral and hot wires are reversed.
*costant_phase_angle =* 'string':: *constant_phase_angle =* 'string'::
Enable or disable Constant Phase Angle Function (output and input phase angles are not equal) [+enabled+/+disabled+]. Enable or disable Constant Phase Angle Function (output and input phase angles are not equal) [+enabled+/+disabled+].
*limited_runtime_on_battery =* 'string':: *limited_runtime_on_battery =* 'string'::
@ -301,7 +322,7 @@ The argument is a regular expression that must match the bus name where the UPS
*subdriver =* 'string':: *subdriver =* 'string'::
Select a serial-over-USB subdriver to use. Select a serial-over-USB subdriver to use.
You have a choice between *phoenix*, *ippon*, *cypress*, and *krauler*. You have a choice between *cypress*, *fabula*, *fuji*, *ippon*, *krauler* and *phoenix*.
When using this option, it is mandatory to also specify the *vendorid* and *productid*. When using this option, it is mandatory to also specify the *vendorid* and *productid*.
*langid_fix =* 'value':: *langid_fix =* 'value'::
@ -310,6 +331,21 @@ This is mandatory for some devices to work (LDLC, Dynamix and others).
You must provide *value* (+0x409+ or +0x4095+), according to your device entry in NUT hardware compatibility list (HCL). You must provide *value* (+0x409+ or +0x4095+), according to your device entry in NUT hardware compatibility list (HCL).
IMPLEMENTATION NOTES
^^^^^^^^^^^^^^^^^^^^
*'fabula' subdriver*::
This subdriver, meant to be used with the 'megatec' protocol, does *not* support the various *test.battery* commands.
Plus, the *shutdown.return* command ignores the values set in 'ups.delay.start'/*ondelay* and makes the UPS turn on the load as soon as power is back.
*'fuji' subdriver*::
This subdriver, meant to be used with the 'megatec' protocol, does *not* support the *shutdown.stayoff* and *load.off* commands.
Plus, the *shutdown.return* command ignores the values set in 'ups.delay.start'/*ondelay* and makes the UPS turn on the load as soon as power is back.
*'krauler' subdriver*::
This subdriver, meant to be used with the 'megatec' protocol, does *not* support the shutdown commands, i.e.: *shutdown.return*, *shutdown.stayoff* and *load.off*.
UPS COMMANDS UPS COMMANDS
------------ ------------
@ -321,6 +357,7 @@ Toggle the UPS beeper.
*load.on*:: *load.on*::
Turn on the load immediately. Turn on the load immediately.
(Not available on some hardware)
*load.off*:: *load.off*::
Turn off the load immediately (see <<_known_problems,KNOWN PROBLEMS>>). Turn off the load immediately (see <<_known_problems,KNOWN PROBLEMS>>).
@ -348,8 +385,8 @@ Stop a running battery test.
(Not available on some hardware) (Not available on some hardware)
MECER, MEGATEC, MEGATEC/OLD, MUSTEK, Q1, ZINTO PROTOCOLS BESTUPS, MECER, MEGATEC, MEGATEC/OLD, MUSTEK, Q1, ZINTO PROTOCOLS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*test.battery.start* 'value':: *test.battery.start* 'value'::
Perform a battery test for the duration of 'value' seconds (truncated to 60 seconds) [+60..5940+]. Perform a battery test for the duration of 'value' seconds (truncated to 60 seconds) [+60..5940+].
@ -470,6 +507,21 @@ The following instant command has also been changed:
While the old blazer drivers expected a 'value' in minutes, the *nutdrv_qx* driver wants a 'value' in seconds. While the old blazer drivers expected a 'value' in minutes, the *nutdrv_qx* driver wants a 'value' in seconds.
NOTES FOR THE PREVIOUS USER OF BESTUPS DRIVER
---------------------------------------------
The *nutdrv_qx* driver having replaced the bestups one, some configuration changes may be required by users switching to *nutdrv_qx*.
Part of this, the following bestups options, in linkman:ups.conf[5], are no longer supported by this driver:
*nombattvolt*::
*battvoltmult*::
See <<_battery_charge,BATTERY CHARGE>>.
*ID*::
Discarded.
NOTES FOR THE PREVIOUS USER OF VOLTRONIC DRIVERS NOTES FOR THE PREVIOUS USER OF VOLTRONIC DRIVERS
------------------------------------------------ ------------------------------------------------
@ -593,6 +645,12 @@ After issuing a *shutdown.return* instant command, the UPS won't wait *ondelay*
In this case, as soon as mains returns the load will be powered. In this case, as soon as mains returns the load will be powered.
VOLTRONIC-QS-HEX UNITS
~~~~~~~~~~~~~~~~~~~~~~
*shutdown.return*, *load.off*, and *shutdown.stayoff* instant commands are known to work as expected only if mains is present, otherwise, as soon as mains returns the load will be powered.
UPS WARNINGS (VOLTRONIC PROTOCOL) UPS WARNINGS (VOLTRONIC PROTOCOL)
--------------------------------- ---------------------------------

Some files were not shown because too many files have changed in this diff Show more